Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 28.10.2020
Сообщений: 14

Не понимаю где ошибка при использовании декоратора

25.10.2021, 23:03. Показов 667. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не так давно начал изучать python и вот столкнулся с такой штукой как "декоратор". Вроде бы почитал о нем, но не до конца понимаю почему вылезает ошибка при его использовании.
Попытался обернуть в декоратор только 6-е задание, но вылезает ошибка. Заранее благодарю за помощь

P.S Смысл задания, обернуть в декоратор 6, 7 и 8 задание которое было выполнено мною заранее

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#------------------TASK №6------------------
 
def decorator_task6(task62):
    import time
    
    def wrapper():
        start = time.time()
        task62()
        end = time.time()
        print('Час виконання: {} секунд.'.format(end-start))
    return wrapper
 
@decorator_task6
def task61(num):
    ans=2
    delit = 1
    j = 0
    while not num % ans:
        num //= ans
        j += 1
    if j:
        delit *= j + 1
    ans = 3
    while ans * ans <= num:
        j = 0
        while not num % ans:
            num //= ans
            j += 1
        if j:
            delit *= j + 1
        ans += 2
    if num - 1:
        delit *= 2
    return delit
def task62(m, n):
    dmax = 0
    for i in range(m, n + 1):
        k = task61(i)
        if k > dmax:
            dmax = k
            res = i
    return res
print(task62(int(input("Введіть початкову точку M: ")), 
             int(input("Введіть кінцеву точку N: "))))
#------------------TASK №7------------------
from random import randint
def task7(n):
    lst = []
    for i in range(2, n + 1):
        for j in lst:
            if i % j == 0:
                break
        else:
            lst.append(i)
    return lst
print(task7(int(input("Введіть кінцеву точку N: "))))
#------------------TASK №8------------------
a = [randint(-100, 100) for _ in range(100)]
answ =[i for i in a if i in range(min(a) - 100, max(a) - 99)]
print(answ)
#------------------TASK №9------------------
 
 
import time
def decorator_task7(n):
    start = time.time()
    print(task7(n))
    end = time.time()
    print(f'Час: {end - start} сек.')
    return decorator_task7
print(decorator_task6(int(input("Введіть початкову точку M: ")), 
                      int(input("Введіть кінцеву точку N: "))))
print(decorator_task7(int(input("Введіть кінцеву точку N: "))))
rando = int(input("Введіть кількість значень: "))
start = time.time()
ad = [randint(-100, 100) for _ in range(rando)]
answd = [i for i in ad if i in range(min(ad) - 100, max(ad) - 99)]
print(answd)
end = time.time()
print(f'Час: {end - start} сек.')
Добавлено через 59 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def decorator_task6(task62):
    import time
    
    def wrapper(m, n):
        start = time.time()
        task62(m, n)
        end = time.time()
        print('Час виконання: {} секунд.'.format(end-start))
    return wrapper
 
 
def task61(num):
    ans=2
    delit = 1
    j = 0
    while not num % ans:
        num //= ans
        j += 1
    if j:
        delit *= j + 1
    ans = 3
    while ans * ans <= num:
        j = 0
        while not num % ans:
            num //= ans
            j += 1
        if j:
            delit *= j + 1
        ans += 2
    if num - 1:
        delit *= 2
    return delit
 
@decorator_task6
def task62(m, n):
    dmax = 0
    for i in range(m, n + 1):
        k = task61(i)
        if k > dmax:
            dmax = k
            res = i
    return res
print(task62(int(input("Введіть початкову точку M: ")), 
             int(input("Введіть кінцеву точку N: "))))
я вот исправил, но метод wrapper возвращает почему-то NONE, когда task62 возвращает нормальное значение. Объясните пожалуйста что я делаю не так?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2021, 23:03
Ответы с готовыми решениями:

При отправке формы получаю битый файл 0 байт. Не понимаю где ошибка
PHP &lt;?php if (isset ($_POST)) { $to = &quot;storagesosh5@cs55295.tmweb.ru&quot;; //почта получателя $subject =...

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include...

Не понимаю ошибку при использовании базы данных
Всем привет System.Data.SqlClient.SqlException: 'Login failed for user 'userid'.' Такая ошибка This exception was originally...

1
 Аватар для AlekseyPl
32 / 22 / 12
Регистрация: 18.11.2017
Сообщений: 165
26.10.2021, 09:47
Python
1
2
3
4
5
6
7
8
9
def decorator_task6(task62):
    import time
    
    def wrapper(m, n):
        start = time.time()
        task62(m, n)
        end = time.time()
        print('Час виконання: {} секунд.'.format(end-start))
    return wrapper
task62 выполняется и возвращается результат, все верно. Но далее результат выполнения не присваивается никакой переменной, следовательно wrapper возвращает по умолчанию None. Должно быть что-то вроде такого

Python
1
2
3
4
5
6
7
8
9
10
def decorator_task6(task62):
    import time
    
    def wrapper(m, n):
        start = time.time()
        result = task62(m, n)
        end = time.time()
        print('Час виконання: {} секунд.'.format(end-start))
        return result
    return wrapper
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2021, 09:47
Помогаю со студенческими работами здесь

не понимаю где ошибка
Задание: Дана строка, состоящая из русских слов, разделенных пробелами(одним или несколькими). Найти длину самого короткого слова. ...

Не понимаю, где ошибка
Необходимо сделать сортировку &quot;пузырьком&quot; и что-то не получается..

не понимаю,где ошибка
Дана форма, в которой мы имеем 15 radio кнопок. Кнопки - оценки за экзамены. Надо найти средний балл. Рассматриваем,например,оценки за...

Не понимаю, где ошибка
Доброго времени суток! Решаю задачу с тимуса, вот условие: http://acm.timus.ru/problem.aspx?space=1&amp;num=1118 Не понимаю, где...

Не понимаю где ошибка
Всем доброго времени суток, есть код на pascal его нужно перевести в python, не могу понять что не так. var x,y: real; begin write...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru