2016-10-09 2 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, чтобы написать этот код и попытаться запустить его. Однако этот код не работает.Python Input Split с предельным диапазоном

Это показывает, что «(1) var1, var2 = input (« Введите две цифры a и b (0-9): »). Split (''); (2) TypeError: объект 'str' не является вызываемый «

+1

Вы должны иметь имя предыдущей переменной' input' или 'split', перезаписывая встроенные функции. Не делай этого. Кроме того, ваш код будет работать не так, как ожидалось, потому что 'input()' возвращает строки, а не int. Вам нужно будет вызвать «var1 = int (var1)» и «var2 = int (var2)», чтобы получить целые числа, которые вы затем можете сравнить в своем выражении 'if'. Наконец, поставив оператор 'if' и' print() 'в цикле' while True', ваша программа будет непрерывно печатать ответ до тех пор, пока вы не выйдете из него с помощью Ctrl-C. Я сомневаюсь, что это то, что вы хотите. – MattDMo

+0

Спасибо за ваше предложение. Я смущаюсь о «перезаписывании встроенной функции», и он все еще показывает, что объект TypeError: 'str' не является вызываемым –

+1

Python имеет некоторые встроенные функции, не импортирующие ничего, включая 'input',' print', 'max ',' min' и т. д., а также методы, связанные с типами данных по умолчанию - списками, dicts, ints, float, strings и т. д. '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

Спасибо, это работает. –

Смежные вопросы