自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python期貨量化交易中常用的數(shù)據(jù)類型有哪些?

開發(fā)
Python解釋器在啟動(dòng)時(shí)會(huì)創(chuàng)建None、True、False三個(gè)常量,None表示“無(wú)”,True表示“真”,F(xiàn)alse表示“假”。None、True、False這三個(gè)常量在量化策略中會(huì)經(jīng)常用到。還有Ellipsis常量與省略號(hào)的字面含義相同,常用在注釋當(dāng)中。

1 常用內(nèi)置常量

Python解釋器在啟動(dòng)時(shí)會(huì)創(chuàng)建None、True、False三個(gè)常量,None表示“無(wú)”,True表示“真”,F(xiàn)alse表示“假”。

None是NoneType類型的唯一值,表示缺少值或空值,例如,當(dāng)函數(shù)沒(méi)有返回值時(shí)會(huì)默認(rèn)返回None值。

因?yàn)镻ython用“有”和“無(wú)”來(lái)表示“真”和“假”,“有”為真,“無(wú)”為假,所以None、0、空字符串、空列表、空字典都是假,非“空”數(shù)據(jù)則為真。

True和False是bool類型的值,True和False除了表示真和假,其本身也有值,True的值為1,F(xiàn)alse的值為0,可以與數(shù)值做計(jì)算。例如,5+True結(jié)果為6,3*False結(jié)果為0,1==True結(jié)果為True,1 is True結(jié)果為False,以上示例說(shuō)明True的值為1,但True在內(nèi)存中的地址和整數(shù)1的地址不同。

None、True、False這三個(gè)常量在量化策略中會(huì)經(jīng)常用到。還有Ellipsis常量與省略號(hào)的字面含義相同,常用在注釋當(dāng)中。

2 整型

在計(jì)算交易手?jǐn)?shù)時(shí)需要用到整型,如1、2、3、4。

Python可以直接用整數(shù)進(jìn)行計(jì)算,當(dāng)在Python代碼中輸入整數(shù)數(shù)值時(shí),Python會(huì)自動(dòng)把輸入的數(shù)值創(chuàng)建為整型。

當(dāng)然,你也可以用整型類int()創(chuàng)建整數(shù),給整型類int()傳遞數(shù)值參數(shù),int()便會(huì)把數(shù)值參數(shù)轉(zhuǎn)換為整型。例如,int(5.89)的結(jié)果是5,轉(zhuǎn)換時(shí)只保留了整數(shù)部分;int('123')的結(jié)果是123,把字符串類型轉(zhuǎn)換成了整數(shù)類型。

我們可能需要從本地文件中讀取數(shù)據(jù),比如保存在本地的成交數(shù)據(jù),所讀取的數(shù)據(jù)通常是字符串類型,要把字符串類型轉(zhuǎn)換成整型才能參與相關(guān)計(jì)算。

整型可以是正數(shù)也可以是負(fù)數(shù),如3和?3。在量化策略中可定義凈持倉(cāng)pos=3,表示凈多頭3手;定義pos= -3,表示凈空頭3手。

3 浮點(diǎn)型

價(jià)格、保證金等屬于浮點(diǎn)型數(shù)值,浮點(diǎn)型數(shù)值是帶有小數(shù)點(diǎn)的小數(shù)。

類似于整型,Python可以直接用浮點(diǎn)型數(shù)值計(jì)算,也可以用浮點(diǎn)型類float()創(chuàng)建浮點(diǎn)型數(shù)值。例如,float(5)結(jié)果是5.0,在轉(zhuǎn)換整數(shù)時(shí)增加了一個(gè)小數(shù)位;float('5.999')結(jié)果是5.999,把字符串轉(zhuǎn)換成了浮點(diǎn)型數(shù)值。

整型和浮點(diǎn)型相加減,結(jié)果會(huì)轉(zhuǎn)換成浮點(diǎn)型。如果在計(jì)算中想要保留兩位小數(shù),可以用round()函數(shù),例如,a=5.946326598,round(a,2)結(jié)果是5.95,經(jīng)過(guò)四舍五入之后保留兩位小數(shù)。

4 字符串類型

字符串是由一對(duì)英文單引號(hào)、一對(duì)英文雙引號(hào)、一對(duì)英文三單引號(hào)或一對(duì)英文三雙引號(hào)包圍的字符,交易品種、賬號(hào)、密碼等都是字符串類型。例如,'賬號(hào)'、"123456"、'''密碼'''、"""jkl"""都是合法的字符串。

