college intro project has indentation error i cant seem to fix

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()

Leave a Reply