Python量化学习笔记03——量化投资——以Python为工具 Part01-C03

这一章主要讲Python的对象类型。

大体的知识点结构图

如下:

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第1张图片

 

赋值

对象,Object,是Python中最基本的概念。

变量 = 某种类型的对象

使用 “=” 进行赋值

创建一个对象的例子:

输入x=7

然后再输入x,查看x

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第2张图片

这就是对变量x进行赋值,设置值为7。

当我们再输入x=8.1后,

再输入x,查看,得到8.1,说明,x的赋值,已经从整数7,改成了浮点数8.1

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第3张图片

Python的集中常用数据类型,如下:

变量命名规则

变量名一般由英文字母,下划线或数字构成。

Python3则增加了中文日文等非英语语言作为变量名。

输入:yingyubianliang = "Hahahaha"

输入:yingyubianliang查询得到:

输入:中文变量 = "哈哈哈哈"

对象类型

整数 int

在Python中,int表示整数。长度一般为32位。

数值范围-2^31~2^31,超范围时,书上说数值后面会加L,但我在Spyder上没显示:

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第4张图片

我直接计算2的100次方,然后输出x的数据类型为int,再打印x的数值。

没有出现书上说的L标识。不过这个知识点,无所谓。

浮点数 float

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第5张图片

注意:浮点数为二进制储存,表达的是近似值。

需要精确计算时,使用十进制数类型。Decimal。金融工作中常用。

浮点数和十进制数的差别在于:浮点数牺牲精度,但是计算效率高。

布尔类型 Boolean

语句为真时,True

语句为假时,False

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第6张图片

1>2,明显不成立,输出为False

2>1,明显成立,输出为True

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第7张图片

在Python中,布尔类型是整数类型的子类。

所以,Ture可以用1表示,False可以用0表示。

复数 complex

这个我自己在工作中几乎没什么用过。

复数的数学形式为a+bi,其中a和b是实数,i是虚数。

Python用comples(x,y)来创建复数。X表示实部取值,y表示虚部取值。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第8张图片

可以看出,在Python中,虚数单位用j表示。

复数还可以直接写表达式。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第9张图片

字符串 String

String是由字符Character组成的序列Sequence。

字符串String,是一个有序的集合Sequence,这个集合中包含了字符Character

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第10张图片

给变量Job赋值为字符串“Quant”

显示Job的类型时,输出为str,即String缩写。

因为字符串是字符的有序排列的集合。因此可以作一些集合的操作。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第11张图片

将Job理解为集合,按索引来显示对应序号的字符。

Python中没有Character这种字符类型。

字符Charater在Python相当于仅有一个字符的字符串。

列表 List

列表List相当于容器。可以存放任何类型的对象。

列表也有序列功能,因此可以通过索引值来操作。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第12张图片

列表使用方括号[ ]来创建。

索引值以0开始表示列表中的第一个对象,以n-1表示列表中第n个对象。

超出n-1的时候,出现Off-by-One报错。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第13张图片

可以看到,L1这个列表List中存放了3个对象,最大索引值应该为2.

当我们将索引值写成3时,出现报错:list index out of range 即列表索引值超出范围。

列表里面还可以放列表

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第14张图片

L2 = [10,"Price", ["Open", "High", "Low", "Close"]]

type(L2)

type(L2[2])

type(L2[1])

L2是个列表,

L2的第3个元素,即索引值为2的元素,为列表

L2的第2个元素,即索引值为1的元素,为字符串

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第15张图片

 

元组 Tuple

一种序列类型的数据。

可以存储任何类型的数据,

元组一旦创建,内部数据无法增、删、改。

元组通过圆括号()来创建。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第16张图片

注意,圆括号常用来改变运算的顺序。

在创建只包含一个对象的元组时,为了避免冲突和歧义,规定在这个唯一对象后面加逗号。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第17张图片

没有逗号的t1,被认定为字符串str

加了逗号之后,t2被认定为元组tuple

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第18张图片

T3,标准的字符串类型。

T4,两个字符串,中间有一个逗号,显示结果为元组。

T5,一个字符串,但是在结尾部分加一个逗号,显示为元组。

在语义明确下,创建元组可以不用圆括号。这种 语言很不严谨啊,好垃圾。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第19张图片

我们先确定t4是个元组。

T4的第二个元素,即索引值为1的值为‘zu’

