23年10月23日python函数笔记

函数像工厂,输入一定值,返回一定值,也可无输入和输出。

 于是,所定义的函数,功能越单一越好,以避免多余鸡肋功能,就好像做饭加盐,淡了可以,咸了没办法去掉。

函数不是啥新鲜东西,这里重点介绍python中函数之使用与C语言中不同之处。

函数定义与使用:

函数定义格式

def test(x1, x2, x3):
    return x1 + x2 * x3

在这里,定义时要用到def关键字,并且不把返回值类型(或者void)放在前面,有返回值时,直接在函数内部return出去。函数调用方法等与C语言没有区别。

函数命名方面,pycharm上不推荐以大写字母开头命名。

函数传参数方面,由于python中没有指针,形参使用与否取决于传入的对象。这里,分有不可变对象(数字、字符串、元组等)和可变对象(列表字典集合等)。顾名思义,只有可变对象是其引用被传入函数,从而可在函数内部被改变。调用时,在python中可将形参作为关键字,实现传参顺序不一致,使用办法如下:

def stuprint(num, name):
    print("姓名:%s————学号:%d"%(name, num))
if __name__ == "__main__":
    stuprint(name = "LuBenwei", num = 1)

python中的函数也可以有默认参数,使用办法参考c++。

参数数量不确定时,可以使用python中不定长参数的功能

*args:将接收的参数放到一个元组中;**args:将显式赋值的参数放到一个字典中。以后者的使用为例:

def test(**args):
    for key,value in arg.items():
        print("%s: %s"%(key, value))

这时输入不定长的字典内容,python可一次性通通打印出来。

另外,用组合数据传多个单数据参数时,可用*操作符解包,根据情况判断使用时*号数量。

特殊函数

1,匿名函数(λ函数)

k = int(input())
for i in filter(lambda x: x % 2, range(1, k+1)):  # λ函数,只有一行的inline函数
     print(i)

上面是一个输入整数k,输出1~k之间奇数的简单程序,这里lambda函数的作用是减少代码量,同时减轻计算机函数调用负担,参考c++中的inline函数。

2,递归函数

递归函数中的递归思想显然比函数本身重要,这种函数也不是python中新鲜物件,故不再话下。

装饰器(按说该放在特殊函数一类)

装饰器是python的一个特别的功能,可以用来包装函数。通俗点就是函数的函数。python中没有函数指针,装饰器可以弥补这一点甚至实现其他强劲功能。

# 定义
def my_drct(test):
    def inner():
        test()
        print("world!")
    return inner        # 返回作为参数被装饰的函数

# 定义待装饰函数
def test1():
    print("hello ",end="")

print("装饰前:")
test1()
print("")
test2 = my_drct(test1)
print("装饰后:")
test2()

这是运行效果:

以上是本次笔记的全部内容!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值