Python学习五函数代码的复用
函数和代码的复用
函数的定义和使用
定义:
- 一段具有特定功能,可复用的语句组
- 函数时一种功能抽象,表达特定的功能
- 作用:降低编程难度和代码的复用
- 只有被调用才会被执行
def <函数名>(<参数>):
函数体
return <返回值>
计算 n!
调用过程
a=fact(10):调用函数fact(n)用实际参数代替形式参数,将返回值赋值给a
参数传递
- 函数可以有参数,也可以没有参数
- 可选参数,即为某些参数提供默认值,非可选的参数必须放在前面。
def <函数名>(<非可选参数>,<可选参数>):
函数体
return <返回值>
对于可变参数的数量可以不确定,在函数调用时给出实际的参数
函数调用时,参数可以按照位置或者名称方式进行传递
返回值 - 函数可以返回0或者多个返回值
- 函数也可以没有返回值
局部变量和全局变量
在函数外部定义的变量为全局变量
在函数中定义的变量为局部变量
使用规则 - 局部变量是函数内部的占位符,与全局变量可能重名但不同
- 函数运算结束后,局部变量被释放
- 可以使用global保留字在函数内部使用全局变量
如果某全局组合数据类型在函数内被重新创建,那么该组合数据类型就是局部变量,函数结束后,就会被释放,而其结果还是全局变量的值。
lambda函数
一般情况,用def定义普通函数
实例:七段数码管的绘制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
得到的文件是规定了图标的可执行文件。
也可以直接执行py
7ff7
installer -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()))
- python学习-第五课时-函数和代码复用
- 笨方法学习Python-习题18: 命名、变量、代码、函数
- Python123测验5: 函数和代码复用 (第5周)
- 少说话多写代码之Python学习036——创建函数02(函数的注释)
- Python初学FOUR——函数与代码复用
- Python123测验5: 函数和代码复用 (第5周)
- Learn Python The Hard Way学习(18) - 命名,变量,代码,函数
- js深入学习-回调函数之代码复用
- 三儿的Python菜鸟历程--05--Python函数以及代码复用(理论笔记)
- Python学习笔记·代码复用(函数)
- python_day2_学习代码(循环结构、函数、文件、猜数字游戏、按照value排序,返回一个排好序的字典等)
- Python 第三周① 函数和代码复用
- 【代码学习】PYTHON 函数
- 学习 | Python之函数——实现代码抽象的利器
- python学习第八章函数部分课后练习自己尝试的代码
- 少说话多写代码之Python学习038——创建函数04(函数的使用 )二分法查找
- 少说话多写代码之Python学习040——类02(类的函数和方法 )
- python学习笔记02 列表qlist提供的一系列应用函数如append,insert,index,remove的用法及代码实现
- Python_note5 函数和代码复用+PyInstaller库+数码管绘制
- 少说话多写代码之Python学习037——创建函数03(函数的使用 )递归