Day3-5 分支結(jié)構(gòu)聊品、循環(huán)結(jié)構(gòu)和構(gòu)造程序

1、分支結(jié)構(gòu)

其他程序語言几苍,一般需要用花括號{}來構(gòu)造分支結(jié)構(gòu)翻屈,但python主要靠縮進(jìn),相同縮進(jìn)的程序?yàn)橥粋€(gè)代碼塊妻坝。這個(gè)特性伸眶,使python具有非常好的可讀性惊窖。
一般建議代碼塊的縮進(jìn)4個(gè)空格,不要使用tab鍵厘贼。條件分支常用if ... esif...else界酒。另外,需要注意python沒有unless嘴秸,也不用盾计!取“否”邏輯×抟牛可以用if not代替。

2族铆、循環(huán)結(jié)構(gòu)

python中的循環(huán)結(jié)構(gòu)主要有for .. in ..和while兩個(gè)岩四。其中,while可通過構(gòu)建死循環(huán)哥攘、達(dá)到條件退出循環(huán)剖煌,來構(gòu)建程序。循環(huán)結(jié)構(gòu)中逝淹,continue代替了perl里的next耕姊,break跳出當(dāng)前循環(huán)。具體用法可見下面的示例栅葡。

3茉兰、構(gòu)造程序

當(dāng)學(xué)習(xí)完元素、條件結(jié)構(gòu)欣簇、循環(huán)結(jié)構(gòu)以后规脸,就可以寫出一些可用的程序了。下面我們使用python程序熊咽,解決一些經(jīng)典問題莫鸭。

1、尋找水仙花數(shù)

說明:水仙花數(shù)也被稱為超完全數(shù)字不變數(shù)横殴、自戀數(shù)被因、自冪數(shù)、阿姆斯特朗數(shù)衫仑,它是一個(gè)3位數(shù)梨与,該數(shù)字每個(gè)位上數(shù)字的立方之和正好等于它本身,例如:1^3 + 5^3+ 3^3=153惑畴。

import re
j = 1
for i in range(100,1000):
    i_search = re.search(r"(\d)(\d)(\d)",str(i)) #將int型轉(zhuǎn)換為string蛋欣,進(jìn)行正則表達(dá)式匹配
    ba = i_search.group(1)
    sh = i_search.group(2)
    ge = i_search.group(3)
    mi = int(ba)**3 + int(sh)**3 + int(ge)**3 #將string型轉(zhuǎn)換為int型,進(jìn)行冪運(yùn)算
    
    if mi == i:
        print("第",j,"個(gè)水仙花數(shù)是:",i)
        j += 1
#Print
#第 1 個(gè)水仙花數(shù)是: 153
#第 2 個(gè)水仙花數(shù)是: 370
#第 3 個(gè)水仙花數(shù)是: 371
#第 4 個(gè)水仙花數(shù)是: 407

這里我用了正則表達(dá)式確定百位如贷、十位和個(gè)位的數(shù)字陷虎,原作者使用的是整除和模運(yùn)算到踏,三位數(shù)對100整除//,得到百位數(shù)尚猿,三位數(shù)對10取模的個(gè)位數(shù)%窝稿,先對10整除,再對10取模得十位數(shù) num // 10 % 10凿掂。

2伴榔、百錢百雞問題

說明:百錢百雞是我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的數(shù)學(xué)問題:雞翁一值錢五,雞母一值錢三庄萎,雞雛三值錢一踪少。百錢買百雞,問雞翁糠涛、雞母援奢、雞雛各幾何?翻譯成現(xiàn)代文是:公雞5元一只忍捡,母雞3元一只集漾,小雞1元三只,用100塊錢買一百只雞砸脊,問公雞具篇、母雞、小雞各有多少只凌埂?

#百錢百雞問題

for i in range(0,21):
    for j in range(0,34):
        for f in range(0,101):
            if i + j +f == 100 and 5*i +3*j +1/3*f == 100:
                print("分別可以買到公雞驱显、母雞、小雞:",i,"瞳抓、",j,"秒紧、",f,"只")
#Result
#分別可以買到公雞、母雞挨下、小雞: 0 熔恢、 25 、 75 只
#分別可以買到公雞臭笆、母雞叙淌、小雞: 4 、 18 愁铺、 78 只
#分別可以買到公雞鹰霍、母雞、小雞: 8 茵乱、 11 茂洒、 81 只
#分別可以買到公雞、母雞瓶竭、小雞: 12 督勺、 4 渠羞、 84 只

3、CRAPS賭博游戲

說明:CRAPS又稱花旗骰智哀,是美國拉斯維加斯非常受歡迎的一種的桌上賭博游戲次询。該游戲使用兩粒骰子,玩家通過搖兩粒骰子獲得點(diǎn)數(shù)進(jìn)行游戲瓷叫。簡單的規(guī)則是:玩家第一次搖骰子如果搖出了7點(diǎn)或11點(diǎn)屯吊,玩家勝;玩家第一次如果搖出2點(diǎn)摹菠、3點(diǎn)或12點(diǎn)盒卸,莊家勝;其他點(diǎn)數(shù)玩家繼續(xù)搖骰子次氨,如果玩家搖出了7點(diǎn)世落,莊家勝;如果玩家搖出了第一次搖的點(diǎn)數(shù)糟需,玩家勝;其他點(diǎn)數(shù)谷朝,玩家繼續(xù)要骰子洲押,直到分出勝負(fù)。


