七、分支與循環

1、分支結構

1.1、if分支語句

if<condition>     #判斷表達式是否為真
  <statements>     #代碼塊
else<condition>   #if不成立時執行else下代碼
  <statements>

1.2、多分支結構(if-elif-else)

elif語句允許檢查多個表達式是否為True,并在其中一個條件求值為True時立即執行對應代碼塊。

score = int(input('請輸入一個分數:'))
if 100 >= score >= 90:
  print('A')
elif 90 >= score >= 80:   # 可多次判斷表達式是否為True
  print('B')
elif 80 >= score >= 60:
  print('B')
elif 60 >= score = 0:
  print('D')
else:
  print('輸入有誤!')

1.3、條件表達式(三元操作符)

三元操作符語法:

a = x if 條件 else y      #條件為True時,a的值賦值為x,否則為y

一元操作符:‘-’,負號
二元操作符:‘=’,賦值,它有左右兩個操作數
三元操作符:三個操作數

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

1.4、斷言assert

可用來在程序中置入檢查點,當需要確保程序中的某個條件一定為真時才能讓程序正常工作,assert就很有用了,與其出現莫名的bug導致程序崩潰不如自我毀滅
assert語法:

assert 3 > 4   #當后面的條件為False時,程序崩潰拋出AssertionError的異常

2、循環語句

2.1、while循環語句

while 條件:          #條件為真執行執行循環體,為假時跳出循環體
  循環體

2.1.1、死循環

無限循環可能在客戶端/服務器編程中有用,服務器需要連續運行,以便客戶端程序可以在需要時與其進行通信。

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

print ("Good bye!")

按CTRL+C可退出無限循環

2.1.2、在循環中使用else語句

如果else語句與while循環一起使用,則在條件變為false時執行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循環語句

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

2.3、range()函數

如果你需要遍歷數字序列,可以使用內置range()函數。它會生成數列

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

range()有三個可選參數,其中中括號里的可選,step = 1,表示第三個參數默認值為1。

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

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

#傳遞三個參數:
for i in range(1,10,2):  #第三個參數表示步進,從1開始,每次遞進2
  print(i)
1 3 5 7 9

range()函數來創建一個列表:

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

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

>>>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語句作用是終止當前循環,跳出循環體,只能跳出一層循環
(1)、與while循環搭配:

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

(2)、與for循環搭配:

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

2.5、continue語句

continue語句作用是終止本輪循環,并開始下一輪循環,(開始下一輪循環前,會先測試循環條件)

>>> for i in range(10):
      if i % 2 != 0:
        print(i)   #當i % 2 != 0時輸出,為0時終止本輪循環
        continue    
1
3
5
7
9
>>> for i in range(10):
    if i %2 != 0:
        continue    #當i % 2 != 0時終止本輪循環,為0時輸出
    print(i)
0
2
4
6
8
var = 10                  
while var > 0:              
   var = var -1
   if var == 5:             # 變量為 5 時跳過輸出,繼續下一輪當var==4時
      continue
   print ('當前變量值 :', var)
print ("Good bye!")
當前變量值 : 9
當前變量值 : 8
當前變量值 : 7
當前變量值 : 6
當前變量值 : 4
當前變量值 : 3
當前變量值 : 2
當前變量值 : 1
當前變量值 : 0
Good bye!
例:驗證用戶密碼程序,3次機會,若輸入* 則不算入內
count = 3
password = '12345678'

while count:
    passwd = input('請輸入密碼:')
    if passwd == password:
        print('密碼正確,進入程序....')
        break
    elif '*' in passwd:
        print('密碼中不能含有"*",您還有',count,'次機會!', end = '')
        continue
    else:
        print('密碼輸入錯誤,您還有',count-1,'次機會', end = '')
    count -= 1

2.6、pass 語句

Python pass是空語句,是為了保持程序結構的完整性,pass 不做任何事情,一般用做占位語句。

>>>while True:
...     pass  # 等待鍵盤中斷 (Ctrl+C)
for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('執行 pass 塊')
   print ('當前字母 :', letter)
 
print ("Good bye!")
當前字母 : R
當前字母 : u
當前字母 : n
執行 pass 塊
當前字母 : o
執行 pass 塊
當前字母 : o
當前字母 : b
Good bye!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容