七示弓、分支與循環(huán)

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

1.1呵萨、if分支語句

if<condition>     #判斷表達(dá)式是否為真
  <statements>     #代碼塊
else<condition>   #if不成立時(shí)執(zhí)行else下代碼
  <statements>

1.2硕并、多分支結(jié)構(gòu)(if-elif-else)

elif語句允許檢查多個(gè)表達(dá)式是否為True明吩,并在其中一個(gè)條件求值為True時(shí)立即執(zhí)行對(duì)應(yīng)代碼塊锐朴。

score = int(input('請(qǐng)輸入一個(gè)分?jǐn)?shù):'))
if 100 >= score >= 90:
  print('A')
elif 90 >= score >= 80:   # 可多次判斷表達(dá)式是否為True
  print('B')
elif 80 >= score >= 60:
  print('B')
elif 60 >= score = 0:
  print('D')
else:
  print('輸入有誤!')

1.3勇婴、條件表達(dá)式(三元操作符)

三元操作符語法:

a = x if 條件 else y      #條件為True時(shí),a的值賦值為x嘱腥,否則為y

一元操作符:‘-’耕渴,負(fù)號(hào)
二元操作符:‘=’,賦值齿兔,它有左右兩個(gè)操作數(shù)
三元操作符:三個(gè)操作數(shù)

if x < y:
  small = x
else:
  small = y
上述代碼可用三元操作符表示:
small = x if x < y else y

1.4橱脸、斷言assert

可用來在程序中置入檢查點(diǎn),當(dāng)需要確保程序中的某個(gè)條件一定為真時(shí)才能讓程序正常工作分苇,assert就很有用了添诉,與其出現(xiàn)莫名的bug導(dǎo)致程序崩潰不如自我毀滅
assert語法:

assert 3 > 4   #當(dāng)后面的條件為False時(shí),程序崩潰拋出AssertionError的異常

2医寿、循環(huán)語句

2.1吻商、while循環(huán)語句

while 條件:          #條件為真執(zhí)行執(zhí)行循環(huán)體,為假時(shí)跳出循環(huán)體
  循環(huán)體

2.1.1糟红、死循環(huán)

無限循環(huán)可能在客戶端/服務(wù)器編程中有用,服務(wù)器需要連續(xù)運(yùn)行乌叶,以便客戶端程序可以在需要時(shí)與其進(jìn)行通信盆偿。

var = 1
while var == 1 :  # This constructs an infinite loop(這構(gòu)成一個(gè)無限循環(huán))
   num = int(input("Enter a number  :"))
   print ("You entered: ", num)

print ("Good bye!")

按CTRL+C可退出無限循環(huán)

2.1.2、在循環(huán)中使用else語句

如果else語句與while循環(huán)一起使用准浴,則在條件變?yōu)閒alse時(shí)執(zhí)行else語句

count = 0
while count < 5:
   print (count, " is  less than 5")
   count = count + 1
else:
   print (count, " is not less than 5")

2.2事扭、for循環(huán)語句

for <variable> in <sequence>:   #variable表示迭代的目標(biāo)變量,sequence表示表達(dá)式(列表乐横、元組或其他)
    <statements>
else:
    <statements>
member = ['黑夜' , '迷離',  '愛你哦']
for each in member:
  print(each, len(each))

2.3求橄、range()函數(shù)

如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)葡公。它會(huì)生成數(shù)列

range( [start,] stop[, step = 1])   #語法

range()有三個(gè)可選參數(shù)罐农,其中中括號(hào)里的可選,step = 1催什,表示第三個(gè)參數(shù)默認(rèn)值為1涵亏。

#傳遞一個(gè)參數(shù):
for i in range(3):    #從0開始遍歷,不包括尾(3)
  print(i)
0
1
2

#傳遞兩個(gè)參數(shù):
for i in range(1, 8):
  print(i)
1 2 3 4 5 6 7 

#傳遞三個(gè)參數(shù):
for i in range(1,10,2):  #第三個(gè)參數(shù)表示步進(jìn)蒲凶,從1開始气筋,每次遞進(jìn)2
  print(i)
1 3 5 7 9

range()函數(shù)來創(chuàng)建一個(gè)列表:

>>>list(range(5))
[0, 1, 2, 3, 4]

range()和len()函數(shù)以遍歷一個(gè)序列的索引:

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ

2.4、break語句

