99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python 中for...esle和while...else語(yǔ)法

發(fā)布時(shí)間:2017-04-21 21:26  回復(fù):0  查看:2018   最后回復(fù):2017-04-21 21:26  

Pythonfor...elsewhile...else語(yǔ)法,這是Python開發(fā)中最不常用,最為誤解的語(yǔ)法特性之一。

  Python中的for、while循環(huán)都有一個(gè)可選的else分支(類似if語(yǔ)句和try語(yǔ)句那樣),在循環(huán)迭代正常完成之后執(zhí)行。換句話說(shuō), 如果我們不是除正常以外的其他方式退出循環(huán),那么else分支將被執(zhí)行 。也就是在循環(huán)體內(nèi)沒有break語(yǔ)句、沒有return語(yǔ)句,或者沒有異常出現(xiàn)。

  1.break情況

  下面我們來(lái)嘗試在循環(huán)中執(zhí)行break退出

  lucky_number.py

  lucky_num = 19

  #首先定義一個(gè)幸運(yùn)數(shù)字,這樣條理比較清晰

  #action = True

  guess_count = 0

  while guess_count < 3:

  #限制用戶輸入

  input_num = int(input("Input the guess num: "))

  #if lucky_num == input_num:

  #print("Bingo!")

  #action = False

  #break強(qiáng)制終端循環(huán)語(yǔ)句,避免陷入死循環(huán)之中

  if input_num > lucky_num:

  print("The real number is smalller!")

  elif input_num < lucky_num:

  print("The real number is bigger...")

  else:

  print("Bjngo!...")

  break

  guess_count += 1

  else:

  print("Too many retrys!")

  首先我們執(zhí)行三次沒有測(cè)對(duì)的情況如下:

  Input the guess num: 1

  The real number is bigger...

  Input the guess num: 2

  The real number is bigger...

  Input the guess num: 100

  The real number is smalller!

  Too many retrys!

  從結(jié)果上可以看出,最后執(zhí)行了else分支語(yǔ)句(Too many retrys!),提示用戶輸入過多的次數(shù),正常情況下是執(zhí)行else語(yǔ)句的。下面我們來(lái)看

  一下非正常退出情況下:

  用戶猜測(cè)正確:

  Input the guess num: 1

  The real number is bigger...

  Input the guess num: 19

  Bjngo!...

  從上面結(jié)果我們可以看出,當(dāng)用戶猜對(duì)數(shù)字后,break了一下,推出了while...else語(yǔ)句,else語(yǔ)句沒有正常執(zhí)行。

  2.return情況

  #首先定義一個(gè)幸運(yùn)數(shù)字,這樣條理比較清晰

  #action = True

  #限制用戶輸入,如果三次沒有猜對(duì)則退出循環(huán)

  def count():

  lucky_num = 19

  guess_count = 0

  while guess_count < 3:

  input_num = int(input("Input the guess num: "))

  #if lucky_num == input_num:

  #print("Bingo!")

  #action = False

  #break強(qiáng)制終端循環(huán)語(yǔ)句,避免陷入死循環(huán)之中

  if input_num > lucky_num:

  print("The real number is smalller!")

  elif input_num < lucky_num:

  print("The real number is bigger...")

  else:

  print("Bjngo!...")

  return guess_count

  guess_count += 1

  else:

  print("Too many retrys!")

  numbers = count()

  print(numbers)

  由于rerturn語(yǔ)句只能在函數(shù)和類中使用,因此我定義了一個(gè)函數(shù),看我們輸入正確的時(shí)候是否能夠終端else語(yǔ)句。

     (1).調(diào)用這個(gè)函數(shù),輸入三次不正確

  Input the guess num: 1

  The real number is bigger...

  Input the guess num: 1

  The real number is bigger...

  Input the guess num: 1

  The real number is bigger...

  Too many retrys!

  None

  從結(jié)果中可以看出來(lái),當(dāng)我們輸入三次的時(shí)候,else語(yǔ)句正常運(yùn)行,因?yàn)槲覀冚斎氲亩疾徽?,不影?/span>else語(yǔ)句

  (2).用戶猜測(cè)正確的情況:

  Input the guess num: 1

  The real number is bigger...

  Input the guess num: 19

  Bjngo!...

  1

  從結(jié)果可以看出,用戶第一次猜測(cè)錯(cuò)誤,第二猜對(duì)了,然后把guess_count返回給了變量numbers,沒有運(yùn)行else語(yǔ)句。

     結(jié)論:如果我們想在用戶輸入正確的時(shí)候退出循環(huán),輸入次數(shù)太多的時(shí)候提示用戶,那么可以使用while...else...break語(yǔ)句,在用戶

  輸入次數(shù)超過限制沒有答對(duì)的時(shí)候提醒用戶;答對(duì)了的時(shí)候退出循環(huán),不打印提醒,那么可以在用戶輸入正確的時(shí)候使用break進(jìn)行中斷。

    牢記:Python中的for、while循環(huán)都有一個(gè)可選的else分支(類似if語(yǔ)句和try語(yǔ)句那樣),在循環(huán)迭代正常完成之后執(zhí)行。換句話說(shuō),如果我們

  不是除正常以外的其他方式退出循環(huán),那么else分支將被執(zhí)行。也就是在循環(huán)體內(nèi)沒有break語(yǔ)句、沒有return語(yǔ)句,或者沒有異常出現(xiàn)。

 

 

來(lái)源:博客園

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?