如何为薪资计算程序添加计算结束后的重复计算询问功能?
实现薪资计算的重复执行功能
嘿,我来帮你搞定这个重复计算的需求!首先提个小细节:你的原代码里调用验证函数后,没有把返回的有效值重新赋值给变量,比如validate_pay_rate(pay_rate)应该改成pay_rate = validate_pay_rate(pay_rate),不然用户修正错误输入后的值不会被实际使用哦。
接下来,要实现计算结束后询问是否继续的功能,我们可以用一个外层循环来包裹整个计算逻辑,步骤如下:
- 初始化一个控制循环的变量,默认设为
True - 在循环内部执行原本的薪资计算流程:获取输入→验证→计算
- 计算完成后,询问用户是否需要再次计算,根据输入更新控制变量,决定是否继续循环
下面是修改后的完整代码:
#_function definitions_________________________________________________________________________________________________ def validate_pay_rate(pay_rate): while pay_rate < 7.5 or pay_rate > 18.25: print ("\nERROR: You entered an invalid pay rate...") pay_rate = float(input("Enter employee's pay rate: $")) return pay_rate def validate_hours_worked(hours_worked): while hours_worked <= 0 or hours_worked > 40: print ("\nERROR: You entered an invalid amount of work hours...") hours_worked = float(input("Enter hours worked: ")) return hours_worked def calculate_gross_pay(pay_rate, hours_worked): gross_pay = pay_rate * hours_worked print(f"Gross Pay = ${gross_pay:.2f}") #_main_________________________________________________________________________________________________________________ continue_calculating = True while continue_calculating: # 获取并验证薪资率 pay_rate = float(input("Enter employee's pay rate: $")) pay_rate = validate_pay_rate(pay_rate) # 获取并验证工作时长 hours_worked = float(input("Enter hours worked: ")) hours_worked = validate_hours_worked(hours_worked) # 计算并输出薪资 calculate_gross_pay(pay_rate, hours_worked) # 询问用户是否继续 user_choice = input("\nWould you like to calculate another gross pay? (y/n): ").strip().lower() if user_choice != 'y': continue_calculating = False print("Thanks for using the calculator!")
关键部分说明:
- 外层while循环:用
continue_calculating变量控制循环的开启和结束,只要变量为True就会重复执行计算流程 - 用户输入处理:用
.strip().lower()处理用户的回答,去掉空格并转成小写,这样不管用户输入Y、y还是Y都能正确识别 - 验证函数简化:原代码里的
else分支其实没必要,while循环结束后直接返回有效值即可,我已经帮你简化了这部分逻辑
这样修改后,每次计算完成后程序都会询问用户是否继续,完美实现你想要的功能!
内容的提问来源于stack exchange,提问作者Amanda Coleman
相关产品推荐
相关产品推荐