break語句作用是終止當(dāng)前循環(huán)旋圆,跳出循環(huán)體宠默,只能跳出一層循環(huán)
(1)、與while循環(huán)搭配:

var = 10
while var > 0:
    print('當(dāng)前變量值為:', var)
    var -= 1
    if var == 5:
        break
print('GOOD BYE!')

(2)灵巧、與for循環(huán)搭配:

for each in 'runoob':
    if each == 'b':
        break
    print('當(dāng)前字母為:', each)

2.5搀矫、continue語句

continue語句作用是終止本輪循環(huán)抹沪,并開始下一輪循環(huán),(開始下一輪循環(huán)前艾君,會(huì)先測(cè)試循環(huán)條件)

>>> for i in range(10):
      if i % 2 != 0:
        print(i)   #當(dāng)i % 2 != 0時(shí)輸出采够,為0時(shí)終止本輪循環(huán)
        continue    
1
3
5
7
9
>>> for i in range(10):
    if i %2 != 0:
        continue    #當(dāng)i % 2 != 0時(shí)終止本輪循環(huán),為0時(shí)輸出
    print(i)
0
2
4
6
8
var = 10                  
while var > 0:              
   var = var -1
   if var == 5:             # 變量為 5 時(shí)跳過輸出,繼續(xù)下一輪當(dāng)var==4時(shí)
      continue
   print ('當(dāng)前變量值 :', var)
print ("Good bye!")
當(dāng)前變量值 : 9
當(dāng)前變量值 : 8
當(dāng)前變量值 : 7
當(dāng)前變量值 : 6
當(dāng)前變量值 : 4
當(dāng)前變量值 : 3
當(dāng)前變量值 : 2
當(dāng)前變量值 : 1
當(dāng)前變量值 : 0
Good bye!
例:驗(yàn)證用戶密碼程序冰垄,3次機(jī)會(huì)蹬癌,若輸入* 則不算入內(nèi)
count = 3
password = '12345678'

while count:
    passwd = input('請(qǐng)輸入密碼:')
    if passwd == password:
        print('密碼正確,進(jìn)入程序....')
        break
    elif '*' in passwd:
        print('密碼中不能含有"*",您還有',count,'次機(jī)會(huì)虹茶!', end = '')
        continue
    else:
        print('密碼輸入錯(cuò)誤逝薪,您還有',count-1,'次機(jī)會(huì)', end = '')
    count -= 1

2.6、pass 語句

Python pass是空語句蝴罪,是為了保持程序結(jié)構(gòu)的完整性董济,pass 不做任何事情,一般用做占位語句要门。

>>>while True:
...     pass  # 等待鍵盤中斷 (Ctrl+C)
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('執(zhí)行 pass 塊')
   print ('當(dāng)前字母 :', letter)
 
print ("Good bye!")
當(dāng)前字母 : R
當(dāng)前字母 : u
當(dāng)前字母 : n
執(zhí)行 pass 塊
當(dāng)前字母 : o
執(zhí)行 pass 塊
當(dāng)前字母 : o
當(dāng)前字母 : b
Good bye!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虏肾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欢搜,更是在濱河造成了極大的恐慌封豪,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炒瘟,死亡現(xiàn)場(chǎng)離奇詭異吹埠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疮装,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門缘琅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人廓推,你說我怎么就攤上這事刷袍。” “怎么了樊展?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵做个,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我滚局,道長(zhǎng)居暖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任藤肢,我火速辦了婚禮太闺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘁圈。我一直安慰自己省骂,他們只是感情好蟀淮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钞澳,像睡著了一般怠惶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轧粟,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天策治,我揣著相機(jī)與錄音,去河邊找鬼兰吟。 笑死通惫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的混蔼。 我是一名探鬼主播履腋,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼惭嚣!你這毒婦竟也來了遵湖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤晚吞,失蹤者是張志新(化名)和其女友劉穎奄侠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體载矿,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年烹卒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闷盔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旅急,死狀恐怖逢勾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情藐吮,我是刑警寧澤溺拱,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站谣辞,受9級(jí)特大地震影響迫摔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泥从,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一句占、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躯嫉,春花似錦纱烘、人聲如沸杨拐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哄陶。三九已至,卻和暖如春哺壶,著一層夾襖步出監(jiān)牢的瞬間屋吨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工变骡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留离赫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓塌碌,卻偏偏與公主長(zhǎng)得像渊胸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子台妆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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