Python基礎之流程控制2
目錄
一、while+continue
二、while+else
三、死迴圈
四、for迴圈
五、range關鍵字
六、for+break
七、for+continue
八、for+else
九、for迴圈的巢狀使用
一、while+continue
continue:跳過本次迴圈,開始下一次迴圈
# 列印從1-10
count = 1
while count < 11:
print(count)
count += 1
# continue 跳過本次迴圈,執行下一次迴圈;continue 會讓迴圈體程式碼直接回到條件判斷處重新判斷
# 列印從1-10,跳過5
# 定義起始變數
count = 1
# 迴圈
while count < 11:
# 當變數等於5
if count == 5:
count += 1
# 直接跳過本次迴圈,開始下一次迴圈
continue
# 列印變數值
print(count)
# 變數值自增1
count += 1
二、while+else
else:while迴圈沒有被人為中斷(break)的情況下,會執行else
# while+else:
count = 1
while count <6:
print(count)
count += 1
else:
print('嘿嘿嘿')
count += 1
# 被人為中斷的情況下不執行else
count = 1
while count < 6:
if count == 4:
break
print(count)
count += 1
else:
print('嘿嘿嘿')
三、死迴圈
會讓CPU極度繁忙甚至崩潰,一直迴圈不會停下
while True:
print(1)
四、for迴圈
for迴圈能實現的功能,while迴圈都能做到,但是for迴圈更簡潔,並且在迴圈取值的問題上更方便。
for迴圈的語法結構:for 變數名 in 可迭代物件:#字串、列表、字典、元組、集合
for 迴圈體程式碼
ps:如果沒有合適的變數名,可以使用i/j/k/v/item等等。
1.for迴圈列表
name_list = ['jason', 'tony', 'kevin', 'lili', 'body']
# 用while迴圈實現
count = 0
while count < 5:
print(name_list[count])
count += 1
# 用for迴圈實現
for name in name_list:
print(name)
2.for迴圈字串
for i in 'hello':
print(i)
3.for迴圈字典:預設只能拿到K值
d = {'username': 'jason', 'age': '18', 'height': '189'}
for k in d:
print(k, d[k])
五、range關鍵字
# 第一種:一個引數,從0開始,顧頭不顧尾
for m in range(5):
print(m)
# 第二種:兩個引數,自定義起始位置,顧頭不顧尾
for m in range(5, 8):
print(m)
# 第三種:三個引數,自定義起始位置,顧頭不顧尾,第三個引數是控制等差值
for m in range(2, 10, 2):
print(m)
# 在不同版本的直譯器中,range本質不同
在python2.X版本中,range會直接生成列表,xrange是一個迭代器(老母豬)
在python3.X版本中,range是個迭代器(老母豬)
'''可以理解為python2.X版本的xrange就是python3.X版本的range'''
# 拓展知識 : %s:佔位符
base_url = "https://movie.douban.com/top250?start=%s&filter="
for i in range(0, 250, 25):
print(base_url % i)
六、for+break
break功能也一樣用於結束本層迴圈
for m in range(20):
if m == 3:
break
print(m)
七、for+continue
continue功能也一樣用於結束本層迴圈執行下一層迴圈
for m in range(6):
if m == 4:
continue
print(m)
八、for+else
else也一樣是for迴圈結束的情況下才會執行,如果被人為打斷一樣也不會執行
for m in range(4):
print(m)
else:
print('嘿嘿')
# 當迴圈被人為中斷,則不執行else
for m in range(4):
if m == 2:
break
print(m)
else:
print('嘿嘿')
九、for迴圈的巢狀使用
for i in range(3):
for j in range(5):
print("*", end='')
print()
# 列印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('%s*%s=%s' % (j, i, j*i), end=' ')
print()