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)

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

相关内容

热门资讯

5223人次!中越边境河口口岸...   河口出入境边防检查站5月1日对外通报称,4月30日当天,河口口岸单日入境团队旅游人数达5223人...
哈尔滨红肠面包凭啥能成城市美食... 哈尔滨红肠面包是一种美食,它把特色红肠和面包巧妙地融合在了一起,具有独特的口感,还有独特的风味,很受...
原创 环... 春日阳光洒满北京环球影城,气氛挺热闹的。谁想到,一个普通的春日,因为一位女演员的出现变得这么难忘?4...
三苏祠旁 全国首座全东坡文化主... 一席东坡宴、千年风雅情。 说起四川省眉山市东坡区,相信许多人都知道这是一代大文豪三苏父子的故里,来...
五一假期首日,热门景区门票预订... 5月1日,全国迎来“五一”假期首日旅游高峰。 九派新闻从去哪儿平台获悉,其平台上热门出发城市为北京、...
逛非遗大集、赏民俗特色、品地方... 五一假期,山西省石楼县深挖当地文旅资源,围绕崖头、柏卜湾、黄河奇湾、留村伟人路居、东征纪念馆、郝家大...
方寸磁铁记录世界!国内首家“冰... 潮新闻客户端 记者 姜子桐 小巧且精致的冰箱贴,能将旅游的风景浓缩在方寸之间,每一个冰箱贴又能承载不...
广西干旱漓江断流?不实 近日,一则网传“广西干旱,漓江断流,河床裸露,游漓江变成了走漓江”,并质疑“五一”假期是否还能前往漓...
盐田海滨栈道专线今起开通 酒店... 海滨栈道专线由3款主题巴士运营,提供日票和次票两种选择。 深圳新闻网2025年5月1日讯(深圳商报记...
重庆三天两晚旅游行程,四天游玩... 重庆三天两晚旅游行程,四天游玩人均费用多少?深度重庆旅游行程攻略解析 重庆,这座被誉为“山城”的城市...
假期首日 北京市属公园迎客50... 北京青年报记者5月1日从市公园管理中心获悉,“五一”假期首日,北京市属公园和中国园林博物馆共接待游客...
年轻时尚 越野露营新选择 赛德... 近日赛德房车发布了旗下全新越野宿营车,与之前的无界4×4房车相互补,主打越野、性价比和后期DIY属性...
五一凌晨五台山殊像寺外排长队,... 极目新闻记者 王鹏 5月1日,有网友发视频称,凌晨1点,五台山殊像寺外排队的人已满满。 殊像寺是五台...
游乐园大摆锤悬停,旅客高空倒挂... “五一”假期到了,游乐场成为不少人的打卡地之一。摩天轮、过山车、大摆锤......各类游乐项目惊险刺...
禹州哪里适合爬山旅游的 禹州,这个位于河南省中部的城市,以其深厚的历史文化底蕴和丰富的自然景观而闻名。在这里,爬山旅游不仅是...
大荔五一:紧绷旅游安全弦,守护... 大荔五一:紧绷旅游安全弦,守护欢乐假期 (李世居、白爱丽、马晓)随着大荔县旅游消费周拉开帷幕,大荔县...
四川宜宾李庄景区游客已经严重饱... 封面新闻记者 伍雪梅5月1日,“五一”假期首日,记者18时从四川宜宾公安交警获悉,目前,宜宾李庄景区...
传承千年的西安甑糕,你了解它的... 西安甑糕是一款传统美食,它历史悠久,独具魅力,承载着这座古老城市的饮食文化和记忆,凭借软糯香甜的口感...