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

Не работает return

18.08.2019, 00:19. Показов 8021. Ответов 6

Студворк — интернет-сервис помощи студентам
Решал задачу на вывод N-го элемента из последовательности Фибоначчи
Допустим мне нужно вывести на экран третий элемент последовательности
Функция дважды рекурсивно вызывается, на третий раз она доходит до "return b" (20-я строка), но вместо выхода из функции почему-то заново обрабатывается рекурсивный вызов(18-я строка)....
Подскажите, по какой причине не происходит выхода из функции и присвоения переменной test значения переменной "b"

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n = int(input("Какое число Фибоначчи вывести? "))
n = 3 # Пусть мне нужно третье число Фибоначчи
num = 2
a = 0
b = 1
 
def Fib (n, a, b, num) :
    if n == 0 :
        return 0
    elif n == 1 :
        return 1
    else :
        c = b
        b += a
        a = c
        num += 1
        if num < n + 1 :
            Fib(n, a, b, num)
        else:
            return b
 
test = Fib(n, a=0, b=1, num=2)
print(test)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2019, 00:19
Ответы с готовыми решениями:

Почему не работает return?
import math y = int (input(&quot;Enter a value for y: &quot;)) x = int (input(&quot;Enter a value for x: &quot;)) if y == 1 or y == x: ...

Почему работает print и не работает return?
Добрый день! Помогите, пожалуйста, решить проблему. Этот код работает class Form{ public function input() { ...

Что это isOk(int s),setAge(int g){if(isOk(g){age=g;return true;}else{.;return false;}}.getName(){return name;}?
package com.company; import java.io.Serializable; public class person implements Serializable { protected String name; ...

6
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
18.08.2019, 00:38
Лучший ответ Сообщение было отмечено roman_sablin как решение

Решение

С этой ошибкой часто темы создают

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n = int(input("Какое число Фибоначчи вывести? "))
n = 3 # Пусть мне нужно третье число Фибоначчи
num = 2
a = 0
b = 1
 
def Fib (n, a, b, num) :
    if n == 0 :
        return 0
    elif n == 1 :
        return 1
    else :
        c = b
        b += a
        a = c
        num += 1
        if num < n + 1 :
            return Fib(n, a, b, num)
        else:
            return b
 
test = Fib(n, a=0, b=1, num=2)
print(test)
1
0 / 0 / 0
Регистрация: 18.08.2019
Сообщений: 6
18.08.2019, 00:49  [ТС]
Спасибо за ответ
Формально ваше исправление помогло, программа стала работать правильно, но во время отладки все равно вызывается 18-я строка.
Разве после return b отладчик не должен сразу покидать тело функции?
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
18.08.2019, 04:06
Цитата Сообщение от roman_sablin Посмотреть сообщение
Разве после return b отладчик не должен сразу покидать тело функции?
Нет, так как тут рекурсия, то сначала он должен выйти из всех вызванных функций
1
0 / 0 / 0
Регистрация: 18.08.2019
Сообщений: 6
18.08.2019, 04:16  [ТС]
Хм
Ну что ж, спасибо еще раз за ответы)
0
 Аватар для Valbort
33 / 21 / 5
Регистрация: 09.11.2015
Сообщений: 146
16.03.2023, 19:44
А в чём тут решение заключается? Ато я не могу найти отличий.
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
18.03.2023, 08:00
Цитата Сообщение от Valbort Посмотреть сообщение
Ато я не могу найти отличий.
строка 18, return
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2023, 08:00
Помогаю со студенческими работами здесь

Не работает return
Добрый день. Не понимаю почему не работает return. Если обращаюсь аргументом к массиву 1 уровня то все нормально, но когда перехожу на...

Не работает return в each()
Привет, друзья. Весь инет перекопал, так и не пойму, что не работает. Ниже скрипт с пояснениями: Есть форма и кнопка в ней: ...

Не работает return
Доброго времени суток! Сразу код: &lt;?php mysql_connect(&quot;localhost&quot;,&quot;root&quot;)or die(mysql_error()); ...

Не работает return
Я уже сутки пытаюсь понять, почему у меня не работает return. Возможно у меня уже взгляд замылился, или просто нелепицу пишу. В...

как работает return
#include &lt;iostream&gt; class A { public: A() :a(0) { std::cout &lt;&lt; &quot;simple constructor\n&quot;; } A(int a) :a(a) { std::cout &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru