python闖關 python闖關 Day02

2021-10-13 02:47:33 字數 1865 閱讀 6433

q1:寫乙個使用者迴圈猜年齡的遊戲,猜對就退出,猜不對就繼續猜,猜三次,提示使用者是否繼續,使用者回答y或者y就繼續猜,三次之後再重複,回答n或n就結束遊戲。

#! /usr/bin/env python

#-*- coding:utf-8 -*-

#猜年齡

import random

age = random.randint(1,10)

print (age)

iscontinue = 1

while iscontinue:

for i in range(3):

guess = int(input("請猜數:"))

if guess == age:

print('猜對了。')

iscontinue = 0

break

else:

print('猜錯了')

if iscontinue == 0:

break

strcontinue = input('還繼續嗎?(y/n)')

if strcontinue == 'y' or strcontinue == 'y':

iscontinue = 1

elif strcontinue == 'n' or strcontinue == 'n':

iscontinue = 0

else:

print ('輸入錯誤,退出')

注意1. input 返回的是str,需要強制轉換成int

2. break只能跳出一層,如果要連續跳出,需要在外層做一道判斷

3. 判斷使用者輸入的處理,不簡潔,打算用regex來實現,沒有時間再查了。

q2:寫乙個使用者認證程式,有三組使用者名稱和密碼,每當任意乙個使用者密碼輸入錯誤三次則對該使用者進行限制登入

#! /usr/bin/env python

#-*- coding:utf-8 -*-

u1:p1

u2:p2

u3:p3

auth =

auth_lock =

while true:

uname = input('請輸入使用者名稱:')

if auth_lock[uname] == 1:

print(uname,'已經被鎖定(連續輸錯3次密碼)。')

break

au_times = 1

while au_times <= 3:

upass = input('請輸入密碼:')

if upass != auth[uname]:

print ('使用者名稱密碼錯誤(', au_times, ')。')

au_times += 1

if au_times > 3:

auth_lock[uname] = 1

break

else:

print ('認證通過。')

au_times = 0

break

if au_times == 0:

break

注:1. 用了2個字典,乙個字典用於儲存使用者名稱密碼,另乙個字典用來儲存對應的使用者名稱是否被鎖。

2. 不健壯,沒有對輸入進行校驗,如果輸入了非key,則會報"keyerror",有對應的解決辦法。待後面補充。

q3  列印乘法小九九**

for i in range(1,10):

for j in range(1,10):

print("%d*%d=%2d" % (i,j,i*j),end=" ")

print("-")

q4 列印金字塔圖形

for i in range(20):

print(' ' * (20-i-1) + '*' * (2*i+1) )

python闖關 python闖關 Day05

乙個簡單的 選單 usr bin env python coding utf 8 mymenu 動物 貓 黃貓 花貓 狗 二哈 金毛 植物 樹 大樹 小樹 草 綠草 矮草 menu list list mymenu.keys while true print 編號 center 50,for i i...

python闖關 python闖關 Day009

第9章 合併表達 1 將names albert james kobe kd 中的名字全部變大寫 names albert james kobe kd names name.upper for name in names 應記住的表達方式,很python print names 2 將names a...

python闖關 python闖關 Day06

函式式程式設計 python的函式式程式設計,需要關注以下幾個點。1.引數 有無引數 形參和實參的區別 引數可以是哪些型別,引數的讀取順序等。2.返回值 未指定的情況下,預設是有返回值的。按照之前的程式經驗,呼叫函式前需要將環境引數壓棧,再壓入引數 push 再跳轉到函式,再由函式反向讀取壓入的引數...