-1

While trying to put if's and elif's in a while loop, it would automatically indent the elif under the if. I tried deleting the indentation, but when I went to test it, I get an indentation error:

expected an indented block

So I tried adding the indentation back, which just seems strange since this is the first time this has happened. I then got a plain syntax error.

I tried removing the indentation: received indent error.
I tried including indentation: received syntax 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()
Gino Mempin
  • 25,369
  • 29
  • 96
  • 135
Emily StG
  • 11
  • 2

1 Answers1

1

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

Try the following code. You had 2 locations where you had a conditional without a following line. Be sure to check the line numbers where you are getting 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()
Gino Mempin
  • 25,369
  • 29
  • 96
  • 135
AirSquid
  • 10,214
  • 2
  • 7
  • 31
  • adding the pass where you did worked. The clear function was defined elsewhere using the OS module. Thank you! – Emily StG Apr 29 '23 at 02:40