2015-07-07 2 views
1
integer1 = eval(input('Enter the first integer between -10 and 10: ')) 

integer2 = eval(input('Enter the second integer between -10 and 10: ')) 

while (integer1 >= 10 or integer1 <= -10): 
    replace1 = eval(input('Integer 1 is invalid, Please enter a valid number: ')) 

while (integer2 > 10 or integer2 < -10): 
    replace2 = input('Integer2 is invalid, Please enter a valid number: ') 
+2

Это Python 3 или Python 2? Кроме того, объясните, пожалуйста, не работает. Мы не можем догадаться, что происходит не так. –

+1

Что значит «не работает должным образом» для вас? – kindall

+0

Извините, я считаю, что это python 3, и ошибка в том, что цикл while продолжает выводить ошибку даже после ввода действительного числа. –

ответ

1

Я думаю, что это то, что вы ожидали:

integer1 = eval(input('Enter the first integer between -10 and 10: ')) 

integer2 = eval(input('Enter the second integer between -10 and 10: ')) 

while (integer1 >= 10 or integer1 <= -10): 
    integer1 = eval(input('Integer 1 is invalid, Please enter a valid number: ')) 

while (integer2 > 10 or integer2 < -10): 
    integer2 = input('Integer2 is invalid, Please enter a valid number: ') 

Поскольку значение integer1 не изменяется в первый время цикла она будет выступать в качестве бесконечного цикла

Вместо Eval можно использовать int(), так как есть некоторые вредный эффект на использование eval палки с int

-

Modified:

integer1 = int(input('Enter the first integer between -10 and 10: ')) 

integer2 = int(input('Enter the second integer between -10 and 10: ')) 

while (integer1 >= 10 or integer1 <= -10): 
    integer1 = int(input('Integer 1 is invalid, Please enter a valid number: ')) 

while (integer2 > 10 or integer2 < -10): 
    integer2 = int(input('Integer2 is invalid, Please enter a valid number: ')) 
+0

i менял replce1/2 с помощью integer1/2 и получил эту новую ошибку, тогда как (integer2> 10 или integer2 <-10) : ТипError: unorderable types: str()> int() –

+0

@ IbrahimEl-Rayes попробуйте модифицированный метод – The6thSense

+0

извините, им новый для python (только что начался сегодня) Что такое модифицированный метод? –

1
while (integer1 >= 10 or integer1 <= -10): 
    replace1 = eval(input('Integer 1 is invalid, Please enter a valid number: ')) 

Вы никогда не измените integer1, так что если условие истинно, то всегда верно и зацикливается.

Назначить: integer1, а не replace1. Аналогично для второго.