python - Python 在 while 循环中重复我的语句
问题描述
我创建了这个程序来检查用户是否输入了一个数字。当他们输入一个数字时,程序运行顺利。但是,当用户不输入数字时,程序会重复发布“无效。请输入十进制数字”,并且在输入数字之前不允许循环重复。我该如何修改这个?
def validate_number(user_input):
while True:
try:
user_input = int(user_input)
break
except ValueError:
print()
print("Invaild. Enter a decimal number please.")
budget = input('What is your budget: $')
validate_number(budget)
plane_tickets = input("How much are the plane tickets in USD: $")
validate_number(plane_tickets)
hotel = input("How much is the hotel in USD: $")
validate_number(hotel)
解决方案
您需要再次获取用户输入......所以让我们稍微改变一下 validate_number() 函数以允许这样做:
def validate_number(user_input):
while True:
try:
user_input = int(user_input)
return user_input
except ValueError:
print()
print("Invaild. Enter a decimal number please.")
user_input = input()
推荐阅读
- javascript - 为什么 React useEffect() 卸载不改变变量值?
- amazon-sagemaker - 我们如何在 Sagemaker 中自动执行 Jupyter notebook python 脚本?
- sql - 如何使用 LAG 函数删除我的查询结果?
- typescript - TS 路径别名未在 Webpack 5.0.0-beta.18 中使用 tsconfig-paths-webpack-plugin 解析
- mongodb - Mongodb:选择所有没有用户记录的问题并删除它
- html - 如何将链接标签放在页面中间
- java - 等效于 C# for Java 7 的 BitConverter.ToUInt16
- vue.js - How to get the context of the template?
- flutter - 如何保存列表
- > 在 Flutter 中使用 SharedPreferences
- linux - 在 Bash 中的单词上拆分字符串