Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2017 22:18:56

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

 import random
import sys
print(sys.getrecursionlimit())
sys.setrecursionlimit(40000)
print(sys.getrecursionlimit())
g = []
for i in range(200):
    b = random.randint(0, 1241)
    g.append(b)
def sorter():
    global g
    for i, k in enumerate(g):
        try:
            if g[i] > g[i + 1]:
                g[i], g[i + 1] = g[i + 1], g[i]
                return sorter()
        except IndexError:
            break
sorter()
print(g)

Пытался создать что то похожее на метод sort() и столкнулся с интересным поведением змеи. При запуске этого кода на моём пк интерпретатор выдаёт вот такую ошибку:
 Process finished with exit code -1073741571 (0xC00000FD)
Причём пишет только это, никакой трэйсбэк не вылетает и красные слова тоже. Решил запустить через онлайн компилятор - всё заработало прекрасно и ошибки никакой не было.

Почему так?



Лучший учитель - это ты сам.

Отредактировано Djo0513 (Сен. 20, 2017 22:19:57)

Офлайн

#2 Сен. 21, 2017 00:16:32

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

Вы гуглить видимо совсем не пробовали. Подумали что нашли что то сверх неординарное и надо быстрее показать это сообществу. Однако первая же ссылка в гугле расставляет все на места - StackOverflow.com

P.S. у меня работает



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Сен. 21, 2017 00:17:44)

Офлайн

#3 Сен. 21, 2017 13:41:00

Djo0513
Зарегистрирован: 2016-09-02
Сообщения: 92
Репутация: +  0  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

JOHN_16
Не все родились с пониманием английского. Я смотрел на stack overflow, но кроме того что надо подключать потоки ничего не понял, поэтому я задал вопрос сюда, чтоб меня разъяснили.

Это точно раздел для новичков?



Лучший учитель - это ты сам.

Офлайн

#4 Сен. 21, 2017 14:02:37

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

Djo0513
Не все родились с пониманием английского.
а есть кто-то, кто родился с пониманием английского?

Отредактировано WoMax (Сен. 21, 2017 14:03:20)

Офлайн

#5 Сен. 21, 2017 15:07:03

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2728
Репутация: +  183  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

> Не все родились с пониманием английского.

Не вижу никаких проблем: http://translate.google.ru/



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Сен. 21, 2017 15:11:40

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Рекурсия и мой компьютер

Djo0513 Если вкратце то 0xC00000FD это переполнение стека (stack owerflow)
тут https://msdn.microsoft.com/en-us/library/cc704588.aspx можно посмотреть все коды ошибок корпорации зла MS.
по ссылке на StackOverflow, котороую вам дал JOHN_16, советуют увеличить размер стека.
По той же ссылке рекомендуют использовать threading где этот размер можно указать ручками threading.stack_size() при создании новой нити.
но можете использовать CreateThread из winAPI https://msdn.microsoft.com/en-us/library/windows/desktop/ms682453%28v=vs.85%29.aspx или любое другое решение которое посчитаете приемлимым.

Djo0513
Не все родились с пониманием английского.
Надо бателька стараться, если хотите заниматься програмированием, без этого никак.
ЗЫ да у меня тоже все работает , не вызывая перепонения стека.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 21, 2017 15:12:57)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version