PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))
PriceList[0][1][2][3][4][5][6]=[PizzaChange]
PriceList[7][8][9][10][11]=[PizzaChange+3]
基本上我有一个输入,用户将数字值(浮点输入)放入,然后它将所有这些上述列表索引设置为该值。出于某种原因,我无法在不提出问题的情况下设置它们:
TypeError: 'float' object is not subscriptable
错误。我做错了什么,或者我只是以错误的方式看待它?
答案 0 :(得分:9)
PriceList[0]
是一个浮点数。 PriceList[0][1]
正试图访问浮点数的第一个元素。相反,做
PriceList[0] = PriceList[1] = ...code omitted... = PriceList[6] = PizzaChange
或
PriceList[0:7] = [PizzaChange]*7
答案 1 :(得分:2)
PriceList[0][1][2][3][4][5][6]
这说:转到我的收藏集PriceList
的第一项。那东西是一个集合;得到它的第二项。那东西是一个集合;获得第3名...
相反,您需要切片:
PriceList[:7] = [PizzaChange]*7
答案 2 :(得分:1)
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))
for i,price in enumerate(PriceList):
PriceList[i] = PizzaChange + 3*int(i>=7)
答案 3 :(得分:0)
您没有使用PriceList [0] [1] [2] [3] [4] [5] [6]选择多个索引,而是每个[]进入子索引。
试试这个
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))
PriceList[0:7]=[PizzaChange]*7
PriceList[7:11]=[PizzaChange+3]*4
答案 4 :(得分:0)
看起来您正在尝试将PriceList的元素0到11设置为新值。语法通常如下所示:
prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in [0, 1, 2, 3, 4, 5, 6]: PriceList[i] = PizzaChange
for i in [7, 8, 9, 10, 11]: PriceList[i] = PizzaChange + 3
如果它们总是连续的范围,那么写起来就更简单了:
prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in range(0, 7): PriceList[i] = PizzaChange
for i in range(7, 12): PriceList[i] = PizzaChange + 3
作为参考,PriceList[0][1][2][3][4][5][6]
引用“PriceList
元素0的元素1的元素2的元素3的元素5的元素5。换句话说,它与{相同” {1}}。