簡體   English   中英

try語句-多個條件-Python 2

[英]Try statement - multiple conditions - Python 2

我對try語句以及多個條件沒有什么疑問。 當第二條件有錯誤時,它要求第一條件。 我要做的是重復相同的條件,而不是整個循環。 我希望你能理解我,因為我的英語不是很好,而且我還是Python的新手,所以我也不知道如何用母語描述它。

希望以下示例可以幫助您更好地理解我的想法。

while True:
    try:
        zacatek = float(raw_input("Zacatek: "))
        konec = float(raw_input("Konec: "))
    except Exception:
        pass
    else:
        break

它執行以下操作:

Zacatek: 1
Konec: a
Zacatek:  

但我希望它這樣做:

Zacatek: 1
Konec: a
Konec: 

在此先感謝您的幫助。

編寫一個查詢單個float的函數,然后調用兩次:

def input_float(msg):
    while True:
        try:
            return float(raw_input(msg))
        except ValueError:
            pass
zacatek = input_float("Zacatek: ")
konec = input_float("Konec: ")

發生的情況是您的except子句在您對Konec的答復中捕獲了ValueError異常,並返回到循環的頂部。

您的float函數試圖將非數字響應“ a”轉換為float並拋出異常。

另外,您可以為每個輸入編寫一個不同的循環:

zacatek = None
while not zacatek:
    try:
        zacatek = float(raw_input("Zacatek: "))
    except Exception:
        continue

konec = None
while not konec:
    try:
        konec = float(raw_input("Konec: "))
    except Exception:
        continue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM