2 python string error-handling input python-3.x
为了自知之明,我正在尝试制作一个程序。我想问用户他们的名字是什么,我只希望用户能够使用字母表中的字母来回答,或者只能使用字符串。我不希望他们能够用数字、符号等来回答。
def cc():
name = (input("""Hello, what happens to be your first name?
> """))
if type(name) is str:
print("You have entered a name correctly.")
elif type(name) is int:
print("Your name cannot be an integer. Try again.")
cc()
cc()
Run Code Online (Sandbox Code Playgroud)
您可以使用str.isalpha. 从文档:
如果字符串中的所有字符都是字母并且至少有一个字符,则返回 true,否则返回 false。字母字符是在Unicode字符数据库中定义为“字母”的字符,即一般类别属性为“Lm”、“Lt”、“Lu”、“Ll”或“Lo”之一的字符。请注意,这与 Unicode 标准中定义的“字母”属性不同。
这是一个示例程序:
while True:
name = input('Enter a name using only alphabetic characters: ')
if name.isalpha():
break
Run Code Online (Sandbox Code Playgroud)
演示:
Enter name using only alphabetic characters: Bo2
Enter name using only alphabetic characters: Bo^&*(
Enter name using only alphabetic characters: Bob
Run Code Online (Sandbox Code Playgroud)
请注意,此方法不适用于具有连字符名称的人,例如"Anne-Marie"。