python-3.x - 如何验证用户的输入并确保它是正确的类型并在给定范围内?
问题描述
我正在尝试编写一个程序,该程序将帮助我在工作中编写有关治疗程序中十几岁男孩的行为报告。目标是让写日常期望(饮食、卫生、上学等)变得更容易,这样我就可以写出独特的行为并更快地完成报告。我目前正在研究男孩白天吃了多少顿饭,并试图让它验证用户输入是正确的输入类型并且在正确的范围内(0-3)。之后我想根据给出的答案更改变量,以便打印一个字符串,说明他们吃了多少顿饭。我已经能够让程序验证类型以确保用户给出和整数,但我无法确保给定的答案在所需的范围内。任何帮助将不胜感激我一个月前才开始学习python和编程,所以非常缺乏经验。这是我的代码到目前为止的样子,以及我希望变量根据给定答案更改的内容。
Name=input('Student Name:')
while True:
try:
Meals=int(input('Number of Meals(between 0-3):'))
except ValueError:
print ('Sorry your response must be a value between 0-3')
continue
else:
break
while True:
if 0<= Meals <=3:
break
print('not an appropriate choice please select a number between 0-3')
#if Meals== 3:
#Meals= 'ate all 3 meals today'
#elif Meals==2:
#Meals='ate 2 meals today'
#elif Meals==1:
#Meals='ate only 1 meal today'
#elif Meals==0:
#Meals='did not eat any meals today'
解决方案
您可以检查输入的餐食数量是否在有效范围内,如果是,则退出循环。如果不是,请引发异常:
while True:
try:
meals = int(input('Number of Meals(between 0-3):'))
if 0 <= meals <= 3:
break
raise Exception()
except:
print('Please input valid integer (0-3)')
print('Your choice was:', meals)
打印(例如):
Number of Meals(between 0-3):xxx
Please input valid integer (0-3)
Number of Meals(between 0-3):7
Please input valid integer (0-3)
Number of Meals(between 0-3):2
Your choice was: 2
推荐阅读
- azure - 在 Azure 逻辑应用程序中,我可以有多个起点(HTTP 触发器)
- c++ - 如何调用具有不同字符串起点的函数?
- javascript - 没有 servlet 或 struts 的 Ajax 中的 Java 类调用
- php - 如何在cakephp 3中验证一对多关系
- ios - 如何制作具有动态高度的自定义 UITableViewCell?
- c++ - 覆盖时的 GCC 弃用消息
- jvm - 如果我想在 cmd 上查看输出,如何指定 VM 选项
- javascript - console.log 多行格式化的行
- git - 使用 git rebase 不小心将其他人的提交添加到我的 PR
- javascript - Javascript 代码在 Mozilla Firefox 中运行,但在 Google Chrome 中不运行