Python 有人能给出正确的方法来获得低于期望的输出吗?

Python 有人能给出正确的方法来获得低于期望的输出吗?,python,user-input,Python,User Input,当用户为税率输入错误时,它应该向用户询问该变量的正确输入,但它是从第一个开始,询问已经收到的税率输入 while True: try: hr_rate = float(input("Enter Hourly Rate: ")) emp_ot_rate = float(input("Enter Overtime Rate: ")) tax_rate = float(input("Enter S

当用户为
税率
输入错误时,它应该向用户询问该变量的正确输入,但它是从第一个开始,询问已经收到的
税率
输入

while True:
    try:
        hr_rate = float(input("Enter Hourly Rate: "))
        emp_ot_rate = float(input("Enter Overtime Rate: "))
        tax_rate = float(input("Enter Standard Tax Rate: "))
        ot_tax_rate = float(input("Enter Overtime Tax Rate: "))

    except Exception:
        print("Invalid entry, please retry")
输出:

Enter Hourly Rate: abc
Invalid entry, please retry
Enter Hourly Rate: 10.2
Enter Overtime Rate: 20.25
Enter Standard Tax Rate: abc
Invalid entry, please retry
Enter Hourly Rate:

最后一行应该再次询问标准税率。

来自上面@Brian的评论,并且冒着为他们做功课的风险

def float_input(prompt):
    '''Prompt user with given <prompt> string.'''
    while True:
        try:    
            return float(input("Enter Hourly Rate: "))
        except ValueError:  # Make exceptions as specific as possible  
            print("Please enter any numbers")

hr_rate = float_input("Enter Hourly Rate: ")
emp_ot_rate = float_input("Enter Overtime Rate: ")
tax_rate = float_input("Enter Standard Tax Rate: ")
ot_tax_rate = float_input("Enter Overtime Tax Rate: ")
def float_输入(提示):
''用给定字符串提示用户''
尽管如此:
尝试:
返回浮动(输入(“输入小时费率:”)
除ValueError外:#尽可能具体地说明例外情况
打印(“请输入任何数字”)
hr\u费率=浮动输入(“输入小时费率:”)
emp\u加班费率=浮动费率输入(“输入加班费率:”)
税率=浮动输入(“输入标准税率:”)
加班税税率=浮动税输入(“输入加班税税率:”)

每当您看到重复代码时,通常都会定义一个函数,该函数执行相同的任务,但根据给定的参数具有适当的差异:

此函数将执行相同的任务,但输入提示将根据
变量
参数而改变;e、 g你可以用“小时费率”来称呼它:

并会提示用户正确的句子:

>>>Enter Hourly Rate: 

写一个函数?是的,一个接受提示消息并返回浮点值的ask-for-a-float函数。一般来说,问问自己哪些部分相同,哪些部分需要不同。在这种情况下,它只是提示文本。谢谢。实际上,我也尝试过使用函数,但问题是,每当用户输入错误时,它都会从第一个开始运行。您的
try
/
之外的
太宽泛了,因此您需要将其有效地分别应用于每个输入(可能通过创建一个通用的get-input函数)。
hr_rate = userInput("Hourly Rate")
>>>Enter Hourly Rate: