首页 > 解决方案 > 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)

标签: pythonpython-3.x

解决方案


您需要再次获取用户输入......所以让我们稍微改变一下 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()

推荐阅读