Оператор сравнения меньше чем неверен в Python

Я не понимаю, как python2.7 проверяет оператор сравнения «меньше».

Например, если я запустил следующую функцию

def f():
    P = 0.6
    while P <= 4.0:
           if P < 2.0:
                print(P)
                P += 0.2
                print(P)
                print("-")
            elif P < 10.0:
                P += 2.0

производит следующий вывод:

  0.6
  0.8
  -
  0.8
  1.0 
  -
  1.0
  1.2
  -
  1.2
  1.4
  -
  1.4
  1.6
  -
  1.6
  1.8
  -
  1.8
  2.0
  -
  2.0
  2.2
  -

Насколько я понимаю, я никогда не должен видеть значение 2,2, а сразу перейти к 4,0 после значения 2,0. Что мне не хватает? Я использую Python 2.7.3 на Linux-машине.

Спасибо за помощь.

Это такая идея: stackoverflow.com/questions/588004/…

Ry- 27.04.2018 19:32

Обратите внимание, что 2.2 и 2.1999999999999997 не равны, пожалуйста, прочтите приведенные выше ссылки о представлении с плавающей запятой. В вашем случае я бы порекомендовал сравнить с round(P, 2), а не только с P.

Cory Kramer 27.04.2018 19:33

В частности, 0.6 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 == 1.9999999999999998, который является < 2.0, но str(1.9999999999999998) - это "2.0" в Python 2.

Ry- 27.04.2018 19:34

Итак, зачем тебе Элиф?

Ashlou 27.04.2018 19:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
108
0

Другие вопросы по теме