2016-10-09 13 views
1
var1,var2 = input("Enter two digits a and b (0-9):").split(' ') 
while True: 
    if (0 <= var1 <= 9) and (0 <= var2 <= 9): 
     result = var1+var2 
    print("The result is: %r." %result) 

私はSpyder Python 3.5を使用してこのコードを記述して実行しようとしています。ただし、このコードは機能しません。 "(1)var1、var2 = input(" 2桁のaとb(0-9)を入力してください: ")split( '');(2)TypeError: 'str'オブジェクトが存在しません。制限付きのPython入力分割

+1

以前の変数 'input'または' split'に名前を付けて、組み込み関数を上書きする必要があります。それをしないでください。さらに、 'input()'はintではなく文字列を返すので、あなたのコードは期待どおりに動作しません。 'if'ステートメントで比較できる整数を得るには' var1 = int(var1) 'と' var2 = int(var2) 'を呼び出す必要があります。最後に、 'if'ステートメントと' print() 'を' while True'ループの下に置くことで、プログラムはCtrl-Cで途切れなくなるまで答えを印刷し続けます。私はそれがあなたが望むものだとは思わない。 – MattDMo

+0

あなたの提案をありがとう。私は '組み込み関数を上書きする'と混乱していると感じていますが、TypeError: 'str'オブジェクトは呼び出し可能ではないことがわかります –

+1

Pythonには、 'input'、' print'、 'max '、' min'など、デフォルトのデータ型(リスト、辞書、int、浮動小数点数、文字列など)に関連するメソッドだけでなく、 'split()'も文字列メソッドです。文字列。セッションやコードのある時点で、 'input'という変数に代入し、組み込み関数を上書きまたはマスクする必要があります。 – MattDMo

答えて

0
a,b = map(int, input().split()) 

while True: 
    if (0 <= a <= 9) and (0 <= b <= 9): 
     c = a + b 
     break 

print('%r' %c) 
+0

ありがとう、それは動作します。 –

関連する問題