08-了不起的分支和循環(huán)

分支

elif?相當(dāng)于C語言的else if


條件表達(dá)式

  • 一元操作符
    • 負(fù)數(shù):-3
  • 二元操作符
    • 兩個(gè)變量:a = b
  • 三元操作符
    • 三個(gè)變量:small = x if x < y else y #相當(dāng)于
    if x < y:
       samll = x
    else:
       small = y
    

斷言

assert這個(gè)關(guān)鍵字稱為“斷言”堂鲤,當(dāng)這個(gè)關(guān)鍵字后邊的條件為假的時(shí)候,程序自動崩潰并拋出AssertionError的異常媒峡。

>>> assert 3 > 4
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    assert 3 > 4
AssertionError

一般來說我們可以用它在程序中置入檢查點(diǎn)瘟栖,確保程序中的某個(gè)條件一定為真才能讓程序正常工作的

for循環(huán)

語法:
for 目標(biāo) in 表達(dá)式:
?????循環(huán)體

a = 'TFBOYS'
for i in a:
    print(i,end=' ')

#輸出
T F B O Y S 

len()計(jì)算字符長度

member = ['王俊凱','王源'谅阿,'易烊千璽'半哟,'柏力源']
for each in member:
    print(each,len(each))

#輸出
王俊凱  3
王源  2
易烊千璽  4
柏力源  3

range()

語法:
range( [start,] stop[, step=1] )
這個(gè)BIF有三個(gè)參數(shù),其中用括號括起來的兩個(gè)表示這兩個(gè)參數(shù)是可選的签餐。
step=1表示第三個(gè)參數(shù)默認(rèn)為1.
range這個(gè)BIF的作用是生成一個(gè)從start參數(shù)值開始到stop參數(shù)值結(jié)束的數(shù)字序列寓涨。


默認(rèn)從0開始

for i in range(10):
    print(i,end=' ')

#輸出
0 1 2 3 4 5 6 7 8 9

默認(rèn)一次增加1

for i in range(3,10):
    print(i,end=' ')

#輸出
3 4 5 6 7 8 9 

range(開始數(shù)字氯檐,結(jié)束-1戒良,增加數(shù))

for i in range(3,10冠摄,2):
    print(i,end=' ')

#輸出
3 5 7 9 

跳出循環(huán)

break

終止當(dāng)前循環(huán)糯崎,跳出循環(huán)體

for i in range(5):
    if i%2 !=0:
        print(i,end=' ')
        break
    i +=2
    print(i,end=' ')

#輸出
2 1

continue

終止本輪循環(huán)几缭,開啟下輪循環(huán),并進(jìn)行重新判斷

for i in range(5):
    if i%2 !=0:
        print(i,end=' ')
        continue
    i +=2
    print(i,end=' ')

#輸出
2 1 4 3 6 

課后習(xí)題

2. 假設(shè)有 x = 1沃呢,y = 2年栓,z = 3,請問如何快速將三個(gè)變量的值互相交換薄霜?
x, y, z = z, y, x
4. 你聽說過成員資格運(yùn)算符嗎某抓?
Python 有一個(gè)成員資格運(yùn)算符:in,用于檢查一個(gè)值是否在序列中黄锤,如果在序列中返回 True搪缨,否則返回 False。

>>> name = '小甲魚'
>>> '魚' in name
True
>>> '肥魚' in name
False

1. 下面的循環(huán)會打印多少次"I Love FishC"鸵熟?

for i in 5:
    print('I Love FishC')

會報(bào)錯(cuò)副编,上節(jié)課的課后習(xí)題我們提到了 in 是“成員資格運(yùn)算符”,而不是像 C 語言那樣去使用 for 語法流强。Python 的 for 更像腳本語言的 foreach痹届。


1. 三元操作符
small = x if (x < y and x < z) else (y if y < z else z)

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

0. 設(shè)計(jì)一個(gè)驗(yàn)證用戶密碼程序,用戶只有三次機(jī)會輸入錯(cuò)誤打月,不過如果用戶輸入的內(nèi)容中包含"星號"則不計(jì)算在內(nèi)队腐。

count = 3
password = 'FishC.com'

while count:
    passwd = input('請輸入密碼:')
    if passwd == password:
        print('密碼正確,進(jìn)入程序......')
        break
    elif '*' in passwd:
        print('密碼中不能含有"*"號奏篙!您還有', count, '次機(jī)會柴淘!', end=' ')
        continue
    else:
        print('密碼輸入錯(cuò)誤!您還有', count-1, '次機(jī)會秘通!', end=' ')    
    count -= 1

1. 編寫一個(gè)程序为严,求 100~999 之間的所有水仙花數(shù)。

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         # 注意這里要使用地板除哦~
    if sum == i:
        print(i)

2. 有紅肺稀、黃第股、藍(lán)三種顏色的求,其中紅球 3 個(gè)话原,黃球 3 個(gè)夕吻,綠球 6 個(gè)。先將這 12 個(gè)球混合放在一個(gè)盒子中繁仁,從中任意摸出 8 個(gè)球涉馅,編程計(jì)算摸出球的各種顏色搭配。

print('red\tyellow\tgreen')
for red in range(0, 4):
    for yellow in range(0, 4):
        for green in range(2, 7):
            if red + yellow + green == 8:
                # 注意黄虱,下邊不是字符串拼接控漠,因此不用“+”哦~
                print(red, '\t', yellow, '\t', green)

注釋:range(2, 7) 是產(chǎn)生 [2, 3, 4, 5, 6] 這 5 個(gè)數(shù),綠球不能是 1 個(gè),因?yàn)槿绻G球是 1 個(gè)的話盐捷,紅球 + 黃球需要有 7 個(gè)才能符合題意偶翅,而紅球和黃球每種只有 3 個(gè),因此是 range(2, 7)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碉渡,一起剝皮案震驚了整個(gè)濱河市聚谁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滞诺,老刑警劉巖形导,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異习霹,居然都是意外死亡朵耕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門淋叶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阎曹,“玉大人,你說我怎么就攤上這事煞檩〈ο樱” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵斟湃,是天一觀的道長熏迹。 經(jīng)常有香客問我,道長凝赛,這世上最難降的妖魔是什么注暗? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮墓猎,結(jié)果婚禮上友存,老公的妹妹穿的比我還像新娘。我一直安慰自己陶衅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布直晨。 她就那樣靜靜地躺著搀军,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勇皇。 梳的紋絲不亂的頭發(fā)上罩句,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音敛摘,去河邊找鬼门烂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的屯远。 我是一名探鬼主播蔓姚,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼慨丐!你這毒婦竟也來了坡脐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤房揭,失蹤者是張志新(化名)和其女友劉穎备闲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捅暴,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恬砂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蓬痒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泻骤。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乳幸,靈堂內(nèi)的尸體忽然破棺而出瞪讼,到底是詐尸還是另有隱情,我是刑警寧澤粹断,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布符欠,位于F島的核電站,受9級特大地震影響瓶埋,放射性物質(zhì)發(fā)生泄漏希柿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一养筒、第九天 我趴在偏房一處隱蔽的房頂上張望曾撤。 院中可真熱鬧,春花似錦晕粪、人聲如沸挤悉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽装悲。三九已至,卻和暖如春尚氛,著一層夾襖步出監(jiān)牢的瞬間诀诊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工阅嘶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留属瓣,地道東北人载迄。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像抡蛙,于是被迫代替她去往敵國和親护昧。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

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