In principe heb ik een invoer waarin een gebruiker een getalwaarde (float-invoer) zal plaatsen, waarna het al deze bovengenoemde lijstindexen op die waarde zal instellen. Om de een of andere reden kan ik ze niet instellen zonder een:
TypeError: 'float' object is not subscriptable
fout. Doe ik iets verkeerd of bekijk ik het gewoon verkeerd?
Antwoord 1, autoriteit 100%
PriceList[0]
is een float. PriceList[0][1]
probeert toegang te krijgen tot het eerste element van een float. Doe in plaats daarvan
PriceList[0] = PriceList[1] = ...code omitted... = PriceList[6] = PizzaChange
of
PriceList[0:7] = [PizzaChange]*7
Antwoord 2, autoriteit 11%
PriceList[0][1][2][3][4][5][6]
Dit zegt: ga naar het 1e item van mijn verzameling PriceList
. Dat ding is een verzameling; krijg zijn 2e item. Dat ding is een verzameling; krijg zijn 3e…
In plaats daarvan wilt u in plakjes snijden:
PriceList[:7] = [PizzaChange]*7
Antwoord 3, autoriteit 4%
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)
Antwoord 4
Het lijkt erop dat u probeert om de elementen 0 tot en met 11 van PriceList in te stellen op nieuwe waarden. De syntaxis ziet er meestal als volgt uit:
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
Als het altijd opeenvolgende bereiken zijn, is het nog eenvoudiger om te schrijven:
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
Ter referentie, PriceList[0][1][2][3][4][5][6]
verwijst naar “Element 6 van element 5 van element 4 van element 3 van element 2 van element 1 van element 0 van PriceList
Anders gezegd, het is hetzelfde als ((((((PriceList[0])[1])[2])[3])[4])[5])[6]
.
Antwoord 5
U selecteert niet meerdere indexen met PriceList[0][1][2][3][4][5][6] , in plaats daarvan gaat elke [] naar een subindex.
Probeer dit
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