函数和代码复用
函数的定义和使用
def <函数名> ( <参数(0个或多个)> ): <函数体> return <返回值> 可选参数放在不可选参数之后 *b不定参数 lambda函数返回函数名(特殊情况使用) <函数名> lambda <参数> : <表达式>表达式> 参数> 函数名> 返回值> 函数体> 参数(0个或多个)> 函数名>
七段数码管绘制
import turtle,timedef drawGap(): turtle.penup() turtle.fd(5)def drawLine(draw): drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90)def drawDigit(digit): drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20)def drawDate(date): turtle.pencolor("red") for i in date: if i == '-': turtle.write("年",font=("Arial",18,"normal")) turtle.pencolor("green") turtle.fd(40) elif i == '=': turtle.write("月",font=("Arial",18,"normal")) turtle.pencolor("purple") turtle.fd(40) elif i == '+': turtle.write("日",font=("Arial",18,"normal")) else: drawDigit(eval(i))def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate(time.strftime("%Y-%m=%d+",time.gmtime())) turtle.hideturtle() turtle.done()main()
代码复用与函数递归
函数
对象:属性和方法,在函数之上
count = 0def hanoi(n,src,dst,mid): global count if n == 1: print("{}{}->{}".format(1,src,dst)) count+=1 else: hanoi(n-1,src,mid,dst) print("{}{}->{}".format(n,src,dst)) count+=1 hanoi(n-1,mid,dst,src)hanoi(50,"A","B","C")print(count)
PyInstaller库的使用
-h 查看帮助
--clean 清理打包过程中的临时文件
-D,--onedir 默认值,生成dist文件夹
-F,--onefile 在dist文件夹中只生成独立的打包文件
-i<图标文件名.ico> 指定打包程序使用的图标文件
pyinstaller -i curve.ico -F SevenDigitsv1.py
科赫雪花小包裹
#KochDrawV1.pyimport turtledef 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(): turtle.setup(600,600) turtle.penup() turtle.goto(-200,100) turtle.pendown() turtle.pensize(2) level = 3 # koch(400,level) turtle.right(120) koch(400,level) turtle.right(120) koch(400,level) turtle.hideturtle()main()