更换pip源到国内镜像
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
tkinter打包exe
1.安装pyinstaller
pip install pyinstaller
若安装请跳过。
2.打包
window系统win+R打开cmd,
切换到需要打包的文件(koi.py)目录。cd C:\Project\pythonGUI>
执行pyinstaller -F -w koi.py
-F 打包后生成一个exe,生成的exe在子目录dist中。
-w表示窗口,无控制台
3.更改exe图标
将图片转换为ico格式
http://www.bitbug.net/
pyinstaller -F -w -i koi.ico koi.py
koi.ico 需要与koi.py同一目录下,生成dist需要进行刷新
异常处理
什么是异常?
因为在程序执行时,异常报错提示可能会影响到输出结果的显示,此时就可以使用try:…except:…进行异常处理,将错误直接输出打印,而不是以报错的形式显示。
*args是什么鬼
来自:https://www.cnblogs.com/cwind/p/8996000.html
让我们通过以下5步来理解:
- 通过一个函数调用来理解’*’的作用
- 通过一个函数的定义来理解’*args’的含义
- 通过一个函数的调用来理解’**’的作用
- 通过一个函数的定义来解’**kwargs’的含义
- 通过一个应用实例来说明’args’,’kwargs’应用场景以及为何要使用它
通过一个函数调用来理解’*’的作用
定义一个含三个位置参数的函数”fun”.
1 | def fun(a,b,c): |
传三个位置参数调用此函数
1 | fun(1,2,3) |
可以看到出入三个位置参数调用此函数,会打印出三个参数
现在我们定义一个含三个整数的数列,并使用’*’
1 | l = [1,2,3] |
‘*’ 做了什么?
它拆开数列’l’的数值作为位置参数,并吧这些位置参数传给函数’fun’来调用。
因此拆数列、传位置参数意味着fun(*l)与fun(1,2,3)是等效的,因为l = [1,2,3]。
试着数列中使用其他数值
1 | l = [4,8,0] |
接下来我们试着在数列中放四个数值,调用函数会出现什么情况呢
1 | l = [3,6,9,1] |
在这次调用中我们并没有得到合适的结果,触发了TypeWrror异常。很容易看到错误内容”fun() takes exactly 3 arguments (4 given)”.
为什么会发生这种情况呢?
数列’l’含有四个数值.因此,我们试图调用’fun(l)’,’l’中数值拆开传给函数fun作为位置参数。但是,’l’中有四个数值,调用’fun(l)’相当于调用’fun(3,6,9,1)’,又因为函数’fun’定义中只用三个位置参数,因此我们得到这个错误。同理,同样的步骤,数列’l’中有两个数值情况,注意error内容。
1 | l = [7,4] |
‘*l’与位置参数混合使用
1 | fun(23, *l) |
在这里,我们给出一个位置参数23,和从数列’l’拆除的两个数值7和4,因此三个参数23,7和4传给了函数’fun’
python中全局变量与局部变量
- 局部变量就是定义在一个函数体内部的变量
- 全局变量是定义在外面的变量
比如:
1 | a = 1 |














