【问题标题】:KeyError: 20, not sure what is wrongKeyError: 20,不确定是什么问题
【发布时间】:2020-08-20 03:14:27
【问题描述】:

我是 python 新手,目前正在尝试创建一个程序,该程序将创建一个收入年度百分比变化列表。

这是我目前所拥有的:

revs = {}    
for year in range(14, 20):    
    revs[year] = float(input("Revenue in {0}: ".format(year)))

revs_change = []
for year in range(14, 20):
    next_year = year + 1
    revs_change.append((revs[next_year] - revs[year])/revs[year])

print(revs_change[0])    

错误出现在第 8 行,它与使用变量 next_year 有关。

谢谢!

【问题讨论】:

  • 您写入键 14 到 19,然后尝试读取键 14 到 20。

标签: python python-3.x dictionary keyerror


【解决方案1】:

如果您要打印出yearnext_year 的值,问题是revs[next_year=20] 没有值。

一种方法是这样做-

start = 14
end   = 21
for year in range(start, end):
     revs[year] = float(input("Revenue in {0}: ".format(year)))

revs_change = []
for year in range(start, end-1):
    next_year = year + 1
    print(f"Year: {year}, Next Year: {next_year}\n")
    revs_change.append( (revs[next_year] - revs[year])/revs[year] )

print(revs_change[0])    

【讨论】:

  • 谢谢!创建列表时该打印行的功能是什么?这只是为了检查输入的年份是否正确?
【解决方案2】:

在 Python 中,您给出的任何范围的结束限制将不包括该上限,即如果您将上限设置为 20,则它的计算结果为 19。将上限设置为 21,以便您获得期望的输出

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 2020-10-21
    • 2014-05-30
    • 1970-01-01
    • 2022-06-10
    • 2023-04-02
    • 2013-07-20
    • 1970-01-01
    • 2018-09-18
    相关资源
    最近更新 更多