If user types numbers instead of letters, show this error
本问题已经有最佳答案,请猛点这里访问。
我正在创建一个程序,它从用户那里收集数据,我已经完成了收集他们名字、姓氏、年龄等的基本输入;但是我希望用户的名字或姓氏中没有数字。
如果用户在名字中键入一个数字,例如"aaron1",或者他们的姓氏是"cox2";它将重复询问他们的名字的问题。
尝试1
1 2 3 4 5 | 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
1 2 3 4 5 6 7 8 | firstname=input("Please enter your first name: ") try: str(firstname) except ValueError: try: float(firstname) except: firstname=input("Re-enter your first name:") |
号
有什么建议吗?
您可以使用
1 2 3 4 5 | #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 |
首先创建一个函数,检查字符串中是否有数字:
1 2 | def hasDigits(inputString): return any(char.isdigit() for char in inputString) |
然后使用循环不断请求输入,直到它不包含数字。
示例循环如下所示:
1 2 3 4 | firstname=input("Please enter your first name: ") while hasDigits(firstname): firstname=input("Please re-enter your first name (Without any digits): ") |
号
实况示例