Python - Как использовать float в операторе "if x in range" - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь написать оператор if, который принимает число с плавающей точкой в ​​качестве диапазона.

Спасибо.

x = 8.2

if x in range(0, 4.4):
    print('one')
if x in range(4.5, 8):
    print('two')
if x in range(8.1, 9.9):
    print('three')
if x > 10:
    print('four')

Я также пробовал это безрезультатно

if x > 0 <= 4.4

Ответы [ 3 ]

1 голос
/ 16 января 2020

Вам не нужно range(). Просто используйте сравнения и используйте elif, чтобы диапазоны были исключительными.

if x < 4.5:
    print('one')
elif x < 8:
    print('two')
elif x < 10:
    print('three')
else:
    print('four')

Это также решает проблему с пробелами между диапазонами.

1 голос
/ 16 января 2020

Используйте

   if 0 < x <= 4.4:

, где х находится в середине. Это эквивалентно

   if 0 < x and x <= 4.4:

range не подходит для этой задачи.

0 голосов
/ 16 января 2020
x = 8.3

if 0 <= x <= 4.4:
    print('one')
if 4.5 <= x <= 8:
    print('two')
if 8.1 <= x <= 9.9:
    print('three')
if x > 10:
    print('four')
...