You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用for循环计算员工日薪时输出重复该如何处理

问题原因
  1. 代码中添加了不必要的for i in range(1,31):循环,该循环会固定执行30次,循环内判断逻辑的依据是用户提前输入的固定天数h,全程不会发生变化,因此每次循环都会计算出相同的薪资并打印,导致输出重复30次。
  2. 最后一个elif 28 <= h <= 31:分支下的print(wage)语句缩进错误,未和同分支的wage=(h*150)对齐,属于全局循环内的语句,无论是否触发前面的if判断,这行打印都会执行,进一步加剧了重复打印的问题。
修复方案
  • 移除无意义的for循环:该需求仅需根据输入的单次天数计算薪资,无需遍历1到30的序列
  • 修正最后一个分支下print语句的缩进,确保仅触发对应薪资档位时才执行打印
  • 可选补充输入合法性校验,避免非数字、天数超出1-31范围等异常情况
修复后代码
Name = input("What is the employee's name?")
days = input("Enter Days:")
# 输入合法性校验
try:
    h = float(days)
    if h < 1 or h > 31:
        print("输入的天数不合法,请输入1-31之间的数字")
    else:
        if h <= 19:
            wage = h * 50
            print(wage)
        elif 20 <= h <= 24:
            wage = h * 100
            print(wage)
        elif 25 <= h <= 27:
            wage = h * 125
            print(wage)
        elif 28 <= h <= 31:
            wage = h * 150
            print(wage)
except ValueError:
    print("请输入合法的数字作为天数")
运行效果

输入天数为23时,仅输出单次结果2300.0,无重复输出。

内容的提问来源于stack exchange,提问作者Shravani Kulkarni CodeNinja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:12:02