Python3如何将列表中的所有连续项乘以列表中的前一项?

2024-09-30 00:36:07 发布

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

我很难完成我的任务代码。。。在

“大多数学区的教师都是按照他们的教学年限来发放工资的。例如,mySchool学区的一名初任教师第一年的工资可能是30000美元。在第一年之后的每一年,最多10年,教师将获得比前一年增加2%的收益。在

编写一个程序,以表格形式显示学区教师的工资表。输入是起薪、增长百分比和时间表中的年数。附表中的每一行都应包含年份号和该年度的工资。”

我开始这项任务,感觉自己做得相当不错,而且(至少对我来说)智能化编码。但随着我花了太多的时间来弄清楚自己到底在哪里,我开始怀疑这是否是因为我“找错了方向”。在

到目前为止,我得到的是:

    startSalary = int(input("Please enter beginning salary: "))
    percentIncrease = (float(input("Please enter percentage increase: ")) / 100)
    numberYears = list(range(1,(int(input("Please enter number of years in schedule: ")) + 1))

    '''
    x = percentIncrease
    y = numberYears #LIST#
    z = startSalary
    '''
    def percentFunc(x,y,z):
        for years in y:
            y[0] = z #startSalary
            y[1:] = z * x #percentIncrease

我试图将numberYears[0]分配给startSalary,然后按顺序分配剩下的9个项(使用numberYears[1:]是否正确地实现了这一点)上一个列表项的值乘以percentIncrease。在

我是不是做错了?提前感谢您的帮助!在


Tags: 代码ininput教师教学intenterplease
3条回答

使用numberYears作为整数,则可以使用计算复合税所用的相同数学:

numberYears = int(input("Please enter number of years in schedule: "))
for i in range(1,numberYears):
    print("year ", i, ", salary: ", startSalary*((1+percentIncrease)**(i-1)))

>>> 
Please enter beginning salary: 3000
Please enter percentage increase: 2
Please enter number of years in schedule: 5
year  1 , salary:  3000.0
year  2 , salary:  3060.0
year  3 , salary:  3121.2
year  4 , salary:  3183.6240000000003

我尽量保持你开始时的样子。尝试使用基本的python,这样它就有意义了。在

startSalary = int(input("Please enter beginning salary: "))
percentIncrease = (float(input("Please enter percentage increase: ")) / 100)
numberYears = list(range(1,(int(input("Please enter number of years in schedule: ")) + 1)))


def calculateSalary(startSalary, percentIncrease, numberYears):
  for year in numberYears:

    salaryInc = startSalary*percentIncrease
    newSalary = startSalary+salaryInc
    startSalary = newSalary
    print("{} year salary is  {:0.2f}".format(year, newSalary))

calculateSalary(startSalary, percentIncrease, numberYears)

每年一次使用类似的方法进行构建:

def percent_func(percent_per_year, years, start_salary):
    table = []
    for i in range(years):
        table.append((i+1, start_salary))
        start_salary += round(start_salary * percent_per_year / 100.0)
    return table

相关问题 更多 >

    热门问题