好吧,所以我定义了一个用户可以输入他/她名字的功能。我想这样做是为了不允许用户为他/她的名字输入类似“69”的数字。我该怎么做呢?这是我使用的代码:
def name():
while True:
name = input("What is your name? "))
try:
return str(name)
break
except TypeError:
print("Make sure to enter your actual name.")
答案 0 :(得分:4)
您可以使用isalpha()检查姓名:
如果字符串中的所有字符都是字母,那么返回true 至少是一个字符,否则就是假。
>>> "69".isalpha()
False
>>> "test".isalpha()
True
以下是您的代码修改:
while True:
name = input("What is your name? ")
if name.isalpha():
break
else:
print("Make sure to enter your actual name.")
continue
或者:
name = input("What is your name? ")
while not name.isalpha():
print("Make sure to enter your actual name.")
name = input("What is your name? ")
答案 1 :(得分:2)
您可以使用str.isdigit()
方法检查字符串是否只包含数字:
name = input("What is your name? ")
while name.isdigit():
print("Make sure to enter your actual name.")
name = input("What is your name? ")
请注意,这将允许名称 - "Rohit1234"
。如果您只想允许使用字母字符,则可以使用str.isalpha()
方法。
答案 2 :(得分:0)
反转你的逻辑:
while True:
name = ...
try:
int(name)
print "Name can't be a number."
except TypeError:
return str(name)
请注意,这将接受任何非有效整数的输入,包括123abc
左右。