1. 程式人生 > 其它 >while迴圈、for迴圈、死迴圈和range關鍵字

while迴圈、for迴圈、死迴圈和range關鍵字

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