Python学习基础笔记十三——函数
创始人
2024-02-18 13:04:34
0

1、函数的定义:

函数是一段具有特定功能的、可重用的语句组。

说明:过程语言,程序员是按照顺序一行一行的编写代码,然后是顺序执行,很容易出现大量重复的代码行,那么有人就考虑将相同的代码提取出来,独立实现一个功能,供需要的代码调用,这就是函数的来源。

2、通过函数名来进行调用,函数也被看着是一段具有名字的程序,在需要的地方调用执行。对函数的使用不需要了解函数内部实现的原理,只要了解函数的输入输出方式即可。

3、函数的参数:每次函数提供不同的参数作为输入,以实现对不同数据的处理。参数是调用该函数时传递给它的值,可以有零个、一个或者多个。

4、函数的返回值:函数执行后,可以反馈相应的处理结果。当需要返回值的时候,使用保留字return和返回值列表,函数也可以没有return语句。

定义函数的语法形式:

def 函数名(<参数列表>):<函数体>return <返回值列表>

5、函数的特点:

1)减少代码重复;

2)使程序更加模块化;

3)使程序便于阅读。

例1:

str1 = '我爱中华人民共和国'def my_len(s):         # def是保留字定义一个函数,my_len是函数名,s是形参i = 0              # i是计数器for k in s:        # k是字符串元素i = i + 1return i           #返回的是字符串元素的个数ret = my_len(str1)     # my_len函数名调用函数,str1是实参print(ret)

6、函数的调用过程:

程序调用一个函数需要执行4个步骤:

1)调用程序在调用处暂停执行;

2)在调用时将实参复制给函数的形参;

3)执行函数体语句;

4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行。

函数式编程是一种编程范式,常见的编程范式还包括命令式编程和面向对象编程等,函数式编程的主要思想是把程序过程尽量写成一系列函数调用,通过函数进一步提高封装级别。函数式编程通过使用一系列函数能够使代码编程编写更简洁、更易于理解,是中小规模软件项目中最常用的编程方式。

7、函数的返回值:

return语句用来退出函数并将程序返回到函数被调用的位置继续执行。return语句可以同时将0个、1个、多个函数运算后的结构返回给函数被调用处的变量。

7.1 返回值的三种情况:

# 没有返回值,返回值为None;

        1)不写return语句;

        2)只写return,结束一个函数;

        3)return None:不常用;

# 返回1个值:

        1)可以返回任意数据类型;

        2)只要返回就可以被接收到;

        3)如果一个程序中有多个return语句,那么只执行第一个。(如果是顺序执行的话)

# 返回多个:

        1)用多个变量接收:有多少返回值就用多少返回值接收;

        2)用一个变量接收:得到的是一个元组。

例2:函数调用。

def f1(l1):print("f1 function")print("f1 for:")for i in l1:print(i)def f2(l1):print("f2 function")f1(l1)print("f2 for:")for i in l1:print(i)f2([1, 2, 3, 4])

例3:返回元组。

def func(a, b):return b, as = func('chang', 2)
print(s, type(s))

结果:

 

8、函数对变量的作用:

一个程序中的变量包含两类:全局变量和局部变量。全部变量指在函数外定义的变量,一般没有缩进,在程序执行全过程有效。局部变量是指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在。

例4:

n = 1  # n是全局变量def func(a, b):global n    # 如果n是全局变量,那么需要在n使用前显示声明变量为全局变量n = b       # 将局部变量赋值给全局变量nreturn a * b     s = func('chang', 2)
print(s, n)

该例中,请注意下global的使用。

例5:

ls = []       # ls是全局列表变量def func(a, b):ls.append(b)     # 将局部变量b增加到全局列表变量ls中return a * bs = func('chang', 2)
print(s, ls)   # 测试ls的值是否发生变化ng', 2)
print(s, ls)

结果:

这个地方就是Python才刚刚开始展示它的魅力。

列表等组合数据类型由于操作多个数据,所以它们在使用中有创建和引用的分别。当列表变量被方括号赋值时,这个列表才被真实创建,否则只是对之前创建列表的的一次引用。

上面的代码func()函数的ls.append(b) 语句执行时需要一个真实创建过的列表,此时,func()函数专属的内存空间中没有已创建过的且名称为ls的列表,因此,func()函数进一步去寻找全局内存空间,自动关联全局ls列表,并修改其内容。当func()函数退出后,全局ls列表中的内容被修改。简单地说,对于列表类型,函数可以直接使用全局列表而需要使用global进行声明。

总结:

1)函数内局部变量x,对全局变量x没有影响;

2)函数内部global x,就可以修改全局变量x;

3)组合数据类型,函数内部没有的话,就直接修改全局变量的组合数据类型;

4)组合数据类型,函数内部有的话,那么函数仅对局部变量进行操作,对全局的组合数据类型没有影响。

最后再看下指针和引用的区别:

1)指针是保存内存地址的变量;指针直接指向内存地址,说明对象已经生成。

2)引用是某一种变量的别名,用这个名字可以对这个变量进行操作。引用只是别名,需要真实创建对象才能操作对象。

 

相关内容

热门资讯

湖南大学法学院党委书记李劲松到... 2025年12月19日下午,湖南大学长沙校友会“法商共创探讨沙龙”在湖南芙蓉律师事务所44楼大会议室...
从法律咨询到健康关怀:长沙市律... 2025年12月16日至19日,湖南省中医附一医院的高级康复理疗师在湖南芙蓉律师事务所,开展了一场为...
新闻调查丨海南自贸港正式封关 ... 12月18日,海南自贸港全岛封关运作正式启动。在封关前半个月,《新闻调查》栏目组赴海南拍摄记录,详细...
具身智能迎来政策“红利期”,灵... 一台身形庞大的机器人,却拥有一双灵巧的“手”。它可以根据任务指令,用五根手指灵活地拿取物品,精准避障...
明年,山西省将实现政策范围内住... 12月19日,山西省医保局发布消息,我省通过提高保障水平、优化经办服务,切实减轻参保职工生育医疗负担...
南通市海门区:“三及时”制度助... “一名机关干部因房屋漏水与邻里产生矛盾,社区监督员第一时间反馈后,镇上组织部门迅速介入提醒该干部并协...
涉外企业跨境金融服务政策宣讲会... 本报讯(记者 安欣欣)12月19日,由郑州市委金融委员会办公室、中国人民银行河南省分行联合举办的涉外...
保持领先!前海制度创新硕果累累 制度创新成果的持续涌现,使前海在全国自贸区中保持领先地位。图为前海湾夜景。(新华社发) 深圳商报记者...
坚持政策支持与改革创新并举 增... 必须坚持政策支持与改革创新并举的宏观经济治理思想,植根于中国特色社会主义市场经济理论,体现了有效市场...
廖昌永为湖南省委书记、省长等省... 新湖南客户端消息,20日上午,2025年第12期“湘江大讲堂”在省委党校举行, 上海音乐学院院长廖昌...