- Python+Office:輕松實(shí)現(xiàn)Python辦公自動(dòng)化
- 王國(guó)平
- 3152字
- 2021-08-13 19:06:10
2.1 Python數(shù)據(jù)類(lèi)型
2.1.1 數(shù)值(Number)
Python中的數(shù)值類(lèi)型用于存儲(chǔ)數(shù)值,主要有整數(shù)類(lèi)型(int)和浮點(diǎn)型(float)兩種。需要注意的是,數(shù)值類(lèi)型變量的值是不允許被改變的,如果改變數(shù)值類(lèi)型變量的值,則會(huì)重新分配內(nèi)存空間。例如,數(shù)據(jù)分析師小王統(tǒng)計(jì)匯總今天商品總的訂單量是899件,輸入代碼如下:

但是,領(lǐng)導(dǎo)需要的不是總的訂單量,而是商品的有效訂單量。由于還有部分客戶(hù)購(gòu)買(mǎi)商品后又進(jìn)行了退單(共計(jì)8件退單),因此需要減去8件退單,輸入有效訂單量的代碼如下:

運(yùn)行上述代碼后,現(xiàn)在變量order_volume的數(shù)值就是有效商品的訂單量891件,而不再是前面輸入的899件,代碼如下:

代碼輸出結(jié)果如下所示。

Python中有豐富的函數(shù),包括數(shù)學(xué)函數(shù)、隨機(jī)數(shù)函數(shù)、三角函數(shù)等,表2-1列舉了一些常用的數(shù)學(xué)函數(shù)。
表2-1 常用的數(shù)學(xué)函數(shù)

下面通過(guò)案例介紹數(shù)學(xué)函數(shù)的用法,例如,我們要返回?cái)?shù)值-12.439的整數(shù)部分和小數(shù)部分。Python數(shù)學(xué)運(yùn)算的常用函數(shù)基本都在math模塊中,因此首先需要導(dǎo)入math模塊,然后使用modf()函數(shù)提取整數(shù)部分和小數(shù)部分。
通過(guò)下面代碼可以看出:-12.439的小數(shù)部分是-0.43900000000000006,整數(shù)部分是-12.0。

代碼輸出結(jié)果如下所示。

注意:這里小數(shù)部分不是-0.439。這是由于Python默認(rèn)的是數(shù)值計(jì)算,而不是符號(hào)計(jì)算,其中數(shù)值計(jì)算是近似計(jì)算,而符號(hào)計(jì)算則是絕對(duì)精確的計(jì)算,這里就不再詳細(xì)介紹兩者之間的差異,如果讀者想深入了解,那么可以查閱相關(guān)的資料。
2.1.2 字符串(String)
字符串是Python最常用的數(shù)據(jù)類(lèi)型。我們可以使用英文輸入法下的單引號(hào)('')或雙引號(hào)("")來(lái)創(chuàng)建字符串,字符串可以是英文、中文或中文英文的混合。例如,創(chuàng)建兩個(gè)字符串str1和str2,代碼如下:

查看字符串str1,代碼如下:

代碼輸出結(jié)果如下所示。

查看字符串str2,代碼如下:

代碼輸出結(jié)果如下所示。

在Python中,可以通過(guò)“+”實(shí)現(xiàn)字符串之間的拼接,輸入以下代碼:

查看字符串str3,代碼如下:

代碼輸出結(jié)果如下所示。

在字符串中,我們可以通過(guò)索引獲取字符串中的字符,遵循“左閉右開(kāi)”的原則。需要注意的是,索引是從0開(kāi)始的。例如,截取字符串str1的前5個(gè)字符,代碼如下:

或者

代碼輸出結(jié)果如下所示。

我們可以看出,程序輸出字符串str1中的前5個(gè)字符“Hello”,索引分別對(duì)應(yīng)0、1、2、3、4。原字符串中每個(gè)字符所對(duì)應(yīng)的索引號(hào)如表2-2所示。
表2-2 字符串索引號(hào)

此外,還可以使用反向索引,實(shí)現(xiàn)上述同樣的需求,但是索引位置會(huì)有變化,分別對(duì)應(yīng)-13、-12、-11、-10、-9,代碼如下:

代碼輸出結(jié)果如下所示。

同理,我們也可以截取原字符串中的“Python”子字符串,索引的位置是6~12(包含6但不包含12),代碼如下:

代碼輸出結(jié)果如下所示。

Python提供了方便靈活的字符串運(yùn)算,表2-3列出了可以用于字符串運(yùn)算的運(yùn)算符。
表2-3 字符串運(yùn)算符

續(xù)表

下面以成員運(yùn)算符為例介紹字符串運(yùn)算符。例如,我們需要判斷“Python”是否在字符串變量str1中,代碼如下:

