今天來說一下循環,循環可以完成很多自動化的功能。在Python中,循環分為for循環和while循環還有循環嵌套。
一、for循環
for循環用於遍歷任何序列,這個序列包括列表list或者字符串。
for 變量 in 列表或者字符串:
語句1
語句2
......
#實例:
for i in ['zhangsan','lisi','wangwu',666,123]:
print(i)
>>> zhangsan
lisi
wangwu
666
123
# 解析:首先定義列表 ['zhangsan','lisi','wangwu',666,123],然后依次取列表中的值對變量 i 進行賦值。賦值完成后,執行print(i)語句,輸出獲得到的值。
二、while循環
while循環就是對條件語句進行判斷,如果條件滿足,則繼續循環。如果條件不滿足,循環中斷。
while 條件判斷表達式:
語句1
語句2
......
#實例(我們依次輸出數字0-10):
i=0
while i<=10:
print(i)
i=i+1
#解析:首先定義變量i,並賦值1。創建while循環語句,條件判斷表達式為 i<=10,當 i<=10 為True時,則執行print(i),同時給變量 i+1。知道 i=11時,條件判斷表示式的執行結果為False,此時,循環結束。
三、break、continue和pass語句的用法
1、break語句
在循環語句當中,如果執行break語句,則跳出且終止循環。比如,讓程序找出數字0-100中的66,如果找到后,則跳出循環,並且終止循環。
#目標:找出0-100中的66
#那我們用哪個循環語句比較合適呢?當然是for循環了。
for i in range(0,101):
if i==66:
print('我找到了66')
break
else:
print('正在找...{0}'.format(i))
#在這里,我們學習兩個新的知識點
# 1、range()函數,它代表的是創建一個整數列表,在for循環中,經常用 到!range(x,y) x代表的是起始數字,y代表的是結束數字,y是不包 含在內的,所以在程序中,我的表達式為range(0,101)。
# 2、format是格式化語句,也就是替換的意思。在字符串中定義{x},x是0起 步的,對應的format(x的值)。
# 3、這兩個語句我會在后面仔細的講解的。
# 解析:首先我們定義變量 i ,然后把range(0,101)的數字依次的賦值給變 量 i,接着用判斷語句識別變量 i 是否等於66。如果等於66,則輸出 print('我找到了66'),並且跳出中斷循環。
2、continue語句
在循環語句中,執行continue語句,直接跳出此次循環,進行下一個循環。
# 查找字符串hello中的字母P
for i in 'Python':
if i=='h':
continue
print('正在查找{0}'.format(i))
>>> 正在查找P
正在查找y
正在查找t
正在查找o
正在查找n
#解析:程序正常運行的順序是依次把Python字符串中的字母賦值給變量 i,然后執行 if 判斷語句,接着執行 print 語句。但是當 if 語句為True 時,執行continue語句,此時,continue語句直接跳到循環的尾部,執行下一次的循環了,沒有經過print語句。
3、pass語句
簡而言之就是占位語句,執行后沒有任何的操作,僅僅是一個占位的。
i=0
if i<=3:
pass
i=i+1
>>>(什么都沒有)
四、嵌套循環
在實際的應用中,經常要使用嵌套循環,所謂的嵌套循環指的就是兩個或者兩個以上的循環語句,放在一起來執行復雜的任務。
for 變量1 in list1:
for 變量2 in list2:
語句1
語句2
......
#實例:
for i in range(1,10):
for j in range(i,10):
print('{0}*{1}={2}'.format(i,j,i*j),end=' ')
print(' ')
>>>
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*6=36 6*7=42 6*8=48 6*9=54
7*7=49 7*8=56 7*9=63
8*8=64 8*9=72
9*9=81
# 這里有個新的知識點,print('輸出的內容',end=' '),print原本是一個函數,我們平常使用的只是輸出的功能,還有一些默認的參數(具體函數會講到)。print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)。print的end參數默認值是個換行符,這就是為什么我們每次打印輸出的時候,都會自動換行,這里我們把 '\n' 換行符改成了 ' ' 空的字符串,這樣就不會自動換行了,每次循環完后,在print(' '),使它恢復默認。
