我写了下面的代码:如何检查,如果用户输入是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'异常。 –
输入类型将永远的海峡,因为,'输入()'总是会返回一个字符串。 –