Это опасно на любом языке программирования. В вашем примере, 0.1
не может быть точно представлен в виде с плавающей точкой, так что тест никогда не пройдет (ну, я полагаю, он может пройти после 2 ^ 24 итераций или около того) .Во многих случаях размер шага может не иметь точного представления в плавающей точке, так что накопленная ошибка округления приводит к тому, что тест по ошибке запускает / не запускает.В других случаях, когда накопленное значение увеличивается, со временем оно начнет терять точность из-за увеличения показателя степени (в вашем примере, если Python по умолчанию использует одинарную точность, вы получите ошибочный триггер после 20971529 итераций).
Попробуйте найти способ избежать выполнения тестов на равенство для значений с плавающей запятой (проверка на интегральные значения является одним из таких тестов).Так что в вашем случае просто протестируйте на step % 10
.