Need help to sort out the below code...

Terry Reedy tjreedy at udel.edu
Sat Sep 14 03:50:04 EDT 2013


On 9/14/2013 2:34 AM, mnishpsyched wrote:
> Hello guys,
> i am new to programming and trying to solve this small coding: my purpose is to take in values from the user based on a menu provided for selection
>
> the output looks like this...
>
> please select from the following menu:
> 1. pizza
> 2. steak
> 3. pasta
> 4. burger
> type in any number from above for selection..
>
> you have selected: 1. Pizza
> The bill amounted for Pizza is $20 along with tax of $0.15 will make upto $20.15
>
> the code i have written for this is as follows:
>
> print """
> Please select from the following menu:
> 1. pizza
> 2. steak
> 3. pasta
> 4. burger
> type in any number from above for selection..
> """
>
> pz = raw_input()
> pz = int(pz)
>
> st = raw_input()
> st = int(st)
>
> ps = raw_input()
> ps = int(ps)
>
> bg = raw_input()
> bg = int(bg)
>

There should only be one input statement:
choice = int(raw_input())

The program now requires 4 inputs, which is not what you want.

Since you are starting, consider using 3.3 insteadd of Python 2 unless 
you have a very good reason.

> if pz == 1 :

if choice == 1:
etc.

>      print "You have selected", pz, ".pizza"
>      pr_pz = 20
>      tx_pz = 0.15
>      tot = pr_pz + tx_pz
>      print "The bill amounted for Pizza is $", pr_pz, "along with tax of $", tx_pz, "willmake upto $", tot

Take out 'amounted'
> elif st == 2 :
>      print "You have selected", st, ".Steak"
>      pr_st = 40
>      tx_st = 0.20
>      print "The bill amounted for Steak is $", pr_st, "along with tax of $", tx_st, "will make upto $", tot.....................
> ...........................
> but my program doesn't output the selection once i type in any number from the list.

Because it is waiting for 3 more inputs. See above. Now, you can shorten 
and improve the program after the one input statement.

data = (
     ('Pizza', 20.0, 0.15),
     ('Steak', 40.0, 0.20),
     ('Pasta', 14.0, 0.12),
     ('Burger', 23.0, 0.17),
     )

if 1 <= choice <= len(data):
     product, price, tax = data[choice]
     bill = "The bill for {} is {}, along with tax of {}, total {}"
     print(bill.format(product, price, tax, price + tax))
else:
     print('I do not know what you mean.')

print() is for 3.x, but works here for 2.x also.


-- 
Terry Jan Reedy




More information about the Python-list mailing list