代碼輸出結(jié)果如下所示。

輸出結(jié)果為T(mén)rue,即“Python”在字符串變量str1中,如果不存在則輸出結(jié)果為False。
2.1.3 列表(List)
列表是最常用的Python數(shù)據(jù)類(lèi)型,使用方括號(hào)表示,數(shù)據(jù)項(xiàng)之間使用逗號(hào)分隔。注意列表中的數(shù)據(jù)項(xiàng)不需要具有相同的類(lèi)型。例如,創(chuàng)建3個(gè)企業(yè)商品有效訂單的列表,代碼如下:

運(yùn)行上述代碼創(chuàng)建3個(gè)列表,查看列表list1,代碼如下:

代碼輸出結(jié)果如下所示。

查看列表list2,代碼如下:

代碼輸出結(jié)果如下所示。

查看列表list3,代碼如下:

代碼輸出結(jié)果如下所示。

列表的索引與字符串的索引一樣,也是從0開(kāi)始的,也可以進(jìn)行截取、組合等操作。例如,我們從列表list3中截取索引從1到3,但不包含索引為3的字符串,代碼如下:

代碼輸出結(jié)果如下所示。

可以對(duì)列表的數(shù)據(jù)項(xiàng)進(jìn)行修改或更新,首先查看索引為1位置的數(shù)值,代碼如下:

代碼輸出結(jié)果如下所示。

然后修改列表list1中索引為1位置的數(shù)值,如將其修改為“2019年”,代碼如下:

代碼輸出結(jié)果如下所示。

可以使用del語(yǔ)句來(lái)刪除列表中的元素,代碼如下:

代碼輸出結(jié)果如下所示。

也可以使用append()方法在尾部添加列表項(xiàng),代碼如下:

代碼輸出結(jié)果如下所示。

此外,還可以使用insert()方法在中間添加列表項(xiàng),代碼如下:

代碼輸出結(jié)果如下所示。

2.1.4 元組(Tuple)
Python 的元組與列表類(lèi)似,不同之處在于元組的元素不能被修改。需要注意的是,元組使用的是括號(hào),而列表使用的是方括號(hào)。創(chuàng)建元組很簡(jiǎn)單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開(kāi)即可。例如,創(chuàng)建3個(gè)企業(yè)商品有效訂單的元組,代碼如下:

運(yùn)行上述代碼創(chuàng)建3個(gè)元組,查看元組tup1,代碼如下:

代碼輸出結(jié)果如下所示。

查看元組tup2,代碼如下:

代碼輸出結(jié)果如下所示。

查看元組tup3,代碼如下:

代碼輸出結(jié)果如下所示。

當(dāng)元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號(hào),代碼如下:

代碼輸出結(jié)果如下所示。

否則括號(hào)會(huì)被當(dāng)作運(yùn)算符使用,代碼如下:

代碼輸出結(jié)果如下所示。

元組的索引與字符串的索引一樣,也是從0開(kāi)始的,也可以進(jìn)行截取、組合等操作。例如,我們從元組tup3中截取索引從1到3,但不包含索引為3的元素,代碼如下:

代碼輸出結(jié)果如下。

在Python中,也可以通過(guò)“+”實(shí)現(xiàn)對(duì)元組的連接,運(yùn)算后會(huì)生成一個(gè)新的元組,代碼如下:

代碼輸出結(jié)果如下所示。

元組中的元素是不允許被修改和刪除的。例如,修改元組tup6中第4個(gè)元素的數(shù)值,代碼如下:

運(yùn)行上述代碼,錯(cuò)誤信息如下所示。

2.1.5 集合(Set)
集合是一個(gè)無(wú)序的不重復(fù)元素序列,可以使用花括號(hào)“{}”或set( )函數(shù)創(chuàng)建。需要注意的是,創(chuàng)建一個(gè)空集合,必須使用set( )函數(shù),因?yàn)榛ɡㄌ?hào)“{ }”是用來(lái)創(chuàng)建一個(gè)空字典的。創(chuàng)建集合的語(yǔ)法格式如下:

或者

下面以客戶(hù)購(gòu)買(mǎi)商品為例介紹集合的去重功能。假設(shè)某客戶(hù)在10月購(gòu)買(mǎi)了6次商品,分別是紙張、椅子、器具、配件、收納具、配件,這里有重復(fù)的商品,我們可以借助集合刪除重復(fù)值,代碼如下:

代碼輸出結(jié)果如下所示。

