1、for循環(huán)語句
Python中除了while循環(huán)外,還有for循環(huán)。for循環(huán)用來迭代Python中序列(sequence)的元素,或其他可迭代對象(iterable)。在Python中,序列是一種有序的集合類型,如字符串和下一章將介紹的列表和元組。有一些通用的操作可以在每一種序列上使用,迭代就是其中之一。
for循環(huán)的語法格式如下:
for 迭代變量 in 可迭代對象:
循環(huán)體
使用for循環(huán)迭代打印字符串中的字符:
>>> for c in 'Python':
... print(c)
...
P
y
t
h
o
n
第一行代碼先獲取字符串'Python'的第一字符'P',再將其存儲在變量c中,接著Python讀取下一行代碼。在第二行代碼中,此時c的值為'P',print(c)將它打印出來。接下來這個循環(huán)會迭代(即重復)這個過程,c會依次被賦值為'y'、't'……直到這個字符串結(jié)束。
準確地說,Python中沒有“字符”這個概念,一個單獨的'P'也是字符串類型,上文稱為字符是為了與字符串區(qū)分。
還可以將迭代出字符串和其他字符串拼接起來:
>>> vowel = 'AEIOU'
>>> for c in vowel:
... print(c, '是一個元音字母')
...
A 是一個元音字母
E 是一個元音字母
I 是一個元音字母
O 是一個元音字母
U 是一個元音字母
實際上,甚至可以不使用迭代出的字符串,而僅僅利用字符串的長度屬性(如'Python'的長度是6),來重復做一些事。例如,打印6次“我愛Python”:
>>> for c in 'Python':
... print('我愛Python')
...
我愛Python
我愛Python
我愛Python
我愛Python
我愛Python
我愛Python
即使可以利用字符串的長度屬性打印6次“我愛Python”,但卻不提倡這種做法。迭代字符串,而不利用迭代出的字符,會造成計算機資源的浪費。
2、使用range()函數(shù)
由于重復地執(zhí)行同一段代碼是個很常見的任務,因此,Python內(nèi)建了一個函數(shù)range()來使這個任務實現(xiàn)得更容易。使用range()函數(shù)來完成上面打印6次的任務:
>>> for i in range(6):
... print('我愛Python')
...
我愛Python
我愛Python
我愛Python
我愛Python
我愛Python
我愛Python
迭代range()函數(shù)和迭代字符串類似,每次都會獲取range()函數(shù)產(chǎn)生的一個值,然后將它存儲在變量i中。將上例的i打印出來:
>>> for i in range(6):
... print(i)
...
0
1
2
3
4
5
可能與預期的結(jié)果不同,打印出來的數(shù)字是0~5,而不是1~6。這是由于編程語言往往都是從0開始。
使用range()函數(shù)也可以完成打印1到100的任務,給range()函數(shù)傳遞兩個參數(shù),第一個參數(shù)為起始值,第二個參數(shù)為結(jié)束值:
>>> for i in range(1, 101):
... print(i)
...
1
2
3
4
……
98
99
100
由此可見,這種方式打印1到100,比使用while循環(huán)程序更加簡潔。while循環(huán)往往需要初始化一個變量,還要在循環(huán)體中改變這個變量的值;而for循環(huán)往往只要指定次數(shù)或者指定初始值和結(jié)束值即可。
在上述程序中,range()函數(shù)的結(jié)束值不是100,而是101,而打印到100結(jié)束了。這是由于range()函數(shù)總是包含起始值而不包含結(jié)束值。
range()函數(shù)還可以在起始值和結(jié)束值的基礎上,加入第三個參數(shù)——步長。步長就是指定獲取數(shù)字的間隔。例如,打印1~10中的奇數(shù)和它們各自的平方:
>>> for i in range(1, 11, 2):
... print(i, '的平方是', i**2)
...
1 的平方是 1
3 的平方是 9
5 的平方是 25
7 的平方是 49
9 的平方是 81
更多內(nèi)容
>>本文地址:http://uj2y2uok.com/zhuanye/2021/69429.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?