科赫雪花绘制- -Python + pyinstaller 打包 生成可执行程序

科赫雪花绘制- -Python + pyinstaller 打包 生成可执行程序

科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例。科赫曲线是出现在海里格·冯·科赫的论文中,是分形曲线中的一种。(百度百科)

代码目标:绘制一个由三阶的科赫曲线构成的雪花
cmd命令目标:
1、导入第三方库 pyinstaller
2、打包代码,将其转成可执行文件(同时把自己找的name1.ico格式的图标作为可执行文件的图标)。
我个人是生成了名为 pycache、build、dist 三个文件夹,和一个name2.spec文件。其中那个可执行文件在 dist 里

个人流程如下:(仅供参考)
step_1、打开Pycherm(其他编程软件也行)
step_2、新建一个名为 name2.py的文件(name2是自己给文件起的名)
step_3、在name2.py中敲Python代码(参考代码在下面)
step_3.1 如果之自己以前没有导入 pyinstaller 第三方库的话,打开电脑的cmd,直接敲命令 pip install pyinstaller ,稍等完成即可,之后Pycharn会导入这个库 。关闭 cmd 窗口
step_4、运行一下自己敲完的 name2.py看看是否能正常运行并在画布上画出一朵雪花
step_5、自己在网上下载一个ico文件,命名为name1(自己起初把一个图片转成bmg格式后改后缀为ico后在进行installer 命令最后失败,cmd报出 Invalid argument :参数错误,之后自己下载了一个妥妥的ico格式文件后来重新搞一遍就正常了)
step_6、把name1.ico 和 name2.py分别复制,粘贴在自己一个新建的文件夹下
step_7、打开 cmd ,先使用 cd 命令移动盘符到自己在step_6里新建的文件夹下(因为一般刚打开cmd是当前目录在C盘,比如我的是C:\WINDOWS\system32> ,而我在step_6中新建的文件夹在D盘下的某个文件夹下)
step_8、cd 完成后 输入命令 installer -i name1.ico -F name2.py即可
step_9、打开自己在step_6中新建的文件夹中的dist文件夹,可以看见有一个里面有一个名为 name2.exe的文件,鼠标双击–神奇的事情就发生了,会弹出画布,自动开始画–科赫雪花
step_10、完结–撒花
最后画布上的科赫雪花效果图如下:
科赫雪花绘制- -Python + pyinstaller 打包 生成可执行程序_第1张图片
代码如下(代码来源于慕课–Python程序设计-嵩天老师)
我在原来的代码中有一处修改,另外注释是自己的

# PyInstaller 库的使用 属于第三方库,需要先安装
# cmd 下直接 打命令 pip install pyinstaller 即可
# cmd 命令行下 使用cd命令 移动到 自己电脑存有  name1.ico图标和name2.py文件 的文件夹下(我是把这两个文件放在一个文件夹下来测试学习^_^)
# 之后使用命令 installer -i name1.ico -F name2.py 即可
# 在生成的dist文件夹下,就有图标为name1.ico的可执行文件
# 注意 .ico 文件最好直接去下载,不要自己转化
#(因为自己把.jpg格式的图片自己先转成bmg格式后修改后缀为.ico,使用命令后报出参数错误)
import turtle
#关键的的递归函数
def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0,60,-120,60]:
            turtle.left(angle)
            koch(size/3,n-1)
def main():
    # 本句原来在 main 函数最后一句,用于隐藏海龟箭头,实际位置不对
    # 应该写在开头,事实证明 应该写在开头
    turtle.hideturtle()
    turtle.setup(600,600)
    turtle.penup()
    turtle.goto(-200,100)
    turtle.pendown()
    turtle.pensize(2)
    #koch(600,3)
    level = 3
    #可以使用三段科赫曲线围成构成一个雪花
    koch(400,level)
    turtle.right(120)
    koch(400, level)
    turtle.right(120)
    koch(400, level)
main()

你可能感兴趣的:(Python)