如何修复这个程序中的while循环?

2024-06-28 15:58:26 发布

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

编写一个包含3个列表的python程序:

姓名工资工时 胡安7.50 Rae11.0041 伊凡娜18.25 礼来9.25 罗伯特11.10

用这个逻辑:

员工工作超过40小时就会加班

加班费的计算公式如下:

工资总额=(35*工资)+(35小时)*工资*1.5)

定期工资使用以下公式计算:

工资总额=(小时*工资)

使用循环来处理这些列表。你知道吗

打印每位员工的工资、工时和工资总额。你知道吗

我正在运行这个程序,我有for循环。输入工作正常,但是while循环应该有相同的输出,却没有给我任何输出。这是我的密码。你知道吗

`Name = ["Juan","Rae","Ivanna", "Lilly", "Robert"]
Hours = [35,41,26,35,45]
Wage = [7.5,11,18.25,9.25,11.1]
print ("Name\tWage\tHours\tGP")
for X in range(5):
   GP = 0
   if(Hours[X] > 40):
       GP = (35*Wage[X]) + ((Hours[X]-35)*Wage[X]*1.5)
   else:
       GP = Hours[X] * Wage[X]
   print (Name[X],"\t", Wage[X],"\t", Hours[X],"\t", GP)

Name = ["Juan","Rae","Ivanna", "Lilly", "Robert"]
Hours = [35,41,26,35,45]
Wage = [7.5,11,18.25,9.25,11.1]
print ("Name\tWage\tHours\tGP") 
counter = 5
Y = 0
while (Y):
    if (Hours[Y] > 40):
        GP = (35*Wage[Y]) + ((Hours[Y]-35)*Wage[Y]*1.5)
    else:
        GP = Hours[Y] * Wage[Y]
print (Name[Y],"\t", Wage[Y],"\t", Hours[Y],"\t", GP)`

我的产量是

Name    Wage    Hours   GP
Juan     7.5     35      262.5
Rae      11      41      484.0
Ivanna   18.25   26      474.5
Lilly    9.25    35      323.75
Robert   11.1    45      555.0
Name    Wage    Hours   GP
Juan     7.5     35      555.0

我不知道while循环中的错误在哪里。你知道吗


Tags: name程序列表robertjuangpprint小时
2条回答

你的最后一行需要缩进。所以

while (Y):
    if (Hours[Y] > 40):
        GP = (35*Wage[Y]) + ((Hours[Y]-35)*Wage[Y]*1.5)
    else:
        GP = Hours[Y] * Wage[Y]
print (Name[Y],"\t", Wage[Y],"\t", Hours[Y],"\t", GP)

必须是这样

while (Y):
    if (Hours[Y] > 40):
        GP = (35*Wage[Y]) + ((Hours[Y]-35)*Wage[Y]*1.5)
    else:
        GP = Hours[Y] * Wage[Y]
    print (Name[Y],"\t", Wage[Y],"\t", Hours[Y],"\t", GP)

因为现在print在while循环之外,所以它只打印值Y=0。你知道吗

必须跟在python code indented后面,并且需要用(递增/递减/布尔)给出适当的while loop condition。因为您的代码需要增加Y的值。你知道吗

Name = ["Juan","Rae","Ivanna", "Lilly", "Robert"]
Hours = [35,41,26,35,45]
Wage = [7.5,11,18.25,9.25,11.1]
print ("Name\tWage\tHours\tGP")
for X in range(5):
    GP = 0
    if(Hours[X] > 40):
        GP = (35*Wage[X]) + ((Hours[X]-35)*Wage[X]*1.5)
    else:
        GP = Hours[X] * Wage[X]
    print (Name[X],"\t", Wage[X],"\t", Hours[X],"\t", GP)

Name = ["Juan","Rae","Ivanna", "Lilly", "Robert"]
Hours = [35,41,26,35,45]
Wage = [7.5,11,18.25,9.25,11.1]
print ("Name\tWage\tHours\tGP") 
counter = 5
Y = 0
while (Y<counter):
    if (Hours[Y] > 40):
        GP = (35*Wage[Y]) + ((Hours[Y]-35)*Wage[Y]*1.5)
    else:
        GP = Hours[Y] * Wage[Y]
    print (Name[Y],"\t", Wage[Y],"\t", Hours[Y],"\t", GP)
    Y=Y+1

相关问题 更多 >