如果用户输入1-4以外的级别或输入字符串,则我的程序不会崩溃。我尝试在附加列表之前尝试.pop(),然后尝试/ except,但是我仍然得到Index Error list索引超出范围。一定有一种我不了解的方法,也许是关于我如何使用函数并附加到列表的方法。
我已经在我的if / else语句和for循环中尝试了.pop()和.clear()方法,但是仍然出现索引错误。我认为错误实际上意味着它正在调用未使用的索引点,是否意味着我在程序中使用的函数将其强制通过,而我需要更改函数以适应循环中的检查点?
def format_currency(x):
currency = '${:,.2f}'.format(x)
return (currency)
def calc_commission(level, sales):
if level == "1":
if sales <= 2500:
sales = sales * 0.045
elif sales > 2500 and sales < 4500:
sales = sales * 0.0625
elif sales > 4500:
sales = sales * 0.0925
elif level == "2":
if sales <= 2500:
sales = sales * 0.0575
elif sales > 2500:
sales = sales * 0.0725
elif level == "3":
sales = sales * 0.0775
elif level == "4":
sales = sales * 0.0925
else:
return 0
return sales
def calc_base_rate(level):
if level == "1":
rate = 13.50
elif level == "2":
rate = 15.75
elif level == "3":
rate = 18.25
elif level == "4":
rate = 20.75
else:
return 0
return rate
def calc_total_wage_pay(hoursWorked, rate):
if hoursWorked > 40:
otPay = hoursWorked - 40
otpRate = otPay * rate * 1.5
tPay = rate * 40 + otpRate
return tPay
else:
return rate*hoursWorked
salesPeeps = []
wagePay = []
commissions = []
totalCommission = 0
totalWagePay = 0
salesNum = int(input("How many sales persons to process? "))
for num in range(salesNum):
salesName = input("Enter Salesperson Name: ")
salesPeeps.append(salesName)
salesLevel = input("Enter Sales Level: ")
if salesLevel != "1" and salesLevel != "2" and salesLevel != "3" and salesLevel != "4":
print("Error, invalid entry.")
else:
salesAmount = float(input("Enter Number of Sales: "))
commission = calc_commission(salesLevel, salesAmount)
commissions.append(commission)
hoursWorked = float(input("Enter Hours Worked: "))
wagePay.append(calc_total_wage_pay(hoursWorked, calc_base_rate(salesLevel)))
for x in range(len(salesPeeps)):
name = salesPeeps[x]
wage = wagePay[x]
comm = commissions[x]
totalCommission += comm
totalWagePay += wage
print("Total Commission: " + str(format_currency(totalCommission)))
print("Total Hourly Wages: " + str(format_currency(totalWagePay)))
print("Total Combined Commission & Hourly Wages: " + str(format_currency(totalCommission+totalWagePay)))
for name in salesPeeps:
print(name)
预期: 有多少销售人员要处理? 1个 输入营业员姓名:bob 输入销售人员级别:bob 错误,输入无效。 输入销售人员级别:1 输入销售数量:500 输入工作时间:10 总佣金:$ 22.50 每小时总工资:135.00美元 佣金和小时工资总额:157.50美元 鲍勃
实际: 有多少销售人员要处理? 1个 输入营业员姓名:bob 输入销售水平:鲍勃 错误,输入无效。 追溯(最近一次通话): 在第70行中输入文件“ C:/Users/guita/Documents/School/CSCI100/funcTest/funcTest.py” 工资= payPay [x] IndexError:列表索引超出范围
以退出代码1完成的过程