while迴圈、for迴圈、死迴圈和range關鍵字
阿新 • • 發佈:2021-12-30
while+continue
# 使用迴圈打印出0-9的數字: count = 0 while count < 10: print(count) count += 1 # 使用迴圈打印出0-9的數字,但不列印3: count = 0 while count < 10: if count == 3: count += 1 continue print(count) count += 1 '''continue表示的是結束本次迴圈,然後繼續執行迴圈體''' PS:當count=2的時候,執行print(count)打印出來的是2,然後執行count+=1,此時count=3執行if語句得出count=4 然後continue結束本次迴圈,然後繼續執行while迴圈。
while+else
count = 0
while count < 5:
print(count)
count += 1
else:
print('我執行了')
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('我執行了')
# 一般情況,else跟if連用
總結:
當有人為終斷迴圈體時候,不會執行else;否則不走else。
for迴圈
for迴圈能實現的功能,while迴圈都可以實現;但是for迴圈的語法更簡潔、取值更方便。
# 使用迴圈打印出每一個元素
name_list = ['ly', 'jason', 'tom', 'tony']
使用while迴圈:
name_list = ['ly', 'jason', 'tom', 'tony']
count = 0
while count < 4:
print(name_list[count])
count += 1
使用for迴圈:
name_list = ['ly', 'jason', 'tom', 'tony']
for i in name_list:
print(i)
for迴圈的格式
for i in 可迭代物件: #可迭代物件表示的是:字串、元組、字典、集合等,但不是數字。
# for迴圈不能寫數字
for i in 1.123:
print(i)
# 迴圈字典暴露的是k值
dic = {'name': 'ly', 'age': 123}
for i in dic:
print(i, dic[i])
PS:這個for迴圈是把字典裡的k值賦值給了i,所以print打印出來的i是name和age;dic[i]取的才是字典的value值。
'''for i in 可迭代物件''' 裡面的i值可以是任意的變數名,如果沒有好的變數名一般取i,j,k,v,item等
range關鍵字
1.只寫一個引數的情況代表從0開始,顧頭不顧尾
for i in range(10):
print(i)
結果:打印出0-9的數。
2.寫兩個引數,自定義起始位置,顧頭不顧尾
for i in range(3, 10):
print(i)
結果:打印出3-9的數。
3。寫三個引數,自定義起始位置,第三個引數代表步長(就是間距),顧頭不顧尾
for i in range(0, 100, 10):
print(i)
結果:0 10 20 30 40
死迴圈
while True:
print(1)
# 死迴圈的情況是不能出現的
實際專案中,推薦使用for迴圈,一般不會造成死迴圈
for+break
for i in range(10):
if i == 3:
break
print(i)
結果:0 1 2
for+continue
for i in range(10)
if i == 3:
continue
print(i)
結果:打印出0-9的數字,但不列印3
for+else
for i in range(10)
if i == 3:
break
print(i)
else:
print('我執行了')
結果: 0 1 2 (人為終止迴圈結束,不執行else)
for迴圈巢狀
for i in range(4):
for j in range(4);
print(i,j)
解釋程式碼:首先執行第一個for迴圈 當i=0的時候執行第二個for迴圈,j的值為 0 1 2 3打印出來的就是: 0 0 0 1 0 2 0 3
當i=1的時候就是:1 0 1 1 1 2 1 3,·····
九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('%s*%s=%s' % (i, j, i * j), end=' ')
print()
當i=1時,j=1; # %s*%s=%s為:1*1=1 end=' '是把\n換行符改為了空格,print()預設會加換行符
當i=2時,j=1和2 # 2*1=22*2=4 在執行2*1=2之後end=' '把換行符改為了空格,所以就成了2*1=2 2*2=4最後執行print()進行換行
當i=3時,j=1 ·······
·········
最後結果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81