1. 程式人生 > >If 條件語句與迴圈(While迴圈For迴圈)

If 條件語句與迴圈(While迴圈For迴圈)

六.if條件語句

    語法格式:

    if  

        條件1...  :(冒號結尾) #如果不滿足,則執行下一條

        if        條件n...  :(冒號結尾)  #如果不滿足,則執行下一條

        elif     條件n...  :(冒號結尾)  #如果不滿足,則執行下一條

        else    如果不滿足條件那麼就輸出...

    elif  

        條件2...  :(冒號結尾) #如果不滿足,則執行下一條

    else  :(冒號結尾)

        如果不滿足條件那麼就輸出...

例子:if條件語句

gender = 'female'
age = 21 height = 170 is_beautiful = True is_successful = False if gender == 'female' and age > 18 and age <= 25 and height > 160 and is_beautiful: print('表白中...') if is_successful: print('在一起...') else: print('逗你玩呢...') else: print('阿姨好...')

練習1:使用者登陸驗證

name=input('pls input you name>>:'
) passwd=input('pls input you passwd>>:') passwd=int(passwd) #輸入的資料設定為整數型別 if name == 'szq' and passwd == 666666: print('Welcome') elif name != 'szq': print('You name not exit') elif name == 'szq' and passwd != 666666: print('You passwd is error') else: print('The name does not exist')

練習2:根據使用者輸入的內容給出其許可權

name=input('pls input you name>>:')
if name == 'szq':
print('超級管理員')
elif name == 'wjp':
print('網管')
elif name == 'zyl' or name == 'wxx':
print('技術專員')
else:
print('不存在這個人')

練習3:判斷今天是周幾,然後決定是出去玩還是上班

today=input('pls input today>>:')
today=int(today)
if today in [1,2,3,4,5]:
print('好好上班,別想著出去玩')
elif today in [6,7]:
print('出去玩')
else:
print('''
    必須輸入:1,2,3,4,5,6,7其中一種
    ''')

注意點:if today in [1,2,3,4]:  就相當於變數today的值存在與[1,2,3,4]內。    #變數today匹配[]中括號內的任意一個值。

練習4:使用者登陸介面

    讓使用者輸入使用者名稱密碼

    認證成功後顯示歡迎資訊

    輸錯三次後退出程式

user_list={
'ssp':{'passwd':666666,'account':0},
'wsp':{'passwd':666666,'account':0},
'zsp':{'passwd':666666,'account':0},
}
while True:
name=input('pls input you name >>:')
passwd=input('pls input you passwd >>:')
if name in user_list and passwd != user_list[name]['passwd']:
print('使用者或密碼輸入錯誤,請重新輸入')
user_list[name]['account'] += 1     #針對不同使用者做失敗次數判斷,這樣失敗次數不會疊加,某一使用者失敗,其他使用者不受影響
if user_list[name]['account'] > 2:  #如果某一使用者失敗次數大於3,那麼就提示使用者"系統將被鎖定"
print('你嘗試的輸入的次數過多,系統已被鎖定')
break
        continue
    elif name in user_list and passwd == user_list[name]['passwd']:
print('登陸成功')
break
    else:
print('使用者名稱不在')
exit()

練習5:登陸介面需求升級:

    可以支援多個使用者登入 (提示,通過列表存多個賬戶資訊)

    使用者3次認證失敗後,退出程式,再次啟動程式嘗試登入時,還是鎖定狀態(提示:需把使用者鎖定的狀態存到檔案裡)

前言:這裡需要用到Python中檔案的讀取和寫入功能,例:

user_list={
'ssp':{'passwd':666666,'account':0},
'wsp':{'passwd':666666,'account':0},
'zsp':{'passwd':666666,'account':0},
}
while True:
name=input('pls input you name >>:')
passwd=input('pls input you passwd >>:')
passwd=int(passwd)
with open('test.txt','r') as f:          #開啟檔案"test.txt","r"表示只讀,預設使用
user_land=f.read()                   #f.read()表示讀取檔案"test.txt"得內容並賦值給變數"user_land"
if name in user_land:
print('使用者 %s 嘗試登陸次數過多,已被系統鎖定,無法登陸!' % (name))
break
    if name in user_list and passwd != user_list[name]['passwd']:
print('使用者或密碼輸入錯誤,請重新輸入')
user_list[name]['account'] += 1
if user_list[name]['account'] > 2:
print('你嘗試的輸入的次數過多,系統已被鎖定')
with open('test.txt', 'w') as f:        #"w"表示可寫,預設使用"r"只讀,可寫模式下不能讀檔案內容
f.write(name)                        #要寫得內容
f.close()                            #有開啟就有關閉
break
        continue
    elif name in user_list and passwd == user_list[name]['passwd']:
print('登陸成功')
break
    else:
print('使用者名稱不在')
#Python讀寫功能註釋:
Python讀寫功能註釋
with open('test.txt','w') as f:    #開啟檔案"test.txt","w"表示可寫,預設使用"r"只讀,可寫模式下不能讀檔案內容
f.write(name)                  #要寫得內容
f.write(passwd)                #要寫得內容
f.close()                      #有開啟就有關閉
with open('test.txt') as f:
user_list=f.read()             #f.read()"讀取檔案test.txt得內容",把值賦值給變數user_list
if name in user_list:
print('使用者%s被鎖定' %(name))

七.迴圈 While與for迴圈

    7.1while 迴圈

 7.1.1 while迴圈的語法(又稱之為條件迴圈)
        while 條件:
            程式碼1
            程式碼2
            程式碼3
            。。。。

    7.1.2 while+break,break的意思是結束本層迴圈

    7.1.2 while+continue,continue的意思是結束本次迴圈,進入下一次迴圈

    while+continue練習:列印數字1-10,其中不列印數字8

n=1
while n <= 10:
if n == 8:            
n+=1              #這裡不加n+=1的話,while迴圈執行到n=8時,會一直迴圈,那麼只能列印1-7,在8這個位置卡住
continue          #當n=8時跳出本次迴圈
print(n)
n+=1

    練習1:迴圈巢狀 (while迴圈內再加while迴圈)

while True:                       #第1個while迴圈
print('第一層')
while True:           #第2個while迴圈
print('第二層')
while True:               #第3個while迴圈
cmd=input('第三層>>: ')
if cmd == 'q':
break              #如果在第3個while迴圈內輸入'q',則跳出本層(第3層)迴圈
        break
    break

    練習2:迴圈巢狀小技巧  while+tag  #適合用於迴圈巢狀(即while迴圈中套多個while迴圈,3個以上迴圈巢狀比較適合用)

tag=True                #定義變數tag=True
while tag:
print('第一層')
while tag:
print('第二層')
while tag:
cmd=input('第三層>>: ')
if cmd == 'q':          #當輸入'q'命令時
tag = False         #定義變數tag為False,那麼本層迴圈結束後,所有的變數tag的值都為False,那麼所有的迴圈都將結束
                break

    7.2 for迴圈  方便從一個數據裡面取多個值出來

name='szq'
for n in name:      #相當於:for n in 'szq'
print(n)        #執行後得到如下值
s
z
q

    這裡可以看出,for迴圈內,對變數n依次賦值為"szq"(依次賦值為"s" "z" "q"),那麼在取變數n的值的時候,就能夠依次取出"s" "z" "q"多個值