2017-09-21 11 views
-3

これは、数字を入力せずにEnterキーを押すまで、コンソールに数字を入力する電卓を作成しようとしています。'x is None'の問題、python 3.x

num1 = 0 
num2 = 0 
    if addec == ("Go"): 
     adloop = 1 
      print(para1, """ To exit, 
press enter with no number 

Please input the first number""", para1) 
      sleep(1.5) 
      num1 = float(input("--> ")) 

    while adloop == 1: 
     try: 
      num1 = num1 + num2 
      print("Insert Number") 
      num2 = float(input("--> ")) 

     except: 
      if num2 is None: 
       print("The answer is", num1) 
      else: 
       print(para1, """ ERROR: Invalid Response. 

Please start again""") 

エラーがNUM2がnullの場合でも、プログラムは「他」の文に過去をスキップして戻って答えを噴出せずに再起動する前にERRORラインを走ることにしています。
(何が、それはどこか、おそらくだ不足しているので、もしコードは、わずかな抽出物である)

おかげで、num2とともに

+1

を"](https://docs.python.org/2/howto/doanddont.html#except) – TemporalWolf

+0

インデントが_wrong_ too –

+3

num2'は値を失うことはありません。 'input 'を要求する前に' None'にリセットしてください。 –

答えて

0

Noneに設定されていないさん、実際にループを終了するコードがありません(成功したか失敗したかを示す)また、実行可能な例題を提示するときには、例として致命的な終わりの要素(例:addecpara1sleep(1.5)、複数行の文字列など)質問をする:

print("To exit, press enter with no number.") 
print("Please input the first number:") 
num1 = float(input("--> ")) 

num2 = 0 

while True: 
    try: 
     num1 = num1 + num2 
     num2 = None 
     print("Insert Number") 
     num2 = float(input("--> ")) 
    except ValueError: 
     if num2 is None: 
      print("The answer is", num1) 
      break 
     else: 
      exit("ERROR: Invalid Response. Please start again") 

我々はまた、我々はまた、num1に悪い値捕まえるので、この内部を消すことができます: `良いアイデアなることはほとんどありません:["以外 `裸を使用して

print("To exit, press enter with no number.") 
print("Please input the first number:") 

num2 = 0 

try: 
    num1 = float(input("--> ")) 

    while True: 
     num1 = num1 + num2 
     num2 = None 
     print("Insert Number") 
     num2 = float(input("--> ")) 
except ValueError: 
    if num2 is None: 
     print("The answer is", num1) 
    else: 
     exit("ERROR: Invalid Response. Please start again") 

USAGE

% python3 test.py 
To exit, press enter with no number. 
Please input the first number: 
--> goat 
ERROR: Invalid Response. Please start again 
%