吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1811|回复: 3
收起左侧

[Python 转载] 【笔记】函数的基本概念、内存分析以及函数的分类、定义和调用

[复制链接]
cccyyys 发表于 2021-6-11 10:49
一、函数(function)简介
基本概念:是可重用的程序代码,代表一个任务或者一个功能
作用:不仅可以实现代码的复用,更能实现代码的一致性。    一致性指的是,只要修改代码,所有调用该代码的地方都能得到体现。
函数的分类:1、内置函数:Python本身内置的函数,直接使用。 例如:str(),list()
                      2、标准库函数:可以通过import语句导入库,然后使用
                      3、第三方函数:Python社区中的库,可以下载安装后,import导入使用
                      4、自定义函数:用户自己定义的函数(主要学习自定义函数)
二、函数的定义和调用
定义函数的核心语法
def  函数名([参数列表]):
     '''文档字符串'''     
     函数体/若干语句
其中文档字符串用以解释说明函数的功能,可以用help(函数名.__doc__)查看该函数的说明
注意事项:
1、使用def定义函数时,后面是一个空格和函数的名称
2、参数列表:(1)圆括号内是形式参数列表,多个形参用逗号隔开;
                        (2)形式参数不需要声明类型,也不需要指定函数的返回值类型;
                        (3)无参数也必须保留空的圆括号;
                        (4)实参列表必须也形参列表一一对应
以下为一个简单的函数定义及调用举例
[Python] 纯文本查看 复制代码
#测试函数的定义及调用
def test01():
    print('*'*10)
    print('/'*10)
print(id(test01))
print(type(test01))
test01()
test01()  #可以反复调用
test01()

返回结果为:
2406171799408
<class 'function'>
**********
//////////
**********
//////////
**********
//////////
函数可以反复调用,且函数也属于对象
形参和实参:
形式参数:定义函数时的变量
实际参数:调用函数式,传递的参数
[Python] 纯文本查看 复制代码
#测试形参和实参
def printMax(a,b):#变量a,b为形式参数,多个变量用“,”隔开
    '''实现两个数的比较,输出较大值'''#文档注释,用以解释说明
    if a<b:
        print(b,'较大值')
    else:
        print(a,'较大值')

printMax(10,20)  #此处10,,20为实际参数,调用过程中相当于把10,20分别传递给变量a,b

输出结果:20 较大值
以上实例中,变量a,b就是形式参数,printMax(10,20)中的10,20就是实际参数
注意形参列表和实参列表必须一一对应
文档字符串:
用三个单引号或者三个双引号来实现,中间加入多行文字进行说明该函数
可以用help(函数名.__doc__)查看该函数的说明
[Python] 纯文本查看 复制代码
#文档字符串
def print_star(n):
    '''根据传入的n,但因多个星号'''
    print('*'*n)

help(print_star.__doc__)#输出打印该函数的文档字符串

返回结果为:No Python documentation found for '根据传入的n,但因多个星号'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
返回值:
要点:1、如果函数体中包含return语句,则结束函数执行并返回值;
           2、如果函数体中不包含return语句,则返回None值;
           3、要返回多个返回值,使用列表、元组、字典、集合将多个值存起来即可。
[Python] 纯文本查看 复制代码
#测试返回值
def print_star(n):
    print('*'*n)  #无return语句,则返回None值


print(print_star(5))

返回结果为:*****
None
这是一个无return语句的函数,返回值为None。
[Python] 纯文本查看 复制代码
def add(a,b):
    print('计算{0},{1}的和为:{2}'.format(a,b,a+b))
    return a+b
    print('hello') 
print(add(30,40))

返回结果为:计算30,40的和为:70
70
这是一个有return语句的函数,返回值为a+b,且并未打印hello,说明return语句有结束函数的功能
函数也是对象:
Python中,“一切皆对象”。实际上,执行def定义函数后,系统就创建了相应的函数对象
[Python] 纯文本查看 复制代码
def print_star(n):
    '''根据输入的n,打印对应数量的星号'''
    print('*'*n)

print_star(5)  #括号实际起到调用的作用
c = print_star  #将函数print_star赋值给c
c(5)
print(id(print_star))
print(id(c))
print(type(c))

返回结果为:*****
*****
2873457176432
2873457176432
<class 'function'>
从该实例中我们可以发现将print_satr赋值给c后,两者内存地址一样,且c的类型也是函数,可以说明函数也是对象,可以作为参数来传递,也可以作为返回值来返回
好了,笔记结束,关于函数是对象这块有点没听明白,不太清楚写的对不对,有不对的地方欢迎打来批评指正

免费评分

参与人数 3吾爱币 +6 热心值 +3 收起 理由
daimmon + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Hegemonism + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| cccyyys 发表于 2021-6-11 18:19
uouobb 发表于 2021-6-11 15:42
哈哈,我要学习
!!!

共同学习,共同提升!
daimmon 发表于 2021-6-12 10:01
dingyu914 发表于 2021-7-27 11:02
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 12:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表