Python 如何检测无效输入并将用户放入循环,直到键入可接受的答案?
我正试图找出如何让用户输入字母和返回数字作为无效输入 这是我的代码,我仍然不清楚ValueError,因为如果我运行代码并键入字母,它将作为无效输入,但如果我输入数字,它将作为有效输入Python 如何检测无效输入并将用户放入循环,直到键入可接受的答案?,python,Python,我正试图找出如何让用户输入字母和返回数字作为无效输入 这是我的代码,我仍然不清楚ValueError,因为如果我运行代码并键入字母,它将作为无效输入,但如果我输入数字,它将作为有效输入 while True: try: name = int(input("What is your name? ")) except ValueError: print("Invalid response. Letters only please.")
while True:
try:
name = int(input("What is your name? "))
except ValueError:
print("Invalid response. Letters only please.")
continue
else:
break
correctName = input("Your name is...'" + (name) + "', is this correct? \n Please use 'Y' as yes and 'N' as no.\n")
if correctName == "Y":
print("Thank you..!")
int(input())
需要一个整数作为输入,因此当您键入名称时(除非您的名称完全由数字组成),您将得到一个ValueError
,就像您现在遇到的那样。相反,您可以使用str(input())
获取用户输入,然后使用str.isdigit()
方法检查它是否是一个数字
name = str(input("What is your name? "))
if name.isdigit():
print("Invalid response. Letters only please.")
continue
else:
break
int(input())
需要一个整数作为输入,因此当您键入名称时(除非您的名称完全由数字组成),您将得到一个ValueError
,就像您现在遇到的那样。相反,您可以使用str(input())
获取用户输入,然后使用str.isdigit()
方法检查它是否是一个数字
name = str(input("What is your name? "))
if name.isdigit():
print("Invalid response. Letters only please.")
continue
else:
break
您还可以尝试使用正则表达式检查字符串是否包含数字:
bool(re.search(r'\d', name))
\d
将匹配数字[0-9]
如果字符串包含数字,它将返回True
name = str(input("What is your name? "))
if name.isdigit():
print("Invalid response. Letters only please.")
continue
else:
break
完整代码:
import re
while True:
name = input("What is your name? ")
if bool(re.search(r'\d', name)):
print("Invalid response. Letters only please.")
else:
correctName = input("Your name is...'" + (name) + "', is this correct? \n Please use 'Y' as yes and 'N' as no.\n")
if correctName == "Y":
print("Thank you..!")
break
您还可以尝试使用正则表达式检查字符串是否包含数字:
bool(re.search(r'\d', name))
\d
将匹配数字[0-9]
如果字符串包含数字,它将返回True
name = str(input("What is your name? "))
if name.isdigit():
print("Invalid response. Letters only please.")
continue
else:
break
完整代码:
import re
while True:
name = input("What is your name? ")
if bool(re.search(r'\d', name)):
print("Invalid response. Letters only please.")
else:
correctName = input("Your name is...'" + (name) + "', is this correct? \n Please use 'Y' as yes and 'N' as no.\n")
if correctName == "Y":
print("Thank you..!")
break
用于蟒蛇3
while True:
name = input()
if name.isalpha():
break
用于蟒蛇2
while True:
name = str(input())
if name.isalpha():
break
用于蟒蛇3
while True:
name = input()
if name.isalpha():
break
用于蟒蛇2
while True:
name = str(input())
if name.isalpha():
break
您所说的“仅将字母和返回数字作为无效输入”是什么意思?您所说的“仅将字母和返回数字作为无效输入”是什么意思?