Я не понимаю, как 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-машине.
Спасибо за помощь.
Обратите внимание, что 2.2 и 2.1999999999999997 не равны, пожалуйста, прочтите приведенные выше ссылки о представлении с плавающей запятой. В вашем случае я бы порекомендовал сравнить с round(P, 2), а не только с P.
В частности, 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.
Итак, зачем тебе Элиф?






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