2017-09-18 5 views
-1

enter image description hereそれはこんにちは、私は私のPythonコードは、私はそれを実行したときに無限ループをやって続けて理由を知っている必要があります無線LAN

をトラブルシューティングするためのプログラムを作成するように求めるフローチャートです。どこで私のコードにエラーがありますか?これは、wifiのトラブルシューティングを行うプログラムを作成するように求めるフローチャートです。ユーザーに提示されたソリューションが機能しない場合は、ユーザーに問題が解決したかどうかを尋ねます。ユーザーが 'n'を入力すると、別の解決方法が提供されます。あなたがルータを交換する必要があると言われるまで、それは3,4の解決策に向かいますが、実行中にルータの交換に当たると、交換ルータのマッサージが始まり、プログラムは決して停止しません。

error_fixed = 'n' 


while error_fixed == 'n': 
    print ('reboot computer') 
    error_fixed = input('Did problem fixed? ') 
    while error_fixed == 'n': 
     print ('reboot router') 
     error_fixed = input('Did problem fixed? ') 
     while error_fixed == 'n': 
      print('check cable connections') 
      error_fixed = input('Did problem fixed? ') 
      while error_fixed == 'n': 
       print('move router to new location') 
       error_fixed = input('Did problem fixed? ') 
       while error_fixed == 'n': 
        print('replace the router') 

フィードバックをいただきありがとうございます。

答えて

0

あなたがここに来る:

while error_fixed == 'n': 
    print('replace the router') 

error_fixed'n'です。あなたはprint('replace the router')になったのです。

しかし、それは'n'

は、あなたが「ルータを交換」の後に、再びユーザーに尋ねることを意味するか、またはあなただけの「ルータを交換し、印刷した後、ループを終了したいんとどまるので、あなたは、error_fixedを更新しません'?

後者の場合は、にその部分を変更することができます:

while error_fixed == 'n': 
    print('replace the router') 
    break 

しかし、それは唯一の内側の中から抜け出します。

あなたはそれを変更することができます:

すべてのループを終わらせるだろうが、最善の解決策では、おそらく、whileループものであろう

:-)嘘のビットであるかもしれない

while error_fixed == 'n': 
    print('replace the router') 
    error_fixed == 'y' 

エラーメッセージのリストを表示し、エラーが修正されない限り、メッセージインデックスをインクリメントして次のメッセージを表示します。その後、breakが動作します。リストを反復し、問題が修正された場合は終了するためにbreakを使用すると、より良いPythonコードが作成されます。このような何か:私はraw_inputinputを変更

suggestions = ['reboot computer', 'reboot router', 'check cable connections','move router to new location','replace the router'] 

for suggestion in suggestions: 
    print suggestion 
    error_fixed = raw_input('Did that fix your problem? ') 
    if (error_fixed == 'y'): 
     break 

注意。あなたはこの提案を使う必要はありません。私はあなたが入力を使用するときにユーザがyまたはn答えを二重引用符で囲んで入力する必要があります。これは"n"です。ちょうどnまたはyと入力すると、引用符がなくても便利です。

print ('reboot computer') 
error_fixed = input('Did problem fixed? ') 
if error_fixed == 'n': 
    print ('reboot router') 
    error_fixed = input('Did problem fixed? ') 
    if error_fixed == 'n': 
     print('check cable connections') 
     error_fixed = input('Did problem fixed? ') 
     if error_fixed == 'n': 
      print('move router to new location') 
      error_fixed = input('Did problem fixed? ') 
      if error_fixed == 'n': 
       print('replace the router') 
:あなたはそれがあなたの元のコードのようにもっと見たい場合は

、また、あなたがそうだ「場合は」彼らは繰り返しませんし、「しばらく」Sを変え、書いたものと、それは似て行うことができます

関連する問題