字符串是序列類型的數(shù)據(jù),字符串的字符有位置(索引)屬性,從左到右字符的位置序號(hào)為0、1、2、3、4、5、6……從右到左的位置序號(hào)為?1、?2、?3、?4、?5、?6……

通常,字符串用一對(duì)英文單引號(hào)或一對(duì)英文雙引號(hào)定義,英文三單引號(hào)或三雙引號(hào)則用于多行注釋。

如果一個(gè)字符串里需要有英文單引號(hào),則應(yīng)用英文雙引號(hào)定義;如果一個(gè)字符串里需要有英文雙引號(hào),則應(yīng)用英文單引號(hào)定義。此時(shí)的英文單引號(hào)和雙引號(hào)為字符,而不是字符串的標(biāo)識(shí),例如,"ad'cd"、'ef"gh',英文雙引號(hào)或單引號(hào)組成一對(duì),成為字符串的標(biāo)識(shí),字符串中的引號(hào)則作為字符以有別于字符串標(biāo)識(shí),不會(huì)出現(xiàn)“含義”沖突。

字符串中可以有空格,因?yàn)榭崭褚彩亲址ython用“有”和“無(wú)”來(lái)表示“真”和“假”,沒(méi)有任何字符的字符串為假,有字符的字符串為真。例如,“沒(méi)有字符,為假;”有空格字符,為真。

Python可以直接處理代碼中的字符串,把字符串創(chuàng)建在內(nèi)存中并保存為字符串類型,也可以用字符串類str()創(chuàng)建字符串。例如,str(123)結(jié)果為'123',把數(shù)值123轉(zhuǎn)換成了字符串'123'。

如果要在字符串中包含控制字符或有特殊含義的字符,就需要使用轉(zhuǎn)義字符,常用的轉(zhuǎn)義字符如表2-1所示。

表2-1

例如,print("abc\"de")輸出abc"de,中間的英文雙引號(hào)被\轉(zhuǎn)義成字符,不會(huì)再與第一個(gè)英文雙引號(hào)組成字符串標(biāo)識(shí)。

當(dāng)在字符串前加上r或R,此時(shí)字符串為原始字符串,字符串中的“\”便不再是轉(zhuǎn)義字符,而是“\”本身。但字符串的最后一個(gè)字符不能是“\”,原始字符串主要用在文件路徑中。

代碼如下:

>>> print(r'C:\new\T0002\export\MA.csv')
C:\new\T0002\export\MA.csv

>>> print(r'C:\new\T0002\export\')
File "<stdin>", line 1
print(r'C:\new\T0002\export\')
^
SyntaxError: EOL while scanning string literal

5 結(jié)構(gòu)數(shù)據(jù)類型

Python語(yǔ)言有許多的結(jié)構(gòu)數(shù)據(jù)類型,最常用的有列表、元組、字典,列表和元組是序列類型,它們的元素有位置(索引)屬性,而字典是集合類型,其元素沒(méi)有位置屬性。

5.1 列表

列表是以方括號(hào)“[ ]”包圍的數(shù)據(jù)集合,不同元素間以英文逗號(hào)“,”隔開,列表的元素可以是任意數(shù)據(jù)類型,也可以是列表,例如,[1]、[1,]、[1, 2, 'a', [1,3], 'bcd']都是合法的列表。

列表的元素有位置屬性,從左到右元素的位置序號(hào)為0、1、2、3、4、5、6……從右到左的位置序號(hào)為?1、?2、?3、?4、?5、?6……

Python可以直接處理代碼中的列表,Python會(huì)自動(dòng)創(chuàng)建列表,也可以用列表類list()創(chuàng)建列表。例如,a=list()創(chuàng)建空列表,給list()傳遞的參數(shù)必須是可迭代的,list()會(huì)按照參數(shù)的元素創(chuàng)建列表。例如,list('adffgghjj')結(jié)果是['a', 'd', 'f', 'f', 'g', 'g', 'h', 'j', 'j'],字符串的每個(gè)字符被創(chuàng)建為列表的元素。

列表是可變的數(shù)據(jù)類型,對(duì)列表中的元素進(jìn)行修改時(shí)會(huì)直接修改原列表,而不是生成一個(gè)新列表。

5.2 元組

元組可看成特殊的列表,元組是以小括號(hào)“( )”包圍的數(shù)據(jù)集合,不同元素間以英文逗號(hào)“,”隔開,元組的元素可以是任意數(shù)據(jù)類型,也可以是元組,例如,(1,)、(1, 2, 'a', (1,3), 'bcd')都是合法的元組。當(dāng)元組的元素只有一個(gè)時(shí)也不能省略英文逗號(hào),否則小括號(hào)便不是元組的標(biāo)識(shí),而是語(yǔ)句運(yùn)算,例如,(1,)是元組,而(1)則是數(shù)值1。

同列表一樣,元組的元素有位置屬性,元素從左到右的位置序號(hào)為0、1、2、3、4、5、6……從右到左的位置序號(hào)為?1、?2、?3、?4、?5、?6……

Python可以直接處理代碼中的元組,Python也會(huì)把以英文逗號(hào)隔開的對(duì)象創(chuàng)建為元組,代碼如下:

>>> 1,2,3,4,5
(1, 2, 3, 4, 5)

Python也可以用元組類tuple()創(chuàng)建元組,例如,a=tuple()創(chuàng)建空元組,給tuple()傳遞的參數(shù)必須是可迭代的。tuple()會(huì)按照參數(shù)的元素創(chuàng)建元組,例如,tuple(['a', 'd', 'f', 'f', 'g'])的結(jié)果是('a', 'd', 'f', 'f', 'g'),把列表轉(zhuǎn)換成了元組。

元組是不可變數(shù)據(jù)類型,對(duì)元組中的元素進(jìn)行修改會(huì)創(chuàng)建一個(gè)新的元組,而不是直接修改原來(lái)的元組。若需要?jiǎng)?chuàng)建一組不可變的數(shù)據(jù)對(duì)象,可用元組創(chuàng)建。

