一、函数的定义
二、函数的调用
三、形参和实参
(1)形参:函数定义时的参数(变量名称)
(2)实参:函数调用时的参数(具体值)
(3)传递:一定是实参传递给形参
四、案例:绘制七段电子数码管时间
0、导入库模块
In [ ]:
import turtle #导入turtle画图库,其方法前面必须添加库名 from turtle import * #导入turtle换图库,其方法前面一定不能添加库名 from random import * #导入random随机库,其方法前面一定不能添加库名 import time #导入time时间库,其方法前面必须添加库名
1、绘制单段间隔
In [ ]:
def drawGap(): penup() #将画笔设置成飞行模式 fd(5) #将画笔向前行进5像素
2、绘制单段数码管
In [ ]:
def drawLine(draw): drawGap() #调用间隔函数 if draw: pendown() #将湖北设置成画图(工作)模式 else: penup() fd(40) #画笔向前行进40像素 drawGap() #第2次调用间隔函数 right(90) #将画笔向右(前进向下)旋转90度
3、绘制单个数字
In [ ]:
def drawDigit(digit): #绘制第1段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) #用if表达式判断画与不画 #绘制第2段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) #用if表达式判断画与不画 #绘制第3段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) #用if表达式判断画与不画 #绘制第4段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,2,6,8] else drawLine(False) #用if表达式判断画与不画 left(90) #将画笔向上(前进向左)旋转90度 #绘制第5段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) #用if表达式判断画与不画 #绘制第6段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) #用if表达式判断画与不画 #绘制第7段 pencolor(random(),random(),random()) #设置绘制每一段数码管的画笔颜色 drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) #用if表达式判断画与不画 left(180) #将画笔旋转180度(前进反方向) penup() #将画笔设置飞行模式 fd(20) #将画笔前进20像素
4、获取绘制的时间和数字
In [ ]:
def drawData(date): for i in date: #drawDigit(eval(i)) #将输入或获取的时间字符转换成数值类型并循环打印\ if i =='-': write('年',font=("楷体",20,"normal")) fd(40) elif i =='-': write('年',font=("楷体",20,"normal")) fd(40)
5、编写主函数(设置画布和画笔的属性)
In [40]:
def main(): setup(1500,350,0,200) #设置画布的宽和高以及原点坐标 bgcolor('black') #画布的颜色为黑色 speed(200) #画笔工作的速度为200Ps pensize(5) penup() fd(-600) #将画笔反方向移动600像素 #drawData(input('请输入你的生日日期:')) #请输入函数drawData,从键盘上输入时间数字 time,strftime('%Y-%m=%d+%H:%M*%S$') hideturtle() #隐藏画笔 done() #关闭画图功能
In [34]:
time.time()
Out[34]:
1697598866.6209726
In [36]:
time.localtime()
Out[36]:
time.struct_time(tm_year=2023, tm_mon=10, tm_mday=18, tm_hour=11, tm_min=15, tm_sec=50, tm_wday=2, tm_yday=291, tm_isdst=0)
In [42]:
time.strftime('%Y年%m月%d日%M分%S秒')
Out[42]:
'2023年10月18日21分22秒'
6、调用主函数
In [ ]:
if __name__ == '__main__': #如果主函数为脚本代码执行下面函数 main()
In [ ]: