我正在尝试验证用户姓名的输入。到目前为止,我可以阻止他们只输入数字,并使用while循环重复提示。如何停止包含字母和数字的字符串被接受?
这是我到目前为止所做的:
name = ""
name = input("Please enter your name:")
while name == "" or name.isnumeric() == True:
name = input("Sorry I didn't catch that\nPlease enter your name:")
答案 0 :(得分:3)
使用any
和str.isdigit
:
htmlText
在你的情况下:
>>> any(str.isdigit(c) for c in "123")
True
>>> any(str.isdigit(c) for c in "aaa")
False
或者,您可以使用str.isalpha
:
如果字符串中的所有字符都是字母并且至少有一个字符,则返回true,否则返回false。
对于8位字符串,此方法取决于语言环境。
我会像这样使用它来验证像while name == "" or any(str.isdigit(c) for c in name):
name = input("Sorry I didn't catch that\nPlease enter your name:")
这样的东西:
"Reut Sharabani"
它的作用是用空格分割输入,并确保每个部分只是字母。