当我们给t4的第二个元素重新赋值时,系统报错。

确认元组一旦建立,无法更改。

这种特性,可以用于不再需要修改的数据,将其设为元组,防止误写,提高代码安全性。

字典 dict

字典dict是一种映射Mapping的数据结构。

不同于序列,字典没有顺序,所以也不存在位置偏移量的索引。

字典的存储方式是 键:值 ,即 Key:Value的 映射关系(对照表)。

创建字典使用花括号{ }

读取字典的值时,使用方括号,填入键Key,得到Value值。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第20张图片

1、使用花括号创建字典,包含2个key:value pair

2、确认d1的类型为字典

3、使用Key,来提取Value。

 

集合 Set

容器的一种。

无顺序,不可变,不重复。

使用花括号创建,或将元素以列表的形式,传入内置函数set()中。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第21张图片

1、使用花括号创建集合

2、使用将列表传入set()的方式创建集合。

可变与不可变

以x=7为例

1、Python解释器先判断等号右边的7是否存在。

       若不存在,则根据7的类型(整数)分配内存,并在内存中创建数字7.

       若存在,则直接把x(如果x已经存在的话)指向7

2、判断等号左边的x是否存在。

       若不存在,创建出x,把x指向7

       若存在,则直接把x指向7

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第22张图片

可见,x和y所指向的内存地址一致。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第23张图片

Z和x的内存地址依然一致。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第24张图片

我们给z重新赋值之后,z的内存地址发生了变化。而x所指向的内存地址依然没变。

当我们重新给x赋值为9后,我们看到,x的内存地址也发能了变化

原理:

等号左边的x是变量。

等号右边的9是对象。

对于Python而言,整数,属于不可变对象(Immutable)

当整数对象在内存中建立后,其值将不能改变。

但是当我们修改变量的值时,变量将会调整内存指向新的值。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第25张图片

我们新创建一个x1的变量,使x1=7.

我们知道y=7.

这时,x1和y所指向的内存地址,是一样的。

这种赋值方法,优点在于减少重复值对于内存空间的占用。

缺点是执行效率降低。

字符串同样属于不可变对象。

字符串中的字符,同样不可变。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第26张图片

 

列表,是可变对象。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第27张图片

 

列表L1内容查看

新建变量L4,使其=L1

修改变量L4的第3个元素。

因为列表是可变对象,L4修改列表元素时,列表所指向的内存地址不变。

而L1和L4所指向的内存地址相同,

因此,当修改L4的列表元素时,L1也会同时进行改变。

 

习题

1、判断下列对象的数据类型

(1,3,5,7)

使用圆括号创建的,是元组tuple类型。

‘pi’

使用引号创建,后面没有跟逗号,为str字符串类型

5>6

对比,结果是布尔类型Boolean,返回值为False

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第28张图片

{"High":7.45, "Low":7.30}

花括号创建,中间用逗号隔开,每个元素中间有冒号来表示键值对,是字典dict类型

2、判断计算结果

(3+4j) *(4+3j)

复数这东西太多年没用了,就记得实部和虚部相乘。

3/4=0.75

True*3 = 3

0.003 - 0.0022222

返回一个近似值,因为是浮点数计算。

3、判断下列代码输出结果

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第29张图片

创建a列表。

使b=a

打印b,得到【1,2,3】

判断a和b是否为同一个对象(内存地址是否相同),结论为相同。

修改b的第一个元素,使其值=3

打印a,列表为可变对象,a变为【3,2,3】

再判断a和b是否为同一个对象,列表为可变对象,所以修改对象内的元素,并不改变列表这个对象在内存中的位置。当b的数值修改时,列表的内存地址不变,因此,内存地址相同,返回True

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第30张图片

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第31张图片

4、a:Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第32张图片

 

4、bPython量化学习笔记03——量化投资——以Python为工具 Part01-C03_第33张图片

4、cPython量化学习笔记03——量化投资——以Python为工具 Part01-C03_第34张图片

4、d Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第35张图片

4、e Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第36张图片

5 Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第37张图片

6、什么臭老九题目,不就是创建键值对 key:Value pair嘛。没意义,不做。

Python量化学习笔记03——量化投资——以Python为工具 Part01-C03_第38张图片

你可能感兴趣的:(Python,量化,学习,Python,量化,学习)