我寫了下面的代碼:如何檢查,如果用戶輸入是Python中的字符串3
try:
nums=input("Write a name:")
print (nums)
except ValueError:
print ("You didn't type a name")
的問題是,即使用戶輸入一個數字節目打印出來`
我寫了下面的代碼:如何檢查,如果用戶輸入是Python中的字符串3
try:
nums=input("Write a name:")
print (nums)
except ValueError:
print ("You didn't type a name")
的問題是,即使用戶輸入一個數字節目打印出來`
你可以使用內置的Python函數type()來確定變量的類型。
如果字符串中的所有字符都來自字母表,則可以使用函數yourstring.isalpha()
返回true。 因此,對於你的例子:
nums = input("write a name:")
if(not nums.isalpha()):
print("you did not write a name!")
return
print(nums)
您可以使用regex
這樣的例子:
import re
while True:
try:
name = input('Enter your name: ')
validate = re.findall(r'^[a-zA-Z]+$', name)
if not validate:
raise ValueError
else:
print('You have entered:', validate[0])
break
except ValueError:
print('Enter a valid name!')
這是不是有點過於複雜,除非有人想確保只輸入特定的字符? – zezollo
@zezollo字符必須在'a - > z和A - > Z'的範圍內。因此,例如'foo123'會拋出'ValueError'異常。 –
輸入類型將永遠的海峽,因爲,'輸入()'總是會返回一個字符串。 –