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?

2

5 Answers

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 
2
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 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy