【Python】八、函数的使用
创始人
2024-02-24 16:30:57
0

文章目录

  • 实验目的
  • 一、定义函数
  • 二、调用函数
  • 三、参数的传递和函数的返回值
  • 四、编写函数,输入不同的参数,绘制不同的科赫曲线
    • 参考代码
    • 实验截图


实验目的

  1. 掌握函数的定义和调用;
  2. 掌握函数的用法;
  3. 理解递归;
  4. 培养学生动手查阅资料能力和解决实际问题的能力和团队合作能力。

一、定义函数

       在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。
定义函数的三种形式:
一、无参函数
       定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名
       在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。
       如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。

def func():print('hello nick')func()  # hello nick

二、有参函数
       在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。
       如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。

def sum_self(x, y):"""求和"""res = x+yprint(res)sum_self(1,2)  # 3

三、空函数
       当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数,然后先实现其他的功能。

def func():Pass

二、调用函数

       和C++一样,Python中函数的定义必须在调用的前面,但是在函数的内部调用一个函数,不用考虑函数的顺序,只要被调用的函数被定义了即可。
一、先定义后,后调用为一般方法:

def  add_test(a,b):return a+b
result  =  add_test(1,2)
print(result)

二、可以在函数内部调用后面的函数

def add_1(a,b):return add_2(a,b)   #函数内部调用add_2
def add_2(a,b):return a+b
print ('add_1的调用:',add_1(1,2))   #3
print('add_2的调用:',add_2(2,3))    #5

三、不可以先调用后定义

print("add的调用",add(a,b))
def  add(a,b):return a+b

三、参数的传递和函数的返回值

函数:封装功能独立的代码,在需要时通过函数名被调用
参数:外界希望在函数内部处理的数据
a、位置参数:
实参的位置和形参保持一致,按形参声明的先后顺序一一赋值。
b、关键字参数:
调用函数的时候以 形参=实参的方式来传参,这个时候实参的顺序无所谓

函数根据有无参数和返回值,可以相互结合,共有4种组合形式

1.无参数,无返回值
2.无参数,有返回值
3.有参数,无返回值
4.有参数,有返回值

1、什么是返回值
a、返回值就是函数调用表达式的值,就是return关键字后面的表达式的值。返回值就是将函数里面的数据传递到函数外面。
b、Python中每个函数都有返回值,默认是None,如果遇到return ,return 后面是什么返回值就是什么。
return功能
确定函数的返回值
结束函数,执行时遇到return,函数直接结束,并且将return后面的值作为函数返回值。

2、多个返回值
return 值1, 值2, 值3… 相当于返回一个元祖

def fun3():return 1, 2, 3fun3()
print(type(fun3()))

3、怎么确定函数是否需要返回值
函数执行完成后是否产生新的数据,如果产生新的数据就将这个数据用return返回。


四、编写函数,输入不同的参数,绘制不同的科赫曲线

参考代码

import turtle  # 引入决解问题需要的工具——turtle作图包# 定义turtle画笔和画布的参数
def huabi(i, h):if i == 6:turtle.pencolor('red')turtle.speed(0)  # speed()参数有[0,10]:“0”特殊、代表最快速度,其余[1,10]值越大、速度越快elif i == 5:turtle.pencolor('blue')turtle.speed(10)elif i == 4:turtle.pencolor('purple')turtle.speed(8)elif i == 3:turtle.pencolor('pink')turtle.speed(6)elif i == 2:turtle.pencolor('green')turtle.speed(4)else:turtle.speed(2)turtle.pensize(2)  # 设置画笔宽度为2turtle.setup(800, 1200, 100,10)  # setup()参数有4个:前两个代表画布的“宽”和“高”,当数值为整数时、表示绝对像素大小,当小数时、表示站屏幕的比例。后两个可以省略,默认为屏幕中心位置,代表距离“屏幕左上角”的距离,单位是像素密度,turtle.penup()  # 抬起画笔,之后的画笔动作、就不会产生图线turtle.goto(-300, h)  # 以画布中心点为坐标原点(0,0),将画笔移动到坐标(-300,100)处turtle.pendown()  # 落下画笔,以便画图# 定义“尖”
def koch(size, n):if n == 0:  # 0阶的科赫雪花曲线就是一条线,大小为输入的“size”turtle.fd(size)else:  # 高阶科赫雪花曲线for i in [0, 60, -120, 60]:  # turtle在“尖”的四条线上改变的角度,分别为0°,60°,-120°,60°turtle.left(i)  # 对应上边四个角度,一共需要转4次弯,画出本阶的四条线,koch(size / 3, n - 1)  # 每个角度下的一个边,对应低一阶的客户雪花曲线的“尖”;至此完成函数本身的循环和复用,自动画出一个完整的n阶“尖”# 定义main()主函数
def main():  # 设定参数接口size = int(input("请输入尺寸:"))h=int(input("请输入高:"))for i in range(1, 7):h = h - 150huabi(i, h)koch(size, i)main()  # 在设定参数之后,调用主函数

实验截图

在这里插入图片描述


相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...