【发布时间】:2018-10-06 14:28:50
【问题描述】:
我正在使用 Python 3。这是一个班级的家庭作业项目,但我不是在寻找可以为我解决问题的东西!我只是想知道是否有人可以帮助指出我哪里出错了,或者我需要研究什么才能使我的代码正常工作。
def main():
taxPayersList = []
incomesList = []
taxesList = []
taxPayersList, incomesList = inputNamesAndIncomes(taxPayersList, incomesList)
taxesList = calculateTaxes(incomesList)
displayTaxReport(taxesList, incomesList, taxPayersList)
def inputNamesAndIncomes(taxPayersList, incomesList):
print('Welcome to Xanadu Tax Computation Program')
print('')
confirmation = input('Do you have income amounts? y/n ')
index = 0
try:
while confirmation == 'y' or confirmation == 'Y':
taxPayersList[index] = input('Enter a tax payer name: ')
incomesList[index] = float(input('Enter income amount: '))
confirmation = input('Are there more income amounts? ')
index += 1
except:
print('An error occurred. Please only enter numbers for income amount.')
return taxPayersList, incomesList
def calculateTaxes(incomesList):
index = len(incomesList)
while index < len(incomesList):
if incomesList[index] >= 0 and incomesList[index] <= 50000:
taxesList[index] = incomesList[index] * .05
elif incomesList[index] >= 50000 and incomesList[index] <= 100000:
taxesList[index] = 2500 + ((incomesList[index] - 50000) * .07)
elif incomesList[index] >= 100000:
taxesList[index] = 6000 + ((incomesList[index] - 100000) * .09)
index += 1
return incomesList
def displayTaxReport(taxesList, incomesList, taxPayersList):
print('2018 TAX DUES FOR XANADU STATE')
print('')
print('Name\t\tANNUAL INCOME\tTAXDUE')
for n in incomesList:
print(taxPayersList,'\t\t',incomesList,'\t',taxesList)
main()
现在,我可以在第一个输入中输入一个名称,但只要我按下 Enter,它就会打印出我的错误代码,然后打印出如下所示的最终函数。
Welcome to Xanadu Tax Computation Program
Do you have income amounts? y/n y
Enter a taxpayer name: Susan
An error occurred. Please only enter numbers for income amount.
2018 TAX DUES FOR XANADU STATE
Name ANNUAL INCOME TAXDUE
我知道这完全是一团糟,但任何帮助都将不胜感激!
【问题讨论】:
-
你应该避免使用
except:。在这种情况下,您应该使用except ValueError:,因为如果输入了无效的浮点数,就会出现这种情况。except:将捕获所有内容,您将无法看到其他错误。 -
如果您事先知道条目数,请使用
[None]*number_of_entries,否则请使用append(),如答案之一所述。
标签: python python-3.x list append