運(yùn)行上述代碼,可以看出已經(jīng)刪除了重復(fù)值,只保留了5種不同類(lèi)型的商品名稱(chēng)。
同理,該客戶(hù)在11月購(gòu)買(mǎi)了4次商品,分別是裝訂機(jī)、椅子、器具、配件,代碼如下:

代碼輸出結(jié)果如下所示。

可以快速判斷某個(gè)元素是否在某個(gè)集合中。例如,判斷該客戶(hù)在10月是否購(gòu)買(mǎi)了“配件”,代碼如下:

代碼輸出結(jié)果如下所示。

此外,Python中的集合與數(shù)學(xué)上的集合概念基本類(lèi)似,也有交集、并集、差集和補(bǔ)集,集合之間關(guān)系的思維圖如圖2-1所示。

圖2-1 集合之間關(guān)系的思維圖
集合的交集。例如,統(tǒng)計(jì)該客戶(hù)在10月和11月所購(gòu)買(mǎi)的重復(fù)商品,代碼如下:

代碼輸出結(jié)果如下所示。

集合的并集。例如,統(tǒng)計(jì)該客戶(hù)在10月和11月購(gòu)買(mǎi)的所有商品,代碼如下:

代碼輸出結(jié)果如下所示。

集合的差集。例如,統(tǒng)計(jì)該客戶(hù)在10月和11月所購(gòu)買(mǎi)的不重復(fù)商品,代碼如下:

代碼輸出結(jié)果如下所示。

集合的補(bǔ)集。例如,統(tǒng)計(jì)該客戶(hù)在10月購(gòu)買(mǎi),而在11月沒(méi)有購(gòu)買(mǎi)的商品,代碼如下:

代碼輸出結(jié)果如下所示。

2.1.6 字典(Dictionary)
字典是另一種可變?nèi)萜髂P停⑶铱梢源鎯?chǔ)任意類(lèi)型對(duì)象。字典的每個(gè)“鍵”和“值”用冒號(hào)分隔,每個(gè)“鍵-值”對(duì)之間用逗號(hào)分隔,整個(gè)字典包括在花括號(hào)中,語(yǔ)法格式如下:

需要注意的是,“鍵-值”對(duì)中的鍵必須是唯一的,但是值可以不是唯一的,且數(shù)值可以取任何數(shù)據(jù)類(lèi)型,但鍵必須是不可變的,如字符串或數(shù)字,代碼如下:

運(yùn)行上述代碼,創(chuàng)建3個(gè)字典,查看字典dict1,代碼如下:

代碼輸出結(jié)果如下所示。

查看字典dict2,代碼如下:

代碼輸出結(jié)果如下所示。

查看字典dict3,代碼如下:

代碼輸出結(jié)果如下所示。

在Python中訪(fǎng)問(wèn)字典里的值時(shí),要把相應(yīng)的鍵放入方括號(hào)中。例如,讀取字典dict3中鍵為“order_north”的值,代碼如下:

代碼輸出結(jié)果如下所示。

在Python中,如果字典里沒(méi)有該鍵就會(huì)報(bào)錯(cuò),代碼如下:

輸出錯(cuò)誤信息如下所示。

在Python中,向字典添加新內(nèi)容的方法是增加新的“鍵-值”對(duì),修改已有“鍵-值”對(duì),例如,向字典dict2中添加鍵“order_sales”,代碼如下:

代碼輸出結(jié)果如下所示。

在Python中,既能夠刪除字典中的單一元素,也能夠清空和刪除字典。例如,首先刪除字典dict2中的鍵“2020”,代碼如下:

代碼輸出結(jié)果如下所示。

然后清空字典dict2,代碼如下:

代碼輸出結(jié)果如下所示。

最后刪除字典dict2,并查看字典dict2,代碼如下:

代碼輸出結(jié)果如下所示,會(huì)報(bào)錯(cuò)提示字典沒(méi)有被定義。

- Mastering JavaScript Functional Programming
- Fundamentals of Linux
- PowerCLI Cookbook
- GitLab Repository Management
- Spring Cloud、Nginx高并發(fā)核心編程
- 實(shí)戰(zhàn)低代碼
- Building Minecraft Server Modifications
- MongoDB權(quán)威指南(第3版)
- 零基礎(chǔ)入門(mén)學(xué)習(xí)Python
- 編程與類(lèi)型系統(tǒng)
- Practical Game Design with Unity and Playmaker
- Access 2010數(shù)據(jù)庫(kù)應(yīng)用技術(shù)實(shí)驗(yàn)指導(dǎo)與習(xí)題選解(第2版)
- 自學(xué)Python:編程基礎(chǔ)、科學(xué)計(jì)算及數(shù)據(jù)分析(第2版)
- 軟件體系結(jié)構(gòu)
- Python 3 Object:oriented Programming(Second Edition)