🌴 2022.04.15 下午
文章目录
前言
🎬本文章是 【Python语言基础】 专栏的文章,主要是上课的随堂笔记与练习
🔗Python专栏 传送门
💻提示:本文的环境配置是Python3的开发环境。目录顺序以当堂内容(教材)为准,所以并非“1、2、3”
📽本节主要内容:学习Python函数的使用
5 函数
5.1 函数定义和调用
🚀 函数定义
函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段
函数的使用能提高应用的模块性、代码的重用率和可读性Python提供了许多内建函数,如
input()
、print()
等函数,可以直接在程序中使用,当Python提供的内建函数不能满足要求时,需要用户自定义函数用户自定义函数的一般格式为:
def 函数名([参数1,参数2,…]):
"""函数说明"""
函数体
def myHello():
return "Hello, everyone!"
#myHello()函数的返回结果为"Hello, everyone!"
🚀 函数调用
函数定义完成后,就可以在程序中调用了,函数调用时需要指出函数名称,并传入相应的参数
函数调用时传入的参数称为实际参数,简称实参
在默认情况下,函数调用时传入的实参个数、顺序等必须和函数定义时形参的个数、顺序一致
函数调用时的执行顺序如下:
- 执行函数调用前的语句
- 执行函数调用,运行被调用函数内的语句,并返回相应结果
- 执行函数调用后的语句
定义一个求梯形面积函数并调用
#定义函数.
def echelonArea(top,bottom,height): #3个形参:top上底,bottom下底,height高
area = 1 / 2 * (top + bottom) * height #计算梯形面积
return area
if __name__ == "__main__":
t = 3.6; b = 6.2; h = 4.5
area1 = echelonArea(t,b,h)
print("area1 =",area1)
area2 = echelonArea
print("area2 =",area2(t,b,h))
'''
area1 = 22.05
area2 = 22.05
'''
5.2 函数参数
5.2.1 参数传递
定义一个函数Swap(x,y),实参为数字类型。在函数Swap(x,y)中交换2个形参的值,观察函数外面的实参变化情况
#定义函数
def Swap(x,y): #2个形参:x、y
print("交换前:x = %d, y = %d"%(x,y))
x,y = y,x #交换2个形参(x、y)的值
print("交换后:x = %d, y = %d"%(x,y))
a = 5; b = 6 #定义变量a、b
print("调用前:a = %d, b = %d."%(a,b))
Swap(a,b) #调用函数Swap()
print("调用后:a = %d, b =%d."%(a,b))
'''
调用前:a = 5, b = 6
交换前:x = 5, y = 6
交换后:x = 6, y = 5
调用后:a = 5, b = 6
'''
由此可见,和C++、JAVA同理,形参的改变不会影响实参
定义一个函数
changeList(myList)
,实参为列表。在函数调用中给列表myList添加了一个新元素,观察函数外面的实参变化情况
#定义函数
def changeList(myList):
myList.append(4)
list1 = [1,2,3]
print("调用前list1:",list1)
changeList(list1)
print("调用后list1:",list1)
'''
调用前list1: [1, 2, 3]
调用后list1: [1, 2, 3, 4]
'''
不可变类型: 类似 C++ 的值传递,如整数、字符串、元组。如
fun(a)
,传递的只是 a 的值,没有影响 a 对象本身。如果在 fun(a) 内部修改 a 的值&