web-dev-qa-db-fra.com

TypeError: l'objet 'float' n'est pas indexable

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]

Fondamentalement, j'ai une entrée dans laquelle un utilisateur mettra des valeurs numériques (entrée flottante), puis il définira tous ces index de liste susmentionnés à cette valeur. Pour une raison quelconque, je ne peux pas le faire pour les définir sans trouver un:

TypeError: 'float' object is not subscriptable

erreur. Suis-je en train de faire quelque chose de mal ou est-ce que je le regarde simplement dans le mauvais sens?

14
beardo

Vous ne sélectionnez pas plusieurs index avec PriceList [0] [1] [2] [3] [4] [5] [6], mais chaque [] va dans un sous-index.

Essaye ça

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
0
Pruthvikar

Il semble que vous essayez de définir les éléments 0 à 11 de PriceList sur de nouvelles valeurs. La syntaxe ressemblerait généralement à ceci:

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

S'il s'agit toujours de plages consécutives, il est encore plus simple d'écrire:

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

Pour référence, PriceList[0][1][2][3][4][5][6] fait référence à "Élément 6 de l'élément 5 de l'élément 4 de l'élément 3 de l'élément 2 de l'élément 1 de l'élément 0 de PriceList. Autrement dit, c'est la même chose que ((((((PriceList[0])[1])[2])[3])[4])[5])[6].

0
Pi Marillion