【发布时间】:2011-05-05 04:35:24
【问题描述】:
要求用户输入公司的工资单信息。设置一个循环,继续询问信息,直到他们输入“完成”。为每位员工提出三个问题:
姓名(名字和姓氏) 本周工作时间(仅允许 1 到 60) 小时工资(只允许 6.00 到 20.00) 验证工作时间和小时工资,并确保输入了姓名。
计算每个员工的工资,并将其写入顺序文件。确保包含文件 I/O 错误处理逻辑。
仅包括周薪 每周工资计算: 对于(1-40 小时),它是小时费率 * 工作小时数 对于(41-60 小时),它是(工作小时数 - 40)*(小时费率 * 1.5) + 每小时费率 * 40
在输入所有员工后,将顺序文件读入一个名为 PAY 的列表中,用于每个员工的每周工资。对列表进行排序。现在打印一周的最低、最高和平均每周工资。
我对这段代码有明显的问题
while len(eName)>0:
eName=raw_input("\nPlease enter the employees' first and last name. ")
hWork=raw_input("How many hours did they work this week? ")
hoursWork=int(hWork)
if hoursWork < 1 or hoursWork > 60:
print "Employees' can't work less than 1 hour or more than 60 hours!"
else:
pRate=raw_input("What is their hourly rate? ")
payRate=int(pRate)
if payRate < 6 or payRate > 20:
print "Employees' wages can't be lower than $6.00 or greater than $20.00!"
if hoursWork <=40:
grossPay=hoursWork*payRate
else:
grossPay=((hoursWork-40)*(payRate*1.5))+(40*payRate)
lsthours.append(grossPay)
print grossPay
print lsthours
ePass=raw_input("Type DONE when finished with employees' information. ")
ePass.upper() == "DONE"
if ePass == "DONE":
break
else:
continue
【问题讨论】:
-
这个缩进看起来完全错误。这可能是一个剪切粘贴问题——如果是这样,您需要进行编辑,以使其看起来是您真正编写的方式。否则 Python 不会做你认为它会做的事,
-
我猜你需要先纠正缩进。当前的缩进表明“ePass = raw_input..”不在 while 循环中。
-
这是作业吗?这种 UI 在 1980 年很常见,但今天对于已部署的应用程序来说是不可接受的。
-
是的,这是作业,我被困了大约一个星期,所以我希望能找到一些帮助。自从我们一周前刚开始做以来,我还不太习惯使用函数。我愿意接受任何建议和帮助。我只是对术语不太熟悉,所以请为我简化一下。