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)

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

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...