Python量化学习笔记07——量化投资——以Python为工具 Part01-C07 函数

目录

知识点:

1、定义函数的基本语法

定义一个具有减法功能的函数。

定义一个求绝对值的函数

定义一个不需要参数的函数

定义一个传回多个对象的函数。返回一个tuple容器

2、函数的参数

按位置传递参数

指定形式参数传递参数

在定义函数时指定参数的默认值

可选参数-参数的数量不固定时

3、匿名函数

4、作用域

习题:


知识点:

1、函数的定义和调用——什么是函数,有什么用和怎么用

2、参数——调用函数时的输入

3、匿名函数——lambda

4、作用域——变量的生效范围

1、定义函数的基本语法

def <函数名>(参数1,参数2,……,参数N):

       <执行语句>

       return<结果>

定义函数,使用def这个关键词作为开头。

然后空格,写上函数得名字。这个名字最好和该函数执行的功能相关。

函数名字后括号中的参数不是必须的。当没有参数时,可以留空。

执行语句是用来实现函数的功能的。需要缩进。

用return来结束一个函数。有返回值时,写上返回结果。没有结果时,写 return None

定义一个具有减法功能的函数。

def my_subtraction(minuend, subtrahend):

    difference = minuend - subtrahend

    return difference

测试一下是否正常

i=6;j=2

d = my_subtraction(i,j)

d

返回结果正常

再测试一下进行浮点数的减法计算

d2 = my_subtraction(7,2.0)

d2

返回结果正常,结果为浮点数

定义一个求绝对值的函数

 def my_abs(x):

    if x>=0:

        return x

    else:

        return -x

       

使用表达式来作为参数,传入函数中。

a = 1; b=2

my_abs(a-b)

返回结果正确。

定义一个不需要参数的函数

def hello():

    print('Hello World!')

返回结果正确

定义一个传回多个对象的函数。返回一个tuple容器

def my_arithmetic(x,y):

    z1 = x+y

    z2 = x-y

return z1, z2

返回结果正确

2、函数的参数

按位置传递参数

调用函数时,传入的函数一般按照位置顺序与形式参数绑定。

这种方法叫做“传递位置参数”

例如 my_subtraction(7,2.0),

7被赋值给minuend

2.0被赋值给subtrahend

如果写成my_subtraction(2.0,7)

则2.0被赋值给minuend

7被赋值给subtrahend

指定形式参数传递参数

my_subtraction(minuend=2, subtrahend=1)

或者:

my_subtraction(subtrahend=1,minuend=2)

在定义函数时指定参数的默认值

def my_print(arg1, arg2='World!'):

print(arg1, arg2)

返回结果:

以变量作为默认参数时,当变量发生改变,而没有再次作为参数传入函数时,函数依然使用原先的的变量值。

把变量重新传到进函数后,使用最新的变量值。

可选参数-参数的数量不固定时

使用容器类型作如(tuple, list, dict等)进行传递

def my_addition0(addend):

    sum=0

    for i in addend:

        sum = sum+i

    return sum

3、匿名函数

函数在Python中也是一个对象。

当我们把一个函数当作另一个函数的参数或返回值来传递时,使用匿名函数可以使代码看起来更简洁明了

使用lambda关键字来创建匿名函数。

语法:

lambda[arg1[,arg2,…,argN]]:expression

def greeting2():

    print('Hellow world!')

greeting2()

greeting3 = lambda : print('Hello World!')

greeting3()

好了,匿名函数这篇和上一个可选参数,我觉得这两个地方,这本书写得很糟糕,我也看不太懂,这部分先跳过。

已经记录我的这两个知识盲点,回头换本教材补上。

4、作用域

在函数内部创建的变量为局部变量

在函数外部创建的变量为全局变量。

在函数中访问全局变量

函数中的本地变量(局部变量),外部不可见。

函数内部定义了局部变量y,

到了函数外部,调用失败,报错。

本地变量和全局变量相同时,函数只调用本地变量

在函数内部操作(修改)全局变量时,需要在变量前面加global声明

习题:

1、

函数permutation(x),把x的第一个元素和最后一个元素互换。

X是列表,属于可变对象。

所以经过内部元素的互换后,x的id不变。

Y被赋值为变换后顺序的x列表,id与x相同

Is,判断的是id,所以,输出结果为True

2、

3、不确定树木的形参,这本书写得不好,我也没学会,这题不做了。

4、写个fibonacci数列:

5,题目看不懂想问什么。

6、涉及到匿名表达lambda,这个部分这本书写得很差,我也没看懂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值