Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2015 11:27:49

Iehor
Зарегистрирован: 2015-09-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему не заканчивается цикл?

Добрый день всем.
В данном коде мне непонятно почему при выполнении условия программа не выходит из цикла сама, если не вставить break?
(имеется в виду что первый раз вводится неправильное число)
Объясните пожалуйста.

er = int(input('Enter "1" else "2" '))
if er != 1 or er != 2:
print('Enter valid number')
while er != 1 or er != 2:
print('Enter 1 or 2')
er = int(input('enter "1" else "2" '))
if er == 1 or er == 2:
print('er = ', er)
break

Отредактировано Iehor (Сен. 18, 2015 11:32:27)

Офлайн

#2 Сен. 18, 2015 12:06:51

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Почему не заканчивается цикл?

er = int(input('Enter "1" else "2" '))
if er != 1 and er != 2:
	print('Enter valid number')
	while er != 1 and er != 2:
		print('Enter 1 or 2')
		er = int(input('enter "1" else "2" '))
		if er == 1 or er == 2:
			print('er = ', er)
Если у вас er не равно 1 или не равно 2 то условие будет выполняться в любом случае, если er == 1 то оно уже не равно 2, а значит условие выполняет, поэтому необходимо выставить and.



PS. Зачем вам первый if, кстати?

Отредактировано noob_saibot (Сен. 18, 2015 12:12:42)

Офлайн

#3 Сен. 18, 2015 12:28:56

Iehor
Зарегистрирован: 2015-09-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему не заканчивается цикл?


noob_saibot

Понял, спасибо большое!

А первый if теперь действительно не нужен.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version