Как перебирать каждое значение?

Рейтинг: 1Ответов: 1Опубликовано: 13.07.2023

Мне нужно, чтобы в коде определённая переменная менялась в зависимости от значения другой. Например, первая переменная оканчивается на 0, тогда вторая переменная должна принять одно значение. Если переменная оканчивается на цифры от 1 до 4, то у второй переменной другое значение. Если переменная оканчивается на цифры от 5 до 9, то третье значение.

Есть ли вариант, чтобы написать таким образом:

if x == 0:
    y = '1 meaning'
elif x == (тут будут перебираться значения от 1 до 4):
    y = '2 meaning'
else:
    y = '3'

Я мог бы перечислить каждое значение от 1 до 4 через and, но это будет долго.

Есть ли способ одной записью перечислить все значения в третьей строке?

Ответы

▲ 4Принят

Несколько вариантов:

  1. Через in, и справа в кортеже перечислить значения:
if x in (1, 2, 3, 4):
    ...
  1. То же самое через range:
x in range(1, 5)
  1. Просто через арифметическое сравнение "больше или равно":
1 <= x <= 4

Через and и не получится, потому что and предполагает, что каждое условие выполняется, а переменная не может быть равна одновременно нескольким числам, т.е. условие типа a == b and a == c, где b != c - всегда ложное. Должно быть or, а не and.