亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果用戶輸入“完成”,我如何打破 while 循環并轉到 finally 塊

如果用戶輸入“完成”,我如何打破 while 循環并轉到 finally 塊

Helenr 2022-07-26 09:41:31
largest = Nonesmallest = Nonel = []while True:    try:        num = input("Enter a number: ")    except NameError as err:        if err == "done":            break        else:            print("Invalid input")    finally:        l.append(num)        l.sort()        largest = l[-1]        smallest = l[0]print("Maximum", largest)print("Minimim", smallest)
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

這段代碼看起來像是針對 Python 2.x 的,它input()試圖評估輸入,如果您鍵入的字符串不是變量名,則會發出錯誤信號。Python 3.x 在您鍵入時不會發出錯誤信號done。


所以只需比較輸入。當您嘗試將其轉換為int.


while True:

    num = input("Enter a number")

    if num == "done":

        break

    try:

        num = int(num)

    except ValueError:

        print("Invalid input")

        continue

    l.append(num)

l.sort()

largest = l[-1]

smallest = l[0]


查看完整回答
反對 回復 2022-07-26
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

重構邏輯。 NameError不會發生,finally也不需要……只是在“終于”完成時將其放在外面。


nums = []


while True:

    num = input('Enter a number or "done": ')  # num is a string at this point

    if num == 'done':

        break

    try:

        # try to convert num to integer...

        num = int(num)  # This can fail with ValueError, so is in try

        nums.append(num)   # This won't run if above raises exception

    except ValueError:

        print("Invalid input")


# No need to sort...

print("Maximum", max(nums)) 

print("Minimum", min(nums))


查看完整回答
反對 回復 2022-07-26
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號