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]
Basically I have an input that a user will put a number values (float input) into, then it will set all of these aforementioned list indexes to that value. For some reason I can't get it to set them without coming up with a:
TypeError: 'float' object is not subscriptable
error. Am I doing something wrong or am I just looking at it the wrong way?
PriceList[0]
is a float. PriceList[0][1]
is trying to access the first element of a float. Instead, do
PriceList[0] = PriceList[1] = ...code omitted... = PriceList[6] = PizzaChange
or
PriceList[0:7] = [PizzaChange]*7
PriceList[0][1][2][3][4][5][6]
This says: go to the 1st item of my collection PriceList
. That thing is a collection; get its 2nd item. That thing is a collection; get its 3rd...
Instead, you want slicing:
PriceList[:7] = [PizzaChange]*7
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)
It looks like you are trying to set elements 0 through 11 of PriceList to new values. The syntax would usually look like this:
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
If they are always consecutive ranges, then it's even simpler to write:
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
For reference, PriceList[0][1][2][3][4][5][6]
refers to "Element 6 of element 5 of element 4 of element 3 of element 2 of element 1 of element 0 of PriceList
. Put another way, it's the same as ((((((PriceList[0])[1])[2])[3])[4])[5])[6]
.
You are not selecting multiple indexes with PriceList[0][1][2][3][4][5][6] , instead each [] is going into a sub index.
Try this
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