函数的定义和使用
定义:
def <函数名>(<参数>):
函数体
return <返回值>
计算 n!
调用过程
a=fact(10):调用函数fact(n)用实际参数代替形式参数,将返回值赋值给a
参数传递
如果某全局组合数据类型在函数内被重新创建,那么该组合数据类型就是局部变量,函数结束后,就会被释放,而其结果还是全局变量的值。
lambda函数
实例:七段数码管的绘制turtle绘图体系
用七段数码管绘制时间:
模块化思维:确定模块接口,封装功能
规则或思维:抽象过程为规则,计算机自动执行
化繁为简:将大功能分解为小功能,在进行组合。
函数的代码复用与递归
递归本身就是一个函数,
利用分支,用基例和链条分别代码实现
斐波那契数列的求解
f(n)=f(n-1)+f(n-2)
def f(n):
if n==1 or n==2:
return 1
else:
return f(n-1)+f(n-2)
汉若塔问题的递归
count=0
def haoi(n,src,dst,mid):
global count
if n==1:
print("{}:{}->{}".format(1,src,dst))
count +=1
else:
haoi(n-1,src,mid,dst)
print("{}:{}->{}".format(n,src,dst))
count+=1
haoi(n-1,mid,dst,src)
pyinstaller库的使用
在Windows平台下饿cmd命令行下安装,或者在Linux下安装
打开cmd命令行:执行命令 :pip install pyinstaller
程序会自动下载安装
安装成功后会有successful installed的提示
pyinstaller库的使用
一定要在cmd下执行
七段数码管程序的运行:在dist文件中会有一个与文件名同名的文件,打开即可执行
pyinstaller参数使用
打包后的程序可以在没有pyinstaller的环境下直接执行
程序的打包过程,先找到一个图标文件,后缀名为.ico,将其放在源程序同一个目录下,执行pyinstaller -i curve.ico -f sevendigitsdrawv2.py
得到的文件是规定了图标的可执行文件。
也可以直接执行pyinstaller -F sevendigitsdrawv2.py
就会在dist文件夹中生成一个与源程序同名的可执行文件。
该文件可以在没有安装pyinstaller的电脑上运行
柯赫雪花小包裹
#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():
turtlr.setup(800,400)
turtle.penup()
turtle.goto(-300,-50)
turtle.pendown()
turtle.pensize(2)
koch(600,3) #3阶柯赫曲线,长度为600
turtle.hideturtle() #海龟的隐藏
main()
柯赫雪花的绘制将柯赫曲线组合起来即可
#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():
turtlr.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=3
koch(400,level) #3阶柯赫曲线
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle() #海龟的隐藏
main()
获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。
注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。
def prime(m):
for i in range(2,int(pow(m,0.5)+1)):
if m%i==0:
return False
else:
return True
n = eval(input())
if n != int(n): # 因为可能输入有浮点数
n = int(n) + 1
else: # 保证输入5.0时,输出为整数5。这里只根据题目中只输入正浮点或者正整数时做的处理
n = int(n)
count = 5
while count > 0:
if prime(n):
if count > 1:
print(n, end=',')
else:
print(n)
count -= 1
n += 1
请根据编程模板补充代码,计算任意个输入数字的乘积。
注意,仅需要在标注…的地方补充一行或多行代码。
def cmul(a,*b):
s=a
for i in b:
s*=i
return s
print(eval("cmul({})".format(imput()))