So our final project for this class is to make a console text based puzzle game, and for some reason while trying to put ifs and elifs in a while loop, it would automatically indent the elif under the if. i tried deleting the indent, and when i went to test it, i got an indentation error: expected an indented block. so i tried adding the indent back, which just seems strange since this is the first time this has happened. I then got a plain syntax error.
tried removing indent: received indent error
tried including indent : received syntax error
im really lost at this point. if it helps at all we were told to use replit for turning in our code. i am also using the time, sys, os, and termcolor modules. bolded is the line that has the error.
`def airlock(inventory):
clear()
userin = None
inventory["note"] = "your astronaut ID is: 2579"
while userin != "quit":
time.sleep(1.5)
print("description of airlock, keypad on wall next to door")
print("what u wanna do? 1 look around 2 check pockets 3 go to keypad")
userin = input()
if userin == "1":
#describe the keypad. there is nothing else in the room
**elif userin == "2":
invinspect(inventory)**
def invinspect(inventory):
userin = None
print(inventory.keys())
print("what would you like to do? 1. look closer 2 go back")
userin = input()
if userin == 1:
print(str(inventory))
else:
def main():
inventory = {}
airlock(inventory)
main()`
>Solution :
as mentioned in the comment, if you introduce a conditional statement in python, you must have some kind of statement after it. This can be a "dummy" statement like pass
, but it cannot be a comment (they don’t count).
Examples
x = 5
if x > 4: # GOOD
print('bigger than 4')
if x > 4: # GOOD
pass
if x > 4: # ERROR
# a comment
EDIT:
Try this. You had 2 locations where you had a conditional without a following line. Be sure to QA the line numbers when you get errors. Note that I commented out clear()
because it is not defined
import time
def airlock(inventory):
#clear()
userin = None
inventory["note"] = "your astronaut ID is: 2579"
while userin != "quit":
time.sleep(1.5)
print("description of airlock, keypad on wall next to door")
print("what u wanna do? 1 look around 2 check pockets 3 go to keypad")
userin = input()
if userin == "1":
pass
#describe the keypad. there is nothing else in the room
elif userin == "2":
invinspect(inventory)
def invinspect(inventory):
userin = None
print(inventory.keys())
print("what would you like to do? 1. look closer 2 go back")
userin = input()
if userin == 1:
print(str(inventory))
else:
pass
def main():
inventory = {}
airlock(inventory)
main()