Регулируемый диапазон для петли в соответствии с размером шага - PullRequest
0 голосов
/ 24 мая 2018

Я хочу попросить пользователя определить размер шага цикла for.Пользователь запишет во вводе число с плавающей точкой, например 0.2 или 0.5, но Python не принимает float в цикле for, поэтому мы должны изменить его на целое число.

for i in range (1, 3.5, 0.5): #This is proposal
   print(i)

for i in range (10, 35, 5): #This is the logical term for Python
   print(i/10)

Если пользовательнапишите 0.05 диапазоны цикла должны быть 100 to 350 with step size 5 Это означает, что мы умножили 1 и 3.5 на 100 или для размера шага 0.5 мы умножили их на 10.тогда как нам поступить?

Я имею в виду, когда пользователь пишет stepseize = 0.00005, у нас есть 5 десятичных чисел, поэтому мы должны умножить 1 и 3.5 на a 1перед ним 5 нулей, 100000.Если пользователь пишет stepseize = 0.0042, у нас есть 4 десятичных чисел, и мы должны умножить 1 и 3.5 на 10000

q = 100... # zeroes are in terms of number of decimals
for i in range (1*(q), 3.5*(q), n*q) : #This is the logical term for Python
   print(i/q)

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете написать свой собственный генератор диапазонов, который обертывает функцию range(), но обрабатывает поплавки:

def range_floats(start,stop,step):
    f = 0
    while not step.is_integer():
        step *= 10
        f += 10
    return (i / f for i in range(start*f,stop*f,int(step)))

, который работает:

>>> for i in range_floats(0, 35, 0.5):
...     print(i)
... 
0.0
0.5
1.0
.
.
.
33.5
34.0
34.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...