元組主要用在變量定義中,代碼如下:

>>> a,b,c=1,2,3
>>> a;b;c
1
2
3

在上述代碼中,等號(hào)右邊的“1,2,3”是元組,Python會(huì)自動(dòng)按位置順序把1賦值給a,把2賦值給b,把3賦值給c。

5.3 字典

字典是以大括號(hào)“{ }”包圍起來(lái)的數(shù)據(jù)集合,數(shù)據(jù)以“鍵:值”對(duì)的形式存在,“值”可以是任意類型的數(shù)據(jù),但“鍵”必須是不可變數(shù)據(jù)。不可變數(shù)據(jù)又稱為可哈希的數(shù)據(jù),可哈希數(shù)據(jù)具有唯一性,能產(chǎn)生唯一映射關(guān)系,因此,字典中元素的“鍵”都是不同的,可以通過(guò)“鍵”來(lái)訪問(wèn)字典中的元素。例如,{'a':1,'b':2,3:'c'}和{'a':1,'b':2,c:[1,2]}都是合法的字典。

Python可以直接處理代碼中的字典,也可以用字典類dict()創(chuàng)建字典,因?yàn)樽值涞脑厥且浴版I:值”對(duì)的形式存在,所以傳給dict()的參數(shù)應(yīng)是關(guān)鍵字形式,代碼如下:

>>> dict(h=1,i=2,j=3,k=4)
{'h': 1, 'i': 2, 'j': 3, 'k': 4}

字典是集合類型,因此字典中的元素沒(méi)有位置屬性,元素是無(wú)序的,可以通過(guò)元素的鍵訪問(wèn)元素,不能通過(guò)位置訪問(wèn)元素。字典是可變的數(shù)據(jù)類型,修改元素的值或增刪元素會(huì)直接改變?cè)值洹?/p>

本文摘自《Python期貨量化交易》

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2010-05-31 10:35:12

MySQL數(shù)據(jù)類型

2023-04-09 14:48:03

JavaScript腳本語(yǔ)言開發(fā)

2010-05-21 16:33:02

MySQL數(shù)據(jù)庫(kù)

2010-07-23 14:18:47

SQL Server數(shù)

2010-07-13 10:43:26

SQL Server數(shù)

2010-06-10 10:06:01

MySQL數(shù)據(jù)類型

2010-04-22 09:42:00

2010-07-09 15:10:11

MS SQL Serv

2025-01-06 05:10:00

Python數(shù)據(jù)類型編程

2023-06-29 13:43:30

2010-08-20 10:26:25

DB2數(shù)據(jù)類型

2010-07-09 16:33:23

2022-08-30 21:01:17

開發(fā)Java框架

2023-03-17 16:49:42

開發(fā)Java框架

2021-03-24 09:37:41

數(shù)據(jù)類型數(shù)據(jù)分析數(shù)據(jù)的分類

2023-10-17 07:57:56

Python數(shù)據(jù)類型

2010-03-11 15:56:15

Python列表

2019-08-12 11:40:48

數(shù)據(jù)庫(kù)SQLite3數(shù)據(jù)類型

2019-10-27 23:16:01

物聯(lián)網(wǎng)傳感器IOT

2022-07-03 06:10:15

MySQL數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)