我一直想知道這個問題如果我檢查用戶輸入,我知道如何檢查字串。但是如果我想檢查用戶輸入的是整數還是浮點數呢?我用“if name == int or float: block”嘗試了它,但當然沒有用。你能幫我嗎?我該如何檢查?這是我的代碼。當然,我總是轉換為輸入一個字串,所以我不知道該怎么做。
print("Enter a name: ")
while True:
name = input()
if name != "":
print("Thank you for entering a name: ")
break
else:
print("Please enter a name: ")
我也試過這個:
print("Enter a name: ")
while True:
name = input()
if type(name) != int:
print("Thats not a name!")
print("Now please enter a name without numbers")
elif type(name) != float:
print("Thats also not a name!")
print("Now please enter a name without numbers")
elif type(name) != "":
print("Thank you for entering your name!")
break
else:
print("Please enter a name: ")
uj5u.com熱心網友回復:
因為int您可以使用該isnumeric()方法
"1".isnumeric() #True
對于float,您應該嘗試是否可以轉換為浮動
def isFloat(num):
try:
float(num)
return True
except ValueError:
return False
現在使用這兩種方法:
print("Enter a name: ")
while True:
name = input()
if name.isnumeric() or isFloat(name):
print("Thats not a name!")
print("Now please enter a name without numbers")
elif type(name) != "":
print("Thank you for entering your name!")
break
else:
print("Please enter a name: ")
輸出 :
Enter a name:
1
Thats not a name!
Now please enter a name without numbers
1.2
Thats not a name!
Now please enter a name without numbers
abc
Thank you for entering your name!
uj5u.com熱心網友回復:
編輯:這可能會有所幫助。
def hello(userinput):
if userinput.isdigit():
print("You entered a number. That's not valid!")
舊解決方案
print("Enter a name: ")
while True:
name = input()
if type(name) != int:
print("Thank you for entering a name: ")
break
else:
print("Please enter a name: ")
我也能理解你為什么這樣做。您之前創建的代碼意味著如果用戶鍵入類 int。這將不可能鍵入一個類,因為input()只從用戶的輸入中獲取一個字串。
uj5u.com熱心網友回復:
要檢查變數是否屬于某種型別,只需使用if type(VARIABLE) == TYPE:其中“VARIABLE”是您的變數而 TYPE 是您的型別(例如 int、float、str 等)。
但是,在您的代碼中,您可能希望使用str.isnumeric()它,因為它會True在字串中有數值時回傳。要檢查任何字符是否為數字,請if all([not char.isnumeric() for char in list(STRING)]):在“STRING”是您的用戶輸入的地方執行。這會檢查字串中的每個字符是否都不是數字,True如果是這種情況則回傳。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384799.html
