【发布时间】:2020-10-21 14:55:28
【问题描述】:
我正在制作一个程序来计算在停车场支付的钱(不是真实的)。 我有 2D 数组存储一周中的几天的数据([天,最大小时,每小时价格]),但是当我尝试检查一天时,我得到了一个
TypeError: 'int' 对象不可下标
错误在第 15 行。
这是供参考的代码,虽然未完成:
price_morning = [["Monday", 8, 2.00], ["Tuesday", 2, 10.00], ["Wednesday", 2, 10.00], ["Thursday", 2, 10.00], ["Friday", 2, 10.00], ["Saturday", 2, 10.00], ["Sunday:", 4, 3.00]]
price_midnight = [[8, 2.00], [8, 2.00], [8, 2.00], [8, 2.00], [8, 2.00], [8, 2.00], [8, 2.00]]
day = input("Day: ")
time = input("Time: ")
hours_of_stay = input("Hours of stay: ")
quest = input("Do you have a frequent parking number? ")
if quest == "Yes" :
f_p_n = input("Frequent Parking Number: ")
else :
f_p_n = 0
"Calculation: "
if int(time) < 16 :
for i in range(len(price_morning)):
if price_morning[i[0]] == day:
if price_morning[i[1]] >= hours_of_stay:
price = int(hours_of_stay) * int(price_morning[i[2]])
有什么办法可以解决吗?
注意:
f_p_n代表频繁停车号码,后面会用到。
【问题讨论】:
-
欢迎 SOF!错误将指示 which
line-numbertoo 。为了更清楚,您可以添加它 -
我不明白您希望使用例如访问
price_morning的哪个元素price_morning[i[0]]。这意味着首先计算i[0],然后使用该结果索引到price_morning。 -
无论如何,你应该not iterate that way, but instead directly grab the rows。在 Python 中,您可以通过 just using
in price_morningfor yourforloop 执行此操作。生成的代码更简单,因为您已经有了该行,并且只需要再索引一次。
标签: python arrays arraylist multidimensional-array