Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 17, 2016 11:37:59

Lucky94
Зарегистрирован: 2016-08-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор или

допустим, мне надо написать код, который выводит строку, если ввести определённые числа.

 x = int(input('Введите код: '))
if x == 3 or 4 or 5:
      print('Это число есть в списке')
else:
      print('Этого числа нет в списке')

В итоге, что бы я ни ввёл при исполнении программы, будь то 3, 4 или 5, что абсолютно другое число - результат всегда будет, что “Это число есть в списке”, то, что “Этого числа нет в списке” никогда не напишет, даже если и на самом деле нет. Если создать несколько инструкций if, elif и прописать в них в каждом по одному из этих 3 чисел все будет работать как надо. Но я хочу понять, как сделать так, чтобы в одной инструкции можно было прописать несколько чисел, и ежели какое то из этих чисел я введу в инпут, или введу другое число - выполнялась соответствующая инструкция.

Офлайн

#2 Авг. 17, 2016 11:55:37

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Оператор или

нужно или

 if x == 3 or x == 4 or x == 5:
или
 if x in [3, 4, 5]:
или
 if x in range(3, 6):

а у вас всегда есть в списке по той причине что число не ноль True
 >>> if 4:
...  print 5
... 
5
>>> if 0:
...  print 5
... 
>>> 



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Авг. 17, 2016 11:55:53)

Офлайн

#3 Авг. 17, 2016 12:07:47

Lucky94
Зарегистрирован: 2016-08-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор или

terabayt
а у вас всегда есть в списке по той причине что число не ноль True
Спасибо за помощь, теперь всё работает, во всём разобрался)

Офлайн

#4 Авг. 17, 2016 12:33:46

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Оператор или

terabayt
if x in range(3, 6):
Это лучше писать в форме
 if 3 <= x < 6:

Офлайн

#5 Авг. 17, 2016 13:05:20

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Оператор или

Shaman
Это лучше писать в форме
а вот не могу
никак не могу привыкнуть и на автомате никогда даже не вспоминается



————————————————
-*- Simple is better than complex -*-

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version