#CRAPS賭博游戲
import random
print("來玩CRAPS賭博游戲吧")

input("游戲開始圆凰,你是玩家杈帐,請你開始擲骰子:")

tou1 = random.randint(1,6)
tou2 = random.randint(1,6)
First_dian = tou1 + tou2

print("你分別擲出了",tou1,"和",tou2,"點(diǎn)")

print("第一次擲出的點(diǎn)數(shù)為:",tou1+tou2,"點(diǎn)")

if tou1 + tou2 == 7 or tou1 + tou2 == 11:
    print("恭喜你,你擲出了",tou1+tou2,"點(diǎn)专钉,你獲得了勝利")
elif tou1+tou2 == 2 or tou1+tou2 == 3 or tou1+tou2 ==12:
    print("很遺憾挑童,你擲出了",tou1+tou2,"點(diǎn),莊家獲得了勝利")
else:
    while True:
        print("擲出的點(diǎn)數(shù)為",tou1+tou2,",沒人獲得勝利")
        input("繼續(xù)擲骰子吧:")
        tou1 = random.randint(1,6)
        tou2 = random.randint(1,6)
        print("你分別擲出了",tou1,"和",tou2,"點(diǎn)")
        if tou1+tou2 == 7:
            print("很遺憾跃须,你擲出了",tou1+tou2,"點(diǎn)站叼,莊家獲得了勝利")
            break
        elif tou1+tou2 == First_dian:
            print("恭喜你,你擲出了",tou1+tou2,"點(diǎn)菇民,和第一次的點(diǎn)數(shù)相同尽楔,你獲得了勝利")
            break

4、生成斐波那契數(shù)列的前20項(xiàng)

斐波那契數(shù)列的特點(diǎn)是數(shù)列的前兩個(gè)數(shù)都是1第练,從第三個(gè)數(shù)開始阔馋,每個(gè)數(shù)都是它前面兩個(gè)數(shù)的和

#生成斐波那契數(shù)列
i = 1
a = 1
b = 1

Fib = [a,b]

while i <= 20 :
    c = a + b
    a = b
    b = c
    i +=1
    Fib = Fib + [c]
print("斐波那契數(shù)列的前20項(xiàng)為:",Fib)

#斐波那契數(shù)列的前20項(xiàng)為: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711]

5、找出10000內(nèi)的完美數(shù)

說明:完美數(shù)又稱為完全數(shù)或完備數(shù)娇掏,它的所有的真因子(即除了自身以外的因子)的和(即因子函數(shù))恰好等于它本身呕寝。例如:6(6=1+2+3)和28(28=1+2+4+7+14)就是完美數(shù)。完美數(shù)有很多神奇的特性婴梧,有興趣的可以自行了解下梢。

#尋找10000以內(nèi)的完美數(shù)

wanm = []

for i in range(2,10001):
    yin = []
    for j in range(1,i):
        if(i % j ==0):
            yin = yin + [j]
    if sum(yin) == i:
        wanm = wanm + [i]

print("10000以內(nèi)的完美數(shù)有:",wanm)
#10000以內(nèi)的完美數(shù)有: [6, 28, 496, 8128]

6客蹋、輸出100內(nèi)的所有素?cái)?shù)

說明:素?cái)?shù)指的是只能被1和自身整除的正整數(shù)(不包括1)。

#輸出100內(nèi)的所有素?cái)?shù)

su = []

for i in range(2,100):
    count = 0
    for j in range(1,i):
        if i % j == 0:
            continue
        else:
            count = count + 1

    if count + 2 == i:
        su = su + [i]

print("100內(nèi)的素?cái)?shù)有:",su)
#100內(nèi)的素?cái)?shù)有: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怔球,一起剝皮案震驚了整個(gè)濱河市嚼酝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竟坛,老刑警劉巖闽巩,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異担汤,居然都是意外死亡涎跨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門崭歧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隅很,“玉大人,你說我怎么就攤上這事率碾∈逵” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵所宰,是天一觀的道長绒尊。 經(jīng)常有香客問我,道長仔粥,這世上最難降的妖魔是什么婴谱? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮躯泰,結(jié)果婚禮上谭羔,老公的妹妹穿的比我還像新娘。我一直安慰自己麦向,他們只是感情好瘟裸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诵竭,像睡著了一般景描。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秀撇,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天超棺,我揣著相機(jī)與錄音,去河邊找鬼呵燕。 笑死棠绘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氧苍,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼夜矗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了让虐?” 一聲冷哼從身側(cè)響起紊撕,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赡突,沒想到半個(gè)月后对扶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惭缰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年浪南,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漱受。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡络凿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昂羡,到底是詐尸還是另有隱情絮记,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布虐先,位于F島的核電站怨愤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赴穗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一膀息、第九天 我趴在偏房一處隱蔽的房頂上張望般眉。 院中可真熱鬧,春花似錦潜支、人聲如沸甸赃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埠对。三九已至,卻和暖如春裁替,著一層夾襖步出監(jiān)牢的瞬間项玛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工弱判, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留襟沮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像开伏,于是被迫代替她去往敵國和親膀跌。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容