2 / 2 / 0
Регистрация: 21.10.2018
Сообщений: 14

Рекурсия не работает

20.10.2019, 17:40. Показов 3940. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, есть такой код:

Python
1
2
3
4
5
6
7
8
9
10
11
n = {'None': 'global', 'global': 'foo'}
variable = {'global': 'a', 'foo': 'b'}
def get(namespace, k):
    if variable[namespace] == k:
        return namespace
    else:
        for key, value in n.items():
            if value == namespace:
                get(key, k)
                # print(key, k)
print(get('foo', 'a'))
По моему субъективному мнению он должен был напечатать global, почему функция возвращает None? И что нужно исправить, чтобы функция возвращала global?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2019, 17:40
Ответы с готовыми решениями:

8.3 Рекурсия не работает
Есть такие строки: ВыборкаП = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Выборка_Рекурсия(ВыборкаП, Дерево) ...

C++. Рекурсия не работает
Есть функция #include <iostream> #include <cmath> #include <iomanip> using namespace std; double y(int); int main () { ...

Не работает рекурсия
Помогите пожалуйста, не считает рекурсией формулу: x-x^2/2+x^3/3-...->ln(1+x) Сумму ряда я решил, а рекурсию не считает(( double...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.10.2019, 18:12
vomachit, не надо использовать имена переменных или строковые значения совпадающие с встроенными функциями или ключевыми словами, то бишь 'None' и 'global' это не хорошо
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
20.10.2019, 18:15
Лучший ответ Сообщение было отмечено vomachit как решение

Решение

Цитата Сообщение от vomachit Посмотреть сообщение
get(key, k)
return get(…)
1
2 / 2 / 0
Регистрация: 21.10.2018
Сообщений: 14
20.10.2019, 18:15  [ТС]
Конкретно в данном случае я не могу их не использовать.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.10.2019, 18:17
В данном случае вы как раз наткнулись на то почему так делать не надо. Вам вернуло не ключ одного из ваших словарей! Вам просто вернуло None так как функция закончилась ничем и выход из нее произощел в строке 10, а не 5. То есть это не 'None' а просто None (объект пайтон, а не строка)
0
2 / 2 / 0
Регистрация: 21.10.2018
Сообщений: 14
20.10.2019, 18:18  [ТС]
Спасибо большое.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.10.2019, 18:19
Кроме того, если судить по поведению функции и вашему удивлению, полагаю вы не до конца понимаете как работает рекурсия (а конкретно возврат к тому месту где был рекурсивный вызов)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2019, 18:19
Помогаю со студенческими работами здесь

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

Не работает рекурсия
Нужно было вычислить сумму цифр числа N с помощью рекурсии. #include <stdio.h> #include <conio.h> int func(int); int...

Как работает рекурсия?
Я не понял алгоритм работы рекурсии. Объясните пожалуйста, если можно, с примерами

Не работает рекурсия из примера
var n:integer; function F (n:integer):integer; begin if n > 2 then F:=F(n-1)+G(n-2) else F:= n; end; function G...

Как работает рекурсия?
Написал недавно метод, когда писал всё так было просто и понятно, сейчас просматриваю, и вот хоть убей не пойму как он проверяет условие...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru