44. python的for循環(huán)嵌套
1. 什么是嵌套
嵌套是指一個對象中包含另一個與它相似的對象。
俄羅斯套娃就是典型的嵌套,一個套娃里有多個外觀相同,大小不同的娃。
【Python中的嵌套】
列表嵌套:列表的元素為列表。
if嵌套:if語句中嵌套有一個或多個if語句。
for循環(huán)嵌套:for循環(huán)語句中嵌套有一個或多個for循環(huán)語句或if語句。
2. for循環(huán)中嵌套有if條件判斷語句
【實操練習(xí)】
選出1至100中能被7整除的奇數(shù)。
2.1 先創(chuàng)建一個奇數(shù)序列
【方法1】
# 用range函數(shù)建一個奇數(shù)序列,起始數(shù)字為1,結(jié)束數(shù)字為100,步長為2
r = range(1,100,2)
# 用list函數(shù)查看創(chuàng)建的奇數(shù)序列
print(list(r))
【終端輸出】
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
觀察輸出結(jié)果,確實都為奇數(shù)。
【方法2】
# 用range函數(shù)建一個奇數(shù)序列,起始數(shù)字為1,結(jié)束數(shù)字為100,步長為2
r = range(1,100,2)
# 用for循環(huán)查看創(chuàng)建的奇數(shù)序列
# 注意不要省略英文冒號
for i in r :
# 注意有4個空格的縮進(jìn)
print(i)
【終端輸出】
因為太占用篇幅,這里不展示輸出內(nèi)容。
2.2 判斷一個數(shù)是否能被7整除
一個數(shù)如果能被7整除則余數(shù)為0。
a = 14
# 除法
print(a/7)
# 取余
print(a%7)
【終端輸出】
2.0
0
/
是Python的除號:因此a/7=14/7=2.0
%
是Python的取余號:因此a%7=14%7=0
a = 14
print(a%7)
if a%7 == 0 :
print("能被7整除!")
else:
print("不能被7整除!")
【終端輸出】
0
能被7整除!
a = 8
print(a%7)
if a%7 == 0 :
print("能被7整除!")
else:
print("不能被7整除!")
【終端輸出】
1
不能被7整除!
2.3 將2部分代碼合二為一
# 用range函數(shù)建一個奇數(shù)序列,起始數(shù)字為1,結(jié)束數(shù)字為100,步長為2
r = range(1,100,2)
# 用for循環(huán)依次取出奇數(shù)序列中的數(shù)字
# 注意不要省略英文冒號
for i in r :
# 注意有4個空格的縮進(jìn)
# 判斷該數(shù)字除以7的余數(shù)是否等于0
if i % 7 == 0 :
# 如果能被7整除則輸出該數(shù)字
print(i)
print("程序結(jié)束!")
【終端輸出】
7
21
35
49
63
77
91
程序結(jié)束!
【代碼解析】
-
for循環(huán)的作用是從range對象中依次取出數(shù)字并賦值給變量i。
-
if語句就是for循環(huán)的循環(huán)體,是每一次循環(huán)都需要執(zhí)行的語句。
-
它相對于for來說要有4個空格的縮進(jìn)。
-
print(i)是if判讀語句要執(zhí)行的代碼,它相對于if來說要有4個空格的縮進(jìn)。
-
因為這里只需要輸出能被7整除的數(shù)字,因此這里就沒有用else輸出不能被7整除的數(shù)字。
-
for 循環(huán)一定要注意print的位置。
print(i)相對于if有4個空格的縮進(jìn),說明它是if判斷語句要執(zhí)行的語句。
一整個if語句相對for循環(huán)語句有4個空格的縮進(jìn),它是for循環(huán)中要循環(huán)執(zhí)行的代碼。
print(“程序結(jié)束!”)與for是對齊的,沒有縮進(jìn),說明它不是循環(huán)中的代碼,只有循環(huán)結(jié)束時,才會執(zhí)行該語句。
在編寫循環(huán)語句的時候,大家一定要注意print的位置。
【思路解析】
初學(xué)者編寫代碼的時候,可以先將代碼拆開。
拆成若干個我們能理解的代碼塊。
這樣做的好處一是理清思路,二是能方便我們查找程序報錯的原因。
3. for循環(huán)中嵌套有for循環(huán)
【實操練習(xí)】
輸出注射過疫苗的同學(xué)的姓名。
# 新建一個列表存儲注射過北京生物疫苗的同學(xué)
BJ = ["劉一","陳二"]
# 新建一個列表存儲注射過科興中維疫苗的同學(xué)
KX = ["張三","李四","王五"]
# 新建一個總列表存儲注射過疫苗的同學(xué)
zong = [BJ, KX]
# 從總列表中輸出注射過疫苗的同學(xué)
for x in zong :
print(x)
print("程序結(jié)束!")
【終端輸出】
['劉一', '陳二']
['張三', '李四', '王五']
程序結(jié)束!
觀察輸出結(jié)果,發(fā)現(xiàn)輸出的是兩個列表,并沒有直接輸出同學(xué)的姓名。
那如何輸出同學(xué)的姓名呢,我們只需再嵌套一個for循環(huán)即可。
# 新建一個列表存儲注射過北京生物疫苗的同學(xué)
BJ = ["劉一","陳二"]
# 新建一個列表存儲注射過科興中維疫苗的同學(xué)
KX = ["張三","李四","王五"]
# 新建一個總列表存儲注射過疫苗的同學(xué)
zong = [BJ, KX]
for x in zong :
for y in x :
print(y)
print("程序結(jié)束!")
【終端輸出】
劉一
陳二
張三
李四
王五
程序結(jié)束!
【for循環(huán)嵌套的執(zhí)行流程】
【代碼解析】
上述代碼有2個for循環(huán)語句。
把第1個for循環(huán)語句叫做外循環(huán)。
把第2個for循環(huán)語句叫做內(nèi)循環(huán)。
第1次外循環(huán)for x in zong :
表示從zong
列表中取值并賦值給變量x
。
zong
列表里有2個元素,第1次外循環(huán)從zong
列表中取出BJ賦值給變量x。
X=BJ
BJ = ["劉一","陳二"]
x取到值后代碼繼續(xù)往下執(zhí)行。
內(nèi)循環(huán)for y in x :
表示從X
中取值并賦值給變量y
。
即從列表BJ中依次取出元素并賦值給變量y。
第1次內(nèi)循環(huán)y=劉一。
y取到值后,后面沒有需要循環(huán)的代碼,程序返回內(nèi)循環(huán),繼續(xù)執(zhí)行第2次內(nèi)循環(huán)。
第2次內(nèi)循環(huán)y=陳二。
此時,x中的值即列表BJ里的值已經(jīng)取出完畢,內(nèi)循環(huán)結(jié)束,程序返回外循環(huán)。
第2次外循環(huán)for x in zong :
表示從zong
列表中取值并賦值給變量x
。
此時,x取到的值是KX。
x=kx
KX = ["張三","李四","王五"]
又開始第2輪內(nèi)循環(huán)。
第3次內(nèi)循環(huán)y=張三。
第4次內(nèi)循環(huán)y=李四。文章來源:http://www.zghlxwxcb.cn/news/detail-489422.html
第5次內(nèi)循環(huán)y=王五。文章來源地址http://www.zghlxwxcb.cn/news/detail-489422.html
到了這里,關(guān)于44. python的for循環(huán)嵌套的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!