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

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爪金龙.死后重生.异世傲天 和你说的很像
百姓的历史名人 百姓的历史名人 (?-1815),清臣。字子颐,号菊溪。汉军正黄旗人。乾隆三十七年(1772)进士...
红军铺草地的故事? 红军铺草地的故事?红军过草地的故事是非常感人的,从20几万人过草地,通过草地的时候就只有两三万人了,...
有哪位朋友能推荐几部有关汉朝的... 有哪位朋友能推荐几部有关汉朝的书籍 , 谢谢啦《后汉书》《汉书》
崔胜贤 为什么叫塔塔 崔胜贤 为什么叫塔塔是因为他的艺名叫TOP(这个似乎是因为他是五个队员中个子最高的……),用中文标注...
我今天一时兴起去以前的按摩店去... 我今天一时兴起去以前的按摩店去按摩,我原本以为按摩不错,很舒服,可是那个按摩师力道比较重,搞到我没有...
死神漫画剧情 死神漫画剧情漫画已经到小乌和一护打了。情况对一护不是很好,井上为保护一护和小乌翻脸了~~后面未知后者...
求女主高冷厉害男主爱女主的灵异... 求女主高冷厉害男主爱女主的灵异小说剑王朝,男主似乎只爱女主一个,女主很强大,专一,高冷。我目前正在追...
谢公泛海 谢太傅是一个怎样的人 谢公泛海 谢太傅是一个怎样的人镇定,临危不惧谢公:指谢灵运他是个沉稳,冷静的人沉稳,冷静的人
林宥嘉翻唱过的所有歌曲 林宥嘉翻唱过的所有歌曲《你是我的眼》,《说谎》、《爱情是圆的》、《残酷月光》、《传说》、《伯乐》、《...
可以告诉我寂静岭系列有什么关联... 可以告诉我寂静岭系列有什么关联吗?它是怎么由来的?现实中真有寂静岭这个地方吗?现实是没有这个地方的,...