函数
1函数定义和使用
1.1定义
函数可以理解为:IPO的实现和一代完整代码封装。
1.2 调用
实际参数替换函数中的形式参数。定义不执行,调用才执行。
1.3参数传递
参数传递指的是在函数调用的时候,怎么将实际的值给定到参数上。可以按照位置或明称方式传递。
!可选参数必须放在非可选参数之后。
1.4返回值
元组类型:(,)
列表类型: [,]
1.5局部变量和全局变量
局部变量是函数内部变量。
1.6 lambda函数
1.7小结
2 七段数码管实例
#七段数码管实例
import turtle , time
def drawGap():#绘制间隔
turtle.penup()
turtle.fd(5)
def drawline(draw):#单段数码管
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(d):#根据数字绘制数码管
drawline(True) if d in [2,3,4,5,6,8,9] else drawline(False)
drawline(True) if d in [0,1,3,4,5,6,7,8,9] else drawline(False)
drawline(True) if d in [0,2,3,5,6,8,9] else drawline(False)
drawline(True) if d in [0,2,6,8] else drawline(False)
turtle.left(90)
drawline(True) if d in [0,4,5,6,8,9] else drawline(False)
drawline(True) if d in [0,2,3,5,6,7,8,9] else drawline(False)
drawline(True) if d in [0,1,2,3,4,7,8,9] else drawline(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date):#获得输出的数字
turtle.color("red")
for i in date:
if i == "-":
turtle.write("年", font=("Arial",18,"normal"))
turtle.color("green")
turtle.fd(40)
elif i == "=":
turtle.write("月", font=("Arial",18,"normal"))
turtle.color("blue")
turtle.fd(40)
elif i == "+":
turtle.write("日", font=("Arial",18,"normal"))
else:
drawDigit(eval(i))#注意:通过eval()函数将数字变为整数
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()
3 代码复用与函数递归
3.1代码复用与模块化设计
高内聚低耦合
3.2递归
4 PyInstaller
5 科赫雪花
#科赫雪花
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():
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level = 2
koch(400,level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
turtle.hideturtle
turtle.done()
main()
(仅为嵩天老师慕课的听课笔记,侵删)