如果用户键入数字而不是字母,请显示此错误

时间:2018-02-01 12:09:53

标签: python validation

我正在创建一个程序来收集用户的数据,我已经完成了收集他们的名字,姓氏,年龄等的基本输入;但我希望用户的名字或姓氏中没有数字。

如果用户在名字中输入一个数字,例如" 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: ")

有什么建议吗?

2 个答案:

答案 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):  ")

Live Example

答案 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