程序的基本結(jié)構(gòu)有哪三種類型,程序的基本結(jié)構(gòu)有哪三種類型圖片?
程序組織結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),順序結(jié)構(gòu)即代碼是按順序從上到下運(yùn)行。順序結(jié)構(gòu)相對(duì)好理解,下面主要說(shuō)一下選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。學(xué)而不思則罔,思而不學(xué)則殆,小題目測(cè)試有利于加強(qiáng)應(yīng)用能力,本文最后有水仙花數(shù)的代碼。
本文有四部分:
01 |
選擇結(jié)構(gòu)(if 結(jié)構(gòu)) |
02 |
循環(huán)結(jié)構(gòu)(while,for in結(jié)構(gòu)) |
03 |
break、continue、else、pass介紹 |
04 |
水仙花數(shù) |
選擇結(jié)構(gòu)
(1)單分支結(jié)構(gòu)
結(jié)構(gòu)大致如下,“else:……”可以沒(méi)有,只有if。當(dāng)條件表達(dá)式為真時(shí),執(zhí)行條件執(zhí)行體。例如,“1==2”是False,布爾值為0,因此不會(huì)執(zhí)行條件執(zhí)行體,而是會(huì)執(zhí)行else中的執(zhí)行體,即“print('1不等于2')”。
if 條件表達(dá)式:
條件執(zhí)行體
else:……
if 1==2:
print('1等于2')
else:
print('1不等于2')
(2)多分支結(jié)構(gòu)
可以進(jìn)行多次選擇,除了第一個(gè),之后的用elif,不過(guò)需要注意,這些分支并不是平行的,而是當(dāng)前一個(gè)不執(zhí)行的時(shí)候,才會(huì)繼續(xù)向下。
if 條件1:
執(zhí)行體1
elif 條件2:
執(zhí)行體2
elif 條件3:
執(zhí)行體4
……
elif 條件n:
執(zhí)行體n
else:
(3)嵌套if結(jié)構(gòu)
顧名思義,就是在條件執(zhí)行體中再嵌套一個(gè)if,這個(gè)可以進(jìn)行多次嵌套。比較簡(jiǎn)單,就不進(jìn)行代碼展示了。
(4)簡(jiǎn)寫
單分支結(jié)構(gòu),if……else……,的簡(jiǎn)寫形式,見下。當(dāng)條件布爾值為真時(shí),輸出x,否則輸出y。下面的例子,可以知道,print出的a應(yīng)該就是0
x if 條件 else y
a=1 if 1==2 else 0
print(a)
循環(huán)結(jié)構(gòu)
(1)while 結(jié)構(gòu)
while循環(huán)結(jié)構(gòu)見下,如果循環(huán)n次,那么需要進(jìn)行n+1次判斷,if只會(huì)判斷一次。while循環(huán)結(jié)構(gòu)需要四步:1.初始化變量;2.條件判斷;3.執(zhí)行循環(huán)體;4.改變變量。第四步需要格外注意,如果不對(duì)變量進(jìn)行改變,很有可能會(huì)陷入死循環(huán)中。
變量初始化定義
while 條件判斷式:
條件循環(huán)體
變量改變
(2)for in 結(jié)構(gòu)
可迭代對(duì)象為列表、元組等;如果在循環(huán)體中不需要用到自定義變量,那么可以將自定義變量替換為“_”。
for 自定義變量 in 可迭代對(duì)象:
循環(huán)體
注:這兩個(gè)結(jié)構(gòu)同樣可以進(jìn)行多層嵌套來(lái)執(zhí)行循環(huán)。
break\continue\else\pass
(1)break
break主要用于循環(huán)中,用于打破循環(huán),不再執(zhí)行循環(huán);一般與 if 配合使用;當(dāng)代碼為多層嵌套,break在內(nèi)存嵌套時(shí),只能結(jié)束所在層的循環(huán)。
(2)continue
同樣用于循環(huán)結(jié)構(gòu)中,不過(guò)他是結(jié)束本次循環(huán),進(jìn)行下一次循環(huán)。與break有所區(qū)別,break相當(dāng)于不讓循環(huán)了,而continue是本次循環(huán)不用執(zhí)行之后的東西了。同樣的,continue也一般與 if 配合使用,且代碼為多層嵌套,continue只能結(jié)束所在層的單次循環(huán)。
(3)else
else除了上述所講在 if 選擇結(jié)構(gòu)的作用外,還可以出現(xiàn)在while,for in 循環(huán)結(jié)構(gòu)中。當(dāng)用在循環(huán)結(jié)構(gòu)中時(shí),如果在循環(huán)過(guò)程中,沒(méi)有執(zhí)行過(guò)break,那么就會(huì)執(zhí)行 else 中的代碼,反之則不會(huì)執(zhí)行。
水仙花數(shù)
水仙花數(shù)的定義:一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
(1)思路一:將數(shù)用str()變?yōu)?span id="7cv38ze8gk" class="candidate-entity-word" data-gid="5469888">字符串,直接獲取個(gè)位、十位、百位,獲取出來(lái)的為字符,再用int()轉(zhuǎn)換為數(shù),之后再進(jìn)行判斷是否為水仙花數(shù)。獲取所有水仙花數(shù),代碼見下:
a=100
while a<=999:
a=str(a) #將數(shù)轉(zhuǎn)換為字符串
b=a[0] #將各個(gè)位數(shù)的數(shù)字提取出來(lái),此時(shí)還是字符串
c=a[1]
d=a[2]
e=int(b)**3+int(c)**3+int(d)**3 #將各個(gè)位數(shù)變成數(shù),并計(jì)算
if e==int(a): #判斷是否為水仙花數(shù),注意前面把a(bǔ)變成字符串了,因此這里需要再變成數(shù)
print(a)
a=int(a)
a+=1
(2)思路二:三位數(shù)對(duì)10取余,可以獲得個(gè)位數(shù);對(duì)100取余可以獲得百位數(shù);十位數(shù)可以將三位數(shù)整除10,再對(duì)10取余。
a=100
while a<=999:
b=a%10
c=a//10%10
d=a//100
e=b**3+c**3+d**3
if a==e:
print(a)
a+=1
學(xué)習(xí)python的第四天,感覺(jué)可以,沖[熊貓]
學(xué)習(xí)視頻:花了2萬(wàn)多買的Python教程全套,現(xiàn)在分享給大家,入門到精通(Python全棧開發(fā)教程)_嗶哩嗶哩_bilibili

如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.qjsdgw.cn/133715.html