try:
x = int(input("Enter Your Number first = ")) or float(input("Enter Your Number first = "))
y = int(input("Enter Your Number first = ")) or float(input("Enter Your Number first = "))
except:
print("Error,Invalid Input")
我知道我錯了,我只是想知道為什么我無法使用它。因為我沒有收到任何錯誤。當我嘗試將浮點值放入輸入時,它會將我回傳到我的第二種情況,即錯誤,無效輸入。我正在使用(或)運算子,以便可以在一個地方驗證整數和浮點值。(或)當條件之一為真時,操作員應該執行代碼,對嗎?但是為什么我們不能使用 Or 運算子和整數呢?如果您從代碼中洗掉 int,該代碼將起作用。
uj5u.com熱心網友回復:
雖然您可以使用or運算子來選擇值之間的第一個真值(或后者,如果第一個是假的),但在這種情況下它不起作用,因為嘗試轉換為int表示float值的字串不會' t 回傳一個虛假值,它會引發一個Exception,這就是你進入你的except子句的原因
撰寫代碼的一種合乎邏輯的合理方式是
x = input("Enter Your Number first = ")
try:
num = int(x)
except:
num = float(x)
不是最好的方法,但它有效
另一個例子:
x = 10/0 or 3 #ZeroDivisionError
x = 0/10 or 3 # x is 3 because 0 is a falsy value
uj5u.com熱心網友回復:
一般我們用 or case 來檢查一些條件。例如,如果 x<3 或 x>5:此 if 塊適用于兩種情況。但是,在您的情況下,您試圖從用戶那里獲取一些輸入并使用 x = int(input("Enter Your Number first = ")) 或 float(input("Enter Your Number first = "))。因此,當我輸入一個值時,它會以字串形式獲取數字,當您撰寫 int(input()) 時,它會將其轉換為整數并分配給 x。所以 OR 在邏輯上不適合這里。在這種情況下,計算機將如何作業?你想達到什么目標?如果您想將引數作為浮點數,只需撰寫 float(input()) ,因為當您輸入整數時,它也可以作為浮點數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419880.html
標籤:
上一篇:R和Python中的重復值
下一篇:大量的Python錯誤?
