Я пытаюсь установить петлю между 0,01 и 10, но между 0,01 и 0,1 используют 0,01 в качестве шага, затем между 0,1 и 1,0 используют 0,1 в качестве шага и от 1,0 до 10,0 используют 1,0 в качестве шага.Переменная шаг в цикле for
У меня есть код цикла while написанный, но вы хотите сделать его более питоновским.
i = 0.01
while i < 10:
# do something
print i
if i < 0.1:
i += 0.01
elif i < 1.0:
i += 0.1
else:
i += 1
Это произведет
0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 4, 5, 6, 7, 8, 9
положить, что в функции и добавить 'выход i' в качестве последней команды цикла. Это будет генератор, который вы можете повторить. – njzk2
Остерегайтесь - приращение по шагам не очень хорошо работает с ограничениями округления с плавающей запятой. Вероятно, у вас будут пограничные ошибки. – user2357112
@ njzk2 - 'yield' должен быть ** первым ** инструкцией в его цикле, где' # do something' теперь. Его первое значение должно быть '.01'. –