Python Python Basics All Together Now Branch and Loop

Randolph Davidson
Randolph Davidson
1,053 Points

Else statement causing an syntax error. though the issue is on the line above.

Hello again Fellow learners. I am having an issue with the last part of this challenge. it says there is a syntax error on my else statement. However, it is really the tickets_remaining -= requested_tickets. When I remove this, the program works though nothing reduces and it just loops forever. Not sure what the issue is. Been reading over it all day. Kinda at a lost. Any ideas? I'm grateful for the help.

TICKET_PRICE = 10

tickets_remaining = 100

there are {} tickets remaining

while tickets_remaining >= 1:

print("there are {} tickets remaining".format( tickets_remaining))


#Gather the user name nd assign it to a new ver

Guest =input("Hello there, May I have your name please? ")

#prompt the user by name and ask how many tickets they would like

requested_tickets = int(input("Thanks {}, please tell me how many tickets are you interested in today? ".format(Guest)))
total = requested_tickets * TICKET_PRICE

#Output the total price to the screen

print("All done! your amount due today is {} ".format(total))

#prompt user if they would like to proceed Y/N

input("{} would you like to proceed with your purchase today? Yes/No ".format(Guest))
proceed.lower()== "y"

#If yes, print out to screen "SOLD!" to confirm 
if proceed:
    print("SOLD! to {}".format(Guest)) 


#Reduce number on remaining Tickets by the number of Tickets bought.
tickets_remaining -= requested_tickets
else:
    print("Thanks{}, maybe next time".format(Guest))

    print("Sorry all the tickets are sold out")

#Otherwise thank user by name.
Randolph Davidson
Randolph Davidson
1,053 Points

also sorry for not posting the snapshot. I cant take one for some reason. I already sent an email to support

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there, Randolph Davidson ! It looks like you're doing well. Yes, the issue is above the else. The problem here is that you have an if statement. Inside the if statement you have a print. However, the very next line is not indented inside the if. It lines up with the if. So when you say else it's unexpected because there's a line between the if and the else that does not fall inside the if.

Right now you have:

if proceed:
    print("SOLD! to {}".format(Guest)) 


#Reduce number on remaining Tickets by the number of Tickets bought.
tickets_remaining -= requested_tickets
else:

But that should be:

if proceed:
    print("SOLD! to {}".format(Guest)) 


    #Reduce number on remaining Tickets by the number of Tickets bought.
    tickets_remaining -= requested_tickets
else:

Any and all lines that come between the if and the else must be inside the if. Otherwise, Python will consider the else "unexpected".

Hope this helps! :sparkles:

Randolph Davidson
Randolph Davidson
1,053 Points

Jennifer Nordell You are awesome. As many times as I went over it I did not notice that lol. Thanks so much. Something to keep in mind. I have a second question for you if you'd care to have a look? I'll post it below.

Randolph Davidson
Randolph Davidson
1,053 Points

I'll start by saying I noticed in the video it does not seem to address if the user should attempt to order more than the 100 tickets available. At least in my attempt at the code When I order more than 100, such as 101 it runs. In the code I have tried to stop that from happening and I get the intended result however, it doesn't print what I told it to print. Rather, it prints out "there are 100 tickets remaining message. Right result wrong message. Any tips?

TICKET_PRICE = 10

tickets_remaining = 100

there are {} tickets remaining

while tickets_remaining >= 1:

print("there are {} tickets remaining".format( tickets_remaining))


#Gather the user name nd assign it to a new ver

Guest =input("Hello there, May I have your name please? ")

#prompt the user by name and ask how many tickets they would like

requested_tickets = int(input("Thanks {}, please tell me how many tickets are you interested in today? ".format(Guest)))
total = requested_tickets * TICKET_PRICE

if requested_tickets > 100: print("Sorry, that exceeds the number of tickets available")

#Output the total price to the screen

print("All done! your amount due today is {} ".format(total))

#prompt user if they would like to proceed Y/N

proceed=input("{} would you like to proceed with your purchase today? Yes/No ".format(Guest))

#If yes, print out to screen "SOLD!" to confirm 

if proceed.lower()=="y": print("SOLD! to {}".format(Guest))

#Redue number on remaining Tickets by the number of Tickets bought.
tickets_remaining -= requested_tickets

else: print("Thanks {}, maybe next time".format(Guest))

print("Sorry all the tickets are sold out")

#Otherwise thank user by name.