函数的定义与使用
-函数的理解与定义
-函数的使用及调用过程
-函数的参数传递
-函数的返回值
-局部变量和全局变量
-lambda函数
1.函数的定义与使用
函数是一段具有特定功能的可重用的语句组
def <函数名>(<0个或多个非可选参数>,<带默认值的可选参数>): #如def fact(n,m=1):
<函数体>
return <返回值>
2.函数的使用及调用过程
<函数名>(<实际参数>)
3.函数的参数传递
参数可变的函数
def <函数名>(<非可选参数>,*b):
使用函数时,可以通过<参数名>=<值>的方式调用函数,如果只给参数的值,默认与 函数参数列表顺序对应
4.函数的返回值
函数可以不给return 或者return 不加任何信息,也可以返回多个值,用逗号分隔,返回值类型是元组,元组由小括号加逗号分隔
5.局部遍历和全局变量
函数内定义的变量叫做局部变量
函数外定义的变量叫做全局变量
局部变量和全局变量是不同变量
函数内局部变量在函数执行完会被释掉
函数内若想使用外部的全局变量,则在函数内需要用global关键字声明该变量名
例 n,s=10,100
def fact(n):
global s
for i in range(1,n+1):
s*=i
return s
print(fact(n),s) # 36288000 36288000
函数内调用的局部变量为组合数据类型且未在函数内重新创建,则等同于全局变量中该名字的全局变量
6.lambda函数
lambda函数返回函数名作为结果
lambda函数是一种匿名函数,用lambda保留字来定义
用于定义简单的,能在一行内表示的函数
<函数名> = lambda <参数> :<表达式>
例如 f=lambda x,y : x+y
f(10,15) #25
又如 f=lambda: "lambda函数"
print(f()) #“lambda函数”
建议别用lambda
七段数码管绘制
import turtle,time
def 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.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()
代码复用与函数递归
-代码复用与模块化设计
-函数递归的理解
-函数递归的调用过程
-函数递归实例解析
略
PyInstaller库的使用
PyInstaller 库是第三方库,需要预先安装
cmd命令行执行如下命令
pip install pyinstaller
通过cmd命令行 pyinstaller -F <文件名.py>
-h 查看帮助
--clean 清楚打包过程中的临时文件
-D,--onedir 默认值,生成dist文件夹
-F,--onefile 在dist文件中只生产独立的打包文件
-i <图标文件名.ico> 指定打包程序使用的图标(icon)文件
科赫雪花小包裹
#KochDrawV1.py
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=3
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
turtle.hideturtle()
main()