@manka_s_komochkami

Как присвоить диапазон значений переменной в Python?

Доброго времени суток. Интересует возможность в python'e присвоение переменной значения в определённом промежутке. Каким способом возможно это реализовать?
Более детально: Необходимо обозначить рамки допустимых значений
norm_x= (тут каким то чудесным образом объявляется промежуток)
if x!=norm_x:
    print('Переменная x за пределом допустимых значений')

В программировании новичок, так что не пинайте) Функция range() если я правильно понял, не удовлетворит мои потребности.
  • Вопрос задан
  • 40252 просмотра
Пригласить эксперта
Ответы на вопрос 6
norm_x = [10, 100]
x = 10.000001

if x >= norm_x[0] and x<= norm_x[1]
    print ("Great")
else:
    print ("Oops")
Ответ написан
Комментировать
sim3x
@sim3x
In [1]: def x_in_bounds(x, bounds): return bounds[0] < x < bounds[1]

In [2]: if x_in_range(1, (0, 2)): print('in')
in
Ответ написан
@deliro
Функция range() если я правильно понял, не удовлетворит мои потребности.

Удовлетворит, если только целые числа.
In [7]: 10 in range(1, 11)
Out[7]: True

In [8]: 1 in range(1, 11)
Out[8]: True

In [9]: 11 in range(1, 11)
Out[9]: False

Однако, лучше использовать сравнение, потому что вот:
In [12]: %timeit 5 in range(1, 11)
The slowest run took 4.69 times longer than the fastest. This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 348 ns per loop

In [13]: %timeit 1 <= 5 <= 10
10000000 loops, best of 3: 60.2 ns per loop
Ответ написан
Комментировать
tsarevfs
@tsarevfs
C++ developer
Насколько я знаю, какого-то специального способа нет. Используйте пару переменных или кортеж.
min_val, max_val = 1, 10

if min_val <= x <= max_val:
    print("...")


Либо писать свой класс:
def BoundsChecker:
    __init__(self, min_val, max_val):
        self.min_val = min_val
        self.max_val = max_val
        
    def isBounded(self, val):
        return self.min_val <= val <= self.max_val
    
checker = BoundsChecker(1, 10)

if (checker.isBounded(x))
    print("...")
Ответ написан
DarkMode
@DarkMode
Made out of meat.
that_list = list(range(1,101))
x = 89
if x in that_list:
    print('cool')
Ответ написан
Комментировать
GeoExplorer
@GeoExplorer
Я тоже только начал изучать данный язык, но вот, что нашел. Ответ скорее уже не для автора, т.к за > 3-х лет он наверняка уже сам учит других (если не бросил), а для таких же новичков, как я, которые зайдут сюда за ответом.
Есть функция range(): https://metanit.com/python/tutorial/3.5.php

x = 5 # любое число из диапазона
range_nums = range(1, 11) # диапазон: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Т.е последнее значений (11) не учитывается

if x in range_nums:
    print(str(x) + " в пределах допустимых значений")
else:
    print(str(x) + " за пределом допустимых значений")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы