2017-03-31 7 views
-3

アプリケーションのメニューを作成しようとしていますが、メニューには4つのオプションがあり、ユーザーが選択した値を入力したときに正しい情報が返されます。私はElifステートメントでエラーが発生し続ける。 私は初心者ですので、どこから来ているのか理解してください。 よろしくお願いいたします。Elifのインデント付きブロックでエラーが発生する

私がインデントしている間は、私はエラーを受け取ります。エリフをインデントした後に無効な構文が表示されます。ans == 2。

elif ans == 2 < ---このエラーは、インデントされたときにインデントブロックエラーまたはシンタックスが無効であることを継続します。

デフprint_menu(自己、車):
プリント( "platenumberによる1.Search") プリント( "価格によって2.Search ") プリント(" 3.Delete 3") プリント( "4 .Exit 4 ")

ループ= Trueの
whileループ: print_menu() ANS ==入力(" "リストから選択してください)

if ans==1: 
     print("These are the cars within this platenumber") 
    return platenumber_ 

    while ans: 
     if ans==2: 
     elif ans==2: 
      print("These are the prices of the cars") 
    return price_ 

    elif ans==3: 
     print("Delete the cars ") 
    return delete_ 

    elif ans==4: 
    return Exit_ 

      loop=False 

    else: 
     raw_input("please choose a correct option") 
+0

あなたは 'while ans:'を持っていて、その後にインデントはありません。 ':'で行を完成させた場合は、 – Craicerjack

+0

の後ろに字下げがあるはずです。後で字下げするとエラーが表示されます。無効な構文があります。 – Sam

+2

あなたの質問から、仕事の論理を理解するのは難しいですが、インデントされ、 'while'ステートメントが' if'ステートメントの真ん中にスローされます。最初はなぜwhileループですか? – Craicerjack

答えて

0

あなたはを持っていますボディなしの3210ループ一般に、インデントエラーメッセージがあり、そのエラーが上記の行にない場合、それはその上にあるものです。

loop=True  
while loop: 
    print_menu() 
    ans = int(input("Please choose from the list")) 

    if ans==1: 
     print("These are the cars within this platenumber") 
     # return some valid information about plate numbers 

    elif ans==2: 
     print("These are the prices of the cars") 
     # return some valid information about pricing 

    elif ans==3: 
     print("Delete the cars ") 
     # Perform car deletion action and return 

    elif ans==4: 
     # I am assuming this is the exit option? in which case 
     # return without doing anything 

    else: 
     # In this case they have not chosen a valid option. Send 
     # A message to the user, and do nothing. The while loop will run again. 
     print("please choose a correct option") 

また、あなたのコードは少し混乱します。あなたはreturn car_に行っているように見えます。つまり、あなたのループは一度だけ実行されます。また、=は代入で、==は等価です。注意してください。

+0

私はelifを削除し、後にstatmentを追加する必要がありますか?ans:何をお勧めしますか? – Sam

+0

更新されたコードを見てください。 –

+0

ありがとう、私はあなたのフィードバックのおかげで、試していきます。 – Sam

関連する問題