Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2017 15:54:33

Ewgensky
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по циклам

Приветствую! Прошу подсказать грызущему гранит новичку)
Стоит задача посредством функции получить целое число, но таким способом, что оно будет получено через n минут или секунд.
Получилось реализовать задачу посредством цикла while, типа:
i = 0,5
while i < 100:
print(i)
i = i + i * 0,001

Однако компилятор, во-первых, выдает столбец возрастающих чисел, тогда как требуется, чтобы компилировалось одно возрастающее до нужной величины число, но не огромный столбец чисел, а во-вторых, необходимо контролировать время генерации такого числа. Как быть?

Отредактировано Ewgensky (Май 20, 2017 16:59:30)

Офлайн

#2 Май 21, 2017 01:20:52

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Вопрос по циклам

Опиши задачу точно.

Ewgensky
Стоит задача посредством функции получить целое число, но таким способом, что оно будет получено через n минут или секунд.
Ewgensky
Однако компилятор, во-первых, выдает столбец возрастающих чисел, тогда как требуется, чтобы компилировалось одно возрастающее до нужной величины число
Набор общих слов, под который подходит сотня разных кодов.

Приведи пример в виде конкретных чисел.



Офлайн

#3 Май 21, 2017 11:58:34

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Вопрос по циклам

 i = 0.5
while i < 100:
      i += i * 0.001
print(int(i))
а вообще то чтоб получить через несколько минут есть time.sleep()

Офлайн

#4 Май 21, 2017 17:45:56

Ewgensky
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по циклам

py.user.next
Опиши задачу точно.

Итак, представим функцию, принимающую аргумент (число). Это число в самой функции умножается на условный коэффициент до тем пор, пока не будет посредством умножения на него последнего полученного числа получено нужное число. И функция должна вернуть это нужное число.
Например, аргумент на входе равен 0.002, коэффициент в функции 0.05. И далее умножение этих чисел в виде : 0.002 * 0.05, далее результат этого умножения еще на 0.05 и т.д. , пока не будет получено скажем 100.
Компилироваться должно одно число ( то есть физически : не столбец (поток) чисел в компиляторе, а одна строка с одним возрастающим числом), возрастающее от 0.0001 до 100 соответственно.

def example(x):
while x < 100:
print(x)
x = x + x * 0.005

example(0.0002)

Конкретно в этом коде компилятор выдает столбец (поток) чисел, тогда как нужно одно возрастающее число. И его требуется получить таким способом скажем за 1 минуту.

Модуль time позволяет получить это число через промежуток времени, но надо компилировать умножение во времени и выводить его результат одним возрастающим числом.

Офлайн

#5 Май 22, 2017 01:20:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Вопрос по циклам

Ewgensky
Конкретно в этом коде компилятор выдает столбец (поток) чисел, тогда как нужно одно возрастающее число.
  
import time
 
def progress(callback, *args):
    LOW, HIGH = 0, 20
    STRLEN = 3
    for i in range(LOW, HIGH + 1):
        print(' ' * STRLEN + '\r', end='')
        print('{:02}%'.format(i), end='')
        time.sleep(1)
        callback(*args)
    print()
 
def f(lst):
    lst.append('x')
 
lst = []
progress(f, lst)
lst

  
>>> import time
>>> 
>>> def progress(callback, *args):
...     LOW, HIGH = 0, 20
...     STRLEN = 3
...     for i in range(LOW, HIGH + 1):
...         print(' ' * STRLEN + '\r', end='')
...         print('{:02}%'.format(i), end='')
...         time.sleep(1)
...         callback(*args)
...     print()
... 
>>> def f(lst):
...     lst.append('x')
... 
>>> lst = []
>>> progress(f, lst)
20%   
>>> lst
['x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x']
>>>



Отредактировано py.user.next (Май 22, 2017 01:24:47)

Офлайн

#6 Май 22, 2017 09:40:52

Ewgensky
Зарегистрирован: 2017-05-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по циклам

py.user.next
Благодарю, за наглядные варианты. Будет интересно их разобрать. Жму руку!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version