2016-11-27 8 views
-1

プログラムは継続的に文字列値を要求し、それらがユーザーまで、後のプロンプトで尋ね等しくされているかどうかを評価:数回繰り返した後、プログラムがループ(パイソン)内部のif文にジャンプし

ですか計算を続けたいですか? (はいまたはいいえ)

停止は「はい」と言って

そこここで、すでに最初の要素だwhileループだと考える:

while inputswitch=="yes": 

    a=input("Enter name: ") 
    alist.append(a) 

    for i in range (0, len(alist)-1, 1): 

     if a.lower()==alist[i].lower(): 

      alist.pop(len(alist)-1) 

      print("Match found") 

      inputswitch=input("Do you want to continue computations? (Yes or No) ").lower() 


     if (i==len(alist)-2) and (a.lower()!=alist[i].lower()): 

      print("Not equal") 

      inputswitch=input("Do you want to continue computations? (Yes or No) ").lower() 

問題は、リスト内の5つの要素を持つ後に開始(alistと名付けられた)インデックス< = 2の要素と同じ6番目の要素を入力します。プログラムはループの下のif文を両方実行します。

['A', 'B', 'C', 'D', 'E'] 

I入力三要素のようなまったく同じC:このようなリストを持った後、実証するため

。最初のif文が実行されず、それが印刷さ:

"Match found" 

しかし、プロンプト

はあなたが計算を継続しますか後

? (YesまたはNo)

このプロンプトに対する応答に関係なく、2番目のif文にジャンプします。それは、新しい入力を要求していない、それは印刷します

"Not equal" 

をし、これが再び尋ね

あなたは計算を続行しますか? (はいまたはいいえ)

私は迷っています。 forループに問題があるようです。

答えて

0

変数inputswitchを使用する必要があります。

inputswitch=input("Do you want to continue computations? (Yes or No) ").lower() 

後にあなたは何inputswitchに応じて条件分岐を追加する必要がある。

if inputswitch == "yes": 
    # do something (continue computations) 
elif inputswitch == "no": 
    # do something else (maybe stop computations) 
関連する問題