我正在创建一个程序来收集用户的数据,我已经完成了收集他们的名字,姓氏,年龄等的基本输入;但我希望用户的名字或姓氏中没有数字。
如果用户在名字中输入一个数字,例如" Aaron1"或者他们的姓氏" Cox2&#34 ;;它会重复询问他们的名字的问题。
尝试1
firstname=input("Please enter your first name: ")
if firstname==("1"):
firstname=input("Your first name included a number, please re-enter your first name")
else:
pass
尝试2
firstname=input("Please enter your first name: ")
try:
str(firstname)
except ValueError:
try:
float(firstname)
except:
firstname=input("Re-enter your first name: ")
有什么建议吗?
答案 0 :(得分:0)
首先创建一个函数,检查字符串中是否有任何数字:
def hasDigits(inputString):
return any(char.isdigit() for char in inputString)
然后使用循环继续询问输入,直到它不包含数字。
示例循环如下所示:
firstname=input("Please enter your first name: ")
while hasDigits(firstname):
firstname=input("Please re-enter your first name (Without any digits): ")
答案 1 :(得分:0)
您可以使用isalpha
方法检查名称是否包含字母。
#The following import is only needed for Python 2 to handle non latin characters
from __future__ import unicode_literals
'Łódź'.isalpha() # True
'Łódź1'.isalpha() # False