# Python條件控制和迴圈語句(if while for ) ## 條件控制 ### 概念:Python 條件語句是通過一條或多條語句的執行結果(True 或者 False)來決定執行的代碼塊 ### ![if1.png](https://img1.imgtp.com/2023/08/29/0U ...
Python條件控制和迴圈語句(if while for )
條件控制
概念:Python 條件語句是通過一條或多條語句的執行結果(True 或者 False)來決定執行的代碼塊
結構
1. 順序結構
1. 分支結構
2. 迴圈結構
1. 單分支
if 條件:
條件成立之後執行的代碼塊
2. 雙分支
if 條件:
條件成立之後執行的代碼塊
else:
條件不成立之後執行的代碼塊
3. 多分支
if 條件:
條件成立之後執行的代碼塊
elif 條件1:
條件不成立、條件1成立執行的代碼塊
elif 條件2:
條件不成立、條件1成立執行的代碼塊
elif 條件3:
條件不成立、條件1成立執行的代碼塊
elif 條件4:
條件不成立、條件1成立執行的代碼塊
elif 條件5:
條件不成立、條件1成立執行的代碼塊
else:
條件不成立之後執行的代碼塊
- 在嵌套 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
if 表達式1:
語句
if 表達式2:
語句
elif 表達式3:
語句
else:
語句
elif 表達式4:
語句
else:
語句
- 1. 做一個用戶登錄功能,用戶名:kevin,密碼:123
# 要求:用戶名和密碼都輸入正確,列印來賓三位,否則:提示用戶名或者密碼錯誤
# 1. 接收用戶輸入的用戶名
username = input('請輸入你的用戶名:')
# 2. 接收用戶的密碼
password = input('請輸入你的密碼:') # str
# 3. 比較用戶名和密碼是否正確
if username == 'kevin' and password == '123':
print('來賓三位')
else:
print('用戶名或者密碼錯誤')
1. 根據用戶名的不同,列印不同的身份
kevin(管理員) tony(保全) jerry(財務人員) tank(司機) 列印未知人員
1. 讓用戶輸入用戶名
username = input('請輸入你的用戶名:')
開始比較
if username == 'kevin':
print('管理員')
elif username == 'tony':
print('保全')
elif username == 'jerry':
print('財務人員')
elif username == 'tank':
print('司機')
else:
print('未知人員')
註意事項:1. 所有的條件最終都會轉化為布爾值進行判斷,條件是否成立
2. Python中,使用縮進來表示代碼的從屬關係
3. 同屬於一個代碼塊的多行子代碼塊縮進量要一致
4. 不是每一個代碼都會有子代碼塊
## 迴圈語句
while while+break while + else while+continue 標誌位
-
同樣需要註意冒號和縮進。另外,在 Python 中沒有 do..while 迴圈。
while 來計算 1 到 100 的總和: n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 %d 之和為: %d" % (n,sum))
輸入密碼: while True: username = input('請輸入你的用戶名:') password = input('請輸入你的密碼:') if username == 'kevin' and password == '123': print('登錄成功') else: print('登錄失敗')
while+else
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('哈哈哈')
"""else: 當while迴圈中沒有被中斷(break)的時候會走else語句"""
whlie+break
while True:
username = input('請輸入你的用戶名:')
password = input('請輸入你的密碼:')
if username == 'kevin' and password == '123':
print('登錄成功')
break # 跳出本層迴圈
else:
print('登錄失敗')
count += 1
break跳出本層迴圈的含義
while True:
username = input('請輸入你的用戶名:')
password = input('請輸入你的密碼:')
if username == 'kevin' and password == '123':
print('登錄成功')
####### 讓用戶繼續輸入它要執行的指令,用戶輸入完指令之後,列印正在執行某個指令
while True:
cmd = input('請輸入你要執行的指令:')
if cmd == 'q':
# 結束程式
break
print('正在執行你的指令:%s' % cmd) # 當用戶輸入q的時候,結束程式
break
else:
print('登錄失敗')
標誌位的使用
flag = True
while flag:
username = input('請輸入你的用戶名:')
password = input('請輸入你的密碼:')
if username == 'kevin' and password == '123':
print('登錄成功')
####### 讓用戶繼續輸入它要執行的指令,用戶輸入完指令之後,列印正在執行某個指令
while flag:
cmd = input('請輸入你要執行的指令:')
if cmd == 'q':
# 結束程式
flag = False
print('正在執行你的指令:%s' % cmd) # 當用戶輸入q的時候,結束程式
else:
print('登錄失敗')
while+continue
使用while迴圈列印出0-10之間的數字, 但是不列印6
count = 0
while count < 10:
if count == 6:
count += 1
# 不列印
continue # 跳出while迴圈的本次迴圈 --------------- 本層
print(count)
count += 1
死迴圈:
程式中堅決不能出現死迴圈
count = 0
while True:
print(count)
count+=1
"""如果一旦出現了死迴圈,CPU的利用率會極速拉滿,導致其他程式也不能用,甚至於關機"""
for
-
for迴圈不會出現死迴圈,它的迴圈條件不是我們來控制,是人家內部已經控制好了
-
for迴圈和while迴圈都是用來重覆一個事情的,for迴圈能夠實現的功能,while迴圈都可以實現
for迴圈的語法結構更加簡潔,它不容易出現死迴圈,所以,推薦以後能夠使用for迴圈的都使用for迴圈 -
可迭代對象:字元串、列表、字典、元組等,能夠支持for迴圈的對象都是可迭代對象
for迴圈的語法格式:
for 變數名 in 可迭代對象:
pass -
'''字典暴露的是字典的key'''
d = {'username': 'jerry', 'age': 18} for i in d: print(i, d[i]) # username age
range關鍵字
-
- 方式1
for i in range(10): # 生成一個從0開始到9的數字 print(i) for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: print(i)
-
方式2
for i in range(3, 10): # 生成一個從3開始到9的數字列表 print(i)
-
方式三
for i in range(0, 250, 25): # 第三個參數代表的是步長 print(i)
"""練習題:使用for迴圈生成這10頁的地址"""
https://movie.douban.com/top250?start=0&filter= # 第一頁
https://movie.douban.com/top250?start=25&filter= # 第二頁
https://movie.douban.com/top250?start=50&filter= # 第三頁
https://movie.douban.com/top250?start=75&filter= # 第四頁
https://movie.douban.com/top250?start=100&filter= # 第五頁
https://movie.douban.com/top250?start=225&filter= # 最後一頁
base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 2500, 25):
# print(base_url % i)
print('https://movie.douban.com/top250?start=%s&filter=' % i)
for+break
for i in range(10):
if i == 6:
break
print(i)
for+continue
for i in range(10):
if i == 6:
continue
print(i)
for+else
'''跟while迴圈的用法一樣,中間如果有中斷程式,else就不在走了'''
for i in range(10):
if i == 6:
break
print(i)
else:
print('hahh ')
for迴圈嵌套
for i in range(3):
for j in range(5):
print("*", end='')
print() # print()表示換行