def <函数名> (参数[一个或多个]):
<函数体>
return <返回值> #函数的定义
函数可以有参数,也可以没有,但是必须保留括号;函数定义的时候可以为某些参数指定默认值,构成可选参数
def <函数名> (非可选参数,可选参数):
<函数体>
return <返回值> #可选参数必须放在非可选参数的前面
def fact(n,m=1):
s=1
for i in range(n):
s*=i
return s//m #m为可选参数
可变参数传递
def <函数名> (<参数>,*b):
<函数体>
return <返回值> #可变参数传递
函数调用时,参数可以按照位置或名称方式传递,函数的可以有返回值,也可以没有,可以返回多个结果,
全局变量和局部变量,局部变量可以和全局变量一样,但是他们是不一样的,局部变量在函数运行完之后会被释放。
使用global保留字,在函数中使用global保留字,表示这个变量是全局变量
局部变量为组合数据类型且未创建且没有用global保留字,等同于同名的全局变量。
<函数名>=lambda<参数> :<表达式>
f=lambda x,y:x+y
f=lambda :"hehie" #用于定义简单的能在一行内表达的函数
import turtle #八段数码管
import 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.pencolor("blue")
turtle.fd(40)
elif i=='+':
turtle.write('日',font=("Arial",18,"normal"))
else:
drawdigit(eval(i))
def main():
turtle.setup(800,350)
turtle.penup()
turtle.fd(-300)
turtle.pensize(5)
drawdate(time.strftime('%Y-%m=%d+',time.gmtime()))
turtle.hideturtle()
turtle.done()
main()
PyInstaller库的使用:这个库可以把.py源代码转换成无需源代码的可执行文件
安装第三方库用pip指令
pip install pyinstall #PyInstaller库的安装
pyinstaller -F <文件名>.py #把.py文件打包为exe可执行程序
递归