pycharm——python,问题出在哪儿

代码能跑但是报错

# -*- coding:utf-8 -*-
import turtle
turtle.color('Blue')
turtle.setup(800, 500)
turtle.penup()
turtle.goto(-300, 100)
turtle.pendown()
turtle.pensize(3)
a = [0, 60, -120, 60]

def koch(len, n, anglelist):
    """
    绘制n阶科赫曲线
    :param len: 边长
    :param n: 阶数
    :param anglelist: 角度列表
    :return: 空
    """
    if n == 0:
        turtle.fd(len)
    else:
        for angle in anglelist:
            turtle.left(angle)
            koch(len / 3, n - 1, anglelist)


koch(300, 3, a)
turtle.penup()
turtle.goto(-300, 0)
turtle.pendown()
koch(300, 4, a)
turtle.penup()
turtle.goto(-300, -100)
turtle.pendown()
koch(300, 5, a)
turtle.done()


报错:
D:\python\venv\Scripts\python.exe D:\python\科赫曲线.py
Traceback (most recent call last):
File "D:\python\科赫曲线.py", line 35, in
koch(300, 5, a)
File "D:\python\科赫曲线.py", line 24, in koch
koch(len / 3, n - 1, anglelist)
File "D:\python\科赫曲线.py", line 24, in koch
koch(len / 3, n - 1, anglelist)
File "D:\python\科赫曲线.py", line 24, in koch
koch(len / 3, n - 1, anglelist)
[Previous line repeated 1 more time]
File "D:\python\科赫曲线.py", line 23, in koch
turtle.left(angle)
File "", line 8, in left
File "C:\Users\86180\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 1700, in left
self._rotate(angle)
File "C:\Users\86180\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 3278, in _rotate
self._update()
File "C:\Users\86180\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 2661, in _update
self._update_data()
File "C:\Users\86180\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 2647, in _update_data
self.screen._incrementudc()
File "C:\Users\86180\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 1293, in _incrementudc
raise Terminator
turtle.Terminator

Process finished with exit code 1

我在我的电脑上运行没有问题。

考虑是不是栈溢出。因为画科赫雪花需要大量递归,递归会占用大量栈空间,如果栈的大小不够就容易栈溢出从而导致程序退出。

一个简单的方法可以验证是不是栈溢出,将koch(300, 5, a)注释掉,看运行会不会报错。因为5阶科赫雪花递归深度很深。

如果确认是栈移除,那在将运行环境的栈开大一点(我不清楚你的运行环境是怎样的)