2016-12-13 11 views
2

ストップまたはその他のキーボード入力を入力することで、ネストされたループを終了できるようにします。ユーザーは、私が試して使用すると、機能を除いて考えていたPythonを使用して、ループ内のあるポイントでループ内のループを終了する

if option == "a": 
    while True: 
     try: 
      name = input('\nEnter the students name: ') 
      cm = input('Coursework mark: ') 
      em = input('Exam mark: ') 
      student = (name,cm,em) 
      database.append(student) 
     except : 
      break 

...文は、ここで私は、if文最初のために書いたコードがある場合は8に続くオプショングラムに、入力するように要求されているが、どうやってそれがうまくいくか分かりません、助けてください!

+0

あなたは良い方法です、盲目的には「除外」しないでください。それは悪い習慣です。あなたのスクリプトで間違っていることがたくさんあります。ちょうど 'KeyboardInterrupt:を除いて' catchし、あなたは 'CTRL + C'でループを止めることができます – Dalvenjia

答えて

2

あなたは毎回入力された値をチェックすることができ、それがあなたのキーワードと一致する(またはキーワードのリストにある)場合、あなたはbreakです。

if option == "a": 
    while True: 
     name = input('\nEnter the students name: ') 
     if name == 'stop': 
      break 
     cm = input('Coursework mark: ') 
     if cm == 'stop': 
      break 
     em = input('Exam mark: ') 
     if em == 'stop': 
      break 
     student = (name,cm,em) 
     database.append(student) 

停止キーワードのリストと照合するために、あなたは(そのようなセンター+ cまたは削除など)キーボード割り込みを懸念している場合

stop_kws = ['stop', 'exit', 'quit'] 

... 

if name in stop_kws: 
    break 

... 
1

ような何かを行うことができ、あなたはbuilt-in Exception KeyboardIntertuptを使用することができます。これは、あなたが正常に失敗することができます:

if option == "a": 
    try: 
     name = input('\nEnter the students name: ') 
     cm = input('Coursework mark: ') 
     em = input('Exam mark: ') 
     student = (name,cm,em) 
     database.append(student) 
    except KeyboardInterrupt as e: 
     # 
     # do something 
     # 
     break 

これは、割り込み要求からクラッシュからあなたのループを防止するであろう。

関連する問題