2017-03-18 12 views
0

私はPythonの初心者です。ユーザーが入力した製品のリストを印刷するコードを作成しましたが、印刷するたびに最後の要素に到達すると中断しません...
EDIT:文字列は空白ではないと考えられます。例:コテージ、チーズ、ベーコン
は、ここに私のコードです:リスト内のアイテムを一度だけ印刷する方法(Python 2.7)

def menu(): 
    print "1. View products" 
def view(products): 
    print products 
def main(): 
    str1 = raw_input("") 
    products =str1.split(',') 
    menu() 
    choice = input("") 
    while (choice != 0): 
     if(choice == 1): 
      view(products) 
main() 
+0

whileループの中で選択肢を決して変更しないので、ループは実行を継続します – ArchiFloyd

+1

選択肢を更新しませんwhileループの内側にあり、常に最初の選択肢で実行されます。ループの最後に 'choice = input(" ")'を入れてください。 –

答えて

1

あなたはリストが印刷されたばかり続ける理由は無限ループを持っています。あなたはそれ以外のループはあなただけのリストを印刷し、この場合には、無限ループを生成しながら、このコードで

choice = None 
while (choice != 0) and (choice != 1): 
    if(choice == 1): 
     view(products) 
    choice = input("Type 1 to view products, 0 to quit: ") 
+0

このコードはうまくいきません。 whileループの前に1を選択すると、whileループに入ることはありません。 – darvark

+0

あなたは正しいことを指摘してくれてありがとう –

1

を終了することはありません複数回の入力をお願いする必要があります。 あなたの例では、製品がリストです。それでは、なぜ関数を表示するために渡してから、forループに渡して製品の内容を印刷するのですか?

関連する問題