【发布时间】:2018-11-05 22:28:43
【问题描述】:
我正在使用 Python 3.1.3,我正在尝试编写一个测验来测试我自己对元素周期表中元素名称和相应原子序数的了解,使用随机数生成器来选择是否询问用户原子序数或元素名称以及要询问的元素。 我目前正在尝试验证所有用户输入。我已经成功验证了数字和字母输入,但我正在努力验证重新参加测验的“是”或“否”选项,接受输入:“y”或“n”。 我之前曾尝试使用几个 IF 和 ELIF 语句来确定用户是否给出了等于有效输入的输入,但是在搜索堆栈溢出后,我将代码更改为如下所示:
##Functions
def validating_y_or_n_only(a,b,c):
while b == 0:
if not a:
print("\n\tYou didnt enter anything.")
elif a in ["y","n"]:
b = 1
else :
print("\n\tYour input was invalid.")
print("\tOnly 'y' and 'n' are considered valid.\n")
print(c)
a = str(input("\tEnter 'y' for yes or 'n' for no: "))
return a
##Main Program
retake = "\n\tWould you like to re-take the quiz?"
print(retake)
replay_option = str(input("\tEnter 'y' for yes or 'n' for no: "))
replay_option = validating_y_or_n_only(replay_option,condition,retake)
但是,这会创建一个无限循环,甚至“y”或“n”的有效输入或不被接受。
【问题讨论】:
标签: python python-3.x validation input while-loop