Python——函数
admin
2024-03-22 14:37:45

1、函数定义

def 函数名(形参1,形参2):函数体return 返回值   #return 不是必须的

2.函数的调用

函数名(实参1,实参2)   # 实参与形参个数一样

或者

返回值 = 函数名(实参1,实参2)   # 实参与形参个数一样

注意:函数得先定义,后调用

3.实例

  • 求和函数
# 定义一个求和函数
def calcSum(begin,end):theSum = 0for i in range(begin,end+1):theSum += iprint(theSum)# 调用函数
# 求1-100的和
calcSun(1,100)
  • 打印
def test():print('hello')print('world')
# 两次调用
test()
test()

4.函数参数

形参与实参个数一致,类型不受限制,但是实参类型需一致

def add(a,b):return a + bprint(add(2,3))
print(add(2.5,3.2))
print(add('hello','world'))

5.函数的返回值

打印逻辑放在函数外,这种更常用,利于和用户交互

# 定义一个求和函数
def calcSum(begin,end):theSum = 0for i in range(begin,end+1):theSum += ireturn theSum# 调用函数
# 求1-100的和
result = calcSun(1,100)
print(result)
  • 多个返回值,一般搭配分支语句/循环语句
def isOdd(num):if num % 2 == 0:return Falseelse:return Trueprint(isOdd(10))
  • 一次性返回多个值,
def getPoint():x = 1y = 2return x,y
a,b = getPoint()   # 多元赋值
_,b = getPoint()   #值需要y,不需要x

6.变量的作用域

  • 局部变量只在函数内有效,全局变量在整个程序有效
x = 20
def test():x = 10print(x)
test()   # 10
print(x)  # 20
  • 在函数中也可定义全局变量
def test():global x = 10
test()  
print(x)  # 10

7.函数的执行过程

调试执行:可随时停下来,观察中间过程
代码单步运行:step into

8.函数链式调用

用一个函数的返回值作为另一个函数的参数

def isOdd(num):if num % 2 == 0:return Falsereturn Truedef add(x,y):return x + yprint(isOdd(add(2,3)))

9.函数的嵌套调用

一个函数体的内部还可以调用其它函数

def test1():print('hello')def test2():print('world')test1()test2()

10.函数递归

  • 一个函数,自己调用自己
  • 递归代码两因素:递归结束条件、递推公式
  • 递归缺点:执行过程复杂、容易出现”栈溢出“
  • 递归代码一般可以转换成等价的循环代码,循环代码一般更有优势
  • 递归优点:代码简单
# n!
def factor(n):if n == 1:return 1return n * factor(n - 1)
print(factor(5))

n为局部变量,局部变量在函数的栈帧

11.参数默认值

debug:形参的默认值,带有debug,可以在调用函数的时候不必传参(注意:只能在形参列表的最后)

def add(x,y,debug=False):if debug:print(f'x = {x},y = {y}')return x + yresult = add(10,20)  # 不开启调试
result = add(10,20,True)   # 为True则开启调试
print(result)

12.关键字参数

  • 顺序传参/位置传参
def add(x,y):return x + y
print(add(2,3))
  • 关键字传参
def test(x,y):print(f'x = {x}')print(f'y = {y}')
test(x = 10,y = 20)
test(y = 2,x = 1)

注意:位置传参和关键字传参混合使用时,要求位置参数在前,关键字参数在后

相关内容

热门资讯

17道 特色旺销菜 恰恰茄子 原料: 糯长茄200克,香菜3克。 调料: 秘制茄子酱40克。 制作: 1.将长茄去皮后...
西藏攻略:7天6晚经典路线,带... 每年5月至10月,是西藏的季节,也是游客最多的时段。最近我们收到很多朋友的咨询:“次来西藏,只有7天...