2017-06-16 16 views
0

私はこのコードを持っている:PYTHON何が間違っていますか?ループとif文

methods = ["SNMP", "SUDP","ESSYN", "SSYN", "HTTP"] 

print("Methods: {}".format(', '.join(methods))) 
method = input("Enter method: ") 
method = method.upper() 

while method != methods: 
    print("ERROR: Method unknown") 
    method = input("Enter method: ") 
    method = method.upper() 

if method in methods: 
    print("Method: {}".format(method)) 

print("" 
     "" 
     "") 

seconds = input("Enter length in seconds: ") 
    print("{} seconds".format(seconds)) 

あなたは、私は、ユーザーからの答えを取得しようとしている見ることができるように、その後の答えを示し、次の作業に進みます。しかし、答えがメソッドのリストにない場合、私は再度質問をします。しかし、私はどのように把握することはできません。私が今使っているコードは、エラーメッセージ "ERROR:Method unknown"を与えています。そして、最終的に「メソッド」(ここのメソッドで)メソッドが次のタスクには出ません。誰が私に何をすべきか、このコードの何が間違っているか教えてもらえますか?

+0

はまったく同じコードであなたのインデントのですか? – JoshKopen

+3

'method!= methods'は、あなたが思っていることをやっていません。'メソッドがメソッドにない 'を試してください。 – asongtoruin

+1

あなたのインデントを修正して、実際の問題を明確にしてください。 – Carcigenicate

答えて

0

どう

while method != methods: 

は、これまで意味をなさないだろうか?

おそらく、あなたがしたい:それはここにあるよう

while method not in methods: 
+0

どうすれば問題を修正できますか? –

+0

まあ、ありがとう。それは働いたが、私は変数でそれをする方法を知りませんでした。 – FluffyMe

+0

@JonClements - どのように問題を修正しますか?あ、「すぐに」? 「迅速に」? – Malvolio

1
methods = ["SNMP", "SUDP","ESSYN", "SSYN", "HTTP"] 

print("Methods: {}".format(', '.join(methods))) 
ans = None 
while ans is None: # when ans is set as method or any other value loop will stop asking for methods 
    method = input("Enter method: ") 
    if method.upper() in methods: 
     ans = method # when you set ans it will not ask again 
     print("Method: {}".format(method)) 
     # rest of code here.... even another while loop for your input 
    else: 
     print("ERROR: Method unknown") 
+0

リンクされた複製を見てください。ここには初期値は必要ないし、それに対してチェックする必要はありません。 'continue'や' break'を適切に使うのが適切です。 –

関連する問題