我的输出不断重复。我该怎么办?

2024-06-11 08:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我被要求编写一个python代码,使用for循环计算员工的每日工资。我不知道为什么,但输出不断重复。 这是守则-

Name=input("What is the employee's name?")
days = input("Enter Days:")
h = float(days)
for i in range(1,31):
   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)
   

这是输出:

What is the employee's name?James

Enter Days:23
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0
2300.0

Tags: the代码nameforinputis员工employee
3条回答

我怀疑循环的要点是,随着i的增加,给你的工资增加。差不多

wages = 0
for i in range(1, h+1):
    if i <= 19: 
        wages += 50
    elif i <= 24:
        wages += 100
    elif i <= 27:
        wages += 125
    else:
        wages += 150

但是你不需要反复计算天数;边际利率的数量足够小,你可以这样做

wages = 0
if h > 27:
    wages += (h - 27) * 150
    h = 27
if h > 24:
    wages += (h - 24) * 125
    h= 24
if h > 19:
    wages += (h - 19) * 100
    h = 19
wages += h * 50

只需删除for循环

Name=input("What is the employee's name?")
days = input("Enter Days:")
h = float(days)

   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)

您的程序首先将变量days作为其输入,将输入转换为浮点,然后在范围(1,31)内循环

days = input("Enter Days:")
h = float(days)
for i in range(1,31):

作为表达式20<;=h<;=对于给定的输入,24的计算结果为true

elif 20 <= h <= 24:
    wage=(h*100)
    print(wage)

现在,程序每次遍历表达式31次,并打印输出工资作为回报

days = input("Enter Days:")
h = float(days)
for i in range(1,31):
    if 20 <= h <= 24:
        wage=(h*100)
        print(wage)

如果希望程序只打印一次可变工资,只需删除for循环

Name=input("What is the employee's name?")
days = input("Enter Days:")
h = float(days)

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)

相关问题 更多 >