導航:首頁 > 編程語言 > python組合數據類型的應用實驗報告

python組合數據類型的應用實驗報告

發布時間:2023-02-16 17:51:48

1. python 數據類型的實現

Python3 中有六個標準的數據類型:

Number(數字)
String(字元串)
List(列表)
Tuple(元組)
Set(集合)
Dictionary(字典)
Python3 的六個標准數據類型中:

不可變數據(3 個):Number(數字)、String(字元串)、Tuple(元組);
可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

2. 四、 python中的數據類型——列表

列表是一種有序的集合,有點類似c裡面的數組。它的特點是,可以隨時向裡面添加或刪除其中的元素,在python中經常用來存放數據。列表的特點是中括弧,內部元素用逗號隔開。

在這個列表中,可以放進去任何元素,不論你的元素是字元串、整型、浮點型、還是布爾值、空值,包括列表什麼的,都可以放進去。
元素與元素之間,用逗號隔開。

列表會為每個元素分配序號,這個序號代表它的位置,稱為索引(index),第一個元素的位置是0,第二個元素是1,以此類推。

使用索引獲取列表中的值時,需要使用中括弧來訪問,在中括弧前面加上列表名,中括弧內部是元素的索引。
0代表第一個元素的位置,1代表第二個,-1代表倒數第一個,-2代表倒數第二個

使用 len() 函數,可以查看列表裡面有多少個元素

在python中,列表的操作是非常的靈活的,我們可以向其中添加或刪除元素。
添加使用 list.append() 函數

list.append() 函數是將元素插入到列表的末尾,當我們想在特定位置插入元素時可以使用 list.insert() 函數

list.insert() 函數接受兩個參數,第一個參數是插入位置,第二個參數是要插入的元素。

需要注意的是,在使用append和insert時,必須在前面註明要操作的列表。就像上面的例子,我們要操作classmates這個列表,所以必須寫成 classmates.append() 或 classmates.insert() ,如果不這么寫,計算機就不知道你要往哪個列表中加入元素。

沒有特殊情況的話,推薦使用append()函數添加元素,因為使用append的時候,元素默認加在列表尾部,不會造成其他元素索引值的改變。如果使用insert的話,就像上面的insert(1,'Tom'),在位置1插入'Tom'後,Tom後面所有的元素,索引值都加了一個1,列表中元素越多,受影響的程度越大,因此使用append()函數要比insert()函數更快。

刪除列表中元素的方法有三種

del後面需要用索引的方式表明要刪除的元素,也就是上面的例子,names[1]代表names中的第二個元素,使用del即可刪除

list.pop() 函數與del差不多,都是使用索引值進行刪除,只不過寫法不同。
我們可以發現,執行 names.pop(1) 後,python shell列印出了第二個元素的值,也就是我們要刪除的那個值,這是因為 pop() 這個函數,是有返回值的,有時候我們需要使用這個值,這個時候就可以用變數存起來。

這樣我們就可以通過調用a而使用剛才刪掉的元素了。

list.remove() 函數的作用是刪除第一個匹配的元素,上面的例子中,names這個列表裡面,有兩個'Bob',remove函數只刪除了第一個'Bob'。這就是 list.remove() 函數的特點。

有時候我們想使用列表的前10個元素,或者前n個元素,這時候就應該使用列表的切片。

切片和索引類似,都是使用中括弧,區別是,索引中的中括弧裡面只有一個數,而切片不同。切片是切割列表,形成切割下來的部分形成新的列表。

切片: list[start:end:[step=1]] ,這就是切片的表達式,要求start和end兩者必須有一個,step不是可以不指定,不指定的時候默認為1。

切片該怎麼理解呢,start就是開始的位置,end就是結束的位置。切片有個特點是「取前不取後」,看上面那個例子可以發現,1作為start,3作為end,1代表第二個元素,3代表第四個元素,列表切片的時候,是不取後面的那個數字對應的元素的,也就是不取第四個元素,所以names[1:3]只取了第二個元素和第三個元素,這就是所謂的取前不取後。

再看下一個例子。

當不指定start或者end的時候,start默認為0,end默認為最後一個元素的索引值+1,因為「取前不取後」,要想取到最後一個元素,必須加個1才行。
上例中,用 len(numbers) 表示了最後一個元素的索引值,因為索引值從0開始,最後一個元素的索引值一定是列表內元素個數-1,根據「取前不取後」,在end位置上的數字應該+1,所以最後就等於 len(numbers) 了。
當不設定start和end的時候,就默認取所有的元素了。

當加入step,這個選項後,step代表步長,默認為1,設定成2的時候,就是隔一個取一個,設定成3時就是隔兩個取一個。
上例中,第一個切片,start和end均未設定,因此從第一個元素開始,隔一個取一個,得到了所有奇數位置的元素。
第二個切片,start設定為了1,因此取了所有偶數位置的元素。

3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False

更多關於列表的信息可以通過使用 help(list) 查看幫助文檔。

3. Python3 & 基本數據類型(一)

Python提供的基本數據類型:數值(整型、浮點型、復數、布爾型等)、字元串、列表、元組、字典、集合等,將它們簡單分類如下:

通常被稱為整型,數值為正或者負,不帶小數點。
Python 3的整型可以當做Long類型使用,所以Python 3沒有
Python 2的Long類型。
Python 初始化的時候會自動建立一個小整數對象池,方便我們調用,避免後期重復生成!這是一個包含 262個指向整數對象的指針數組,范圍是 -5 到 256 。

Python的浮點數就是數學中的小數,類似C語言中的double。
浮點數 也就是小數,如 1.23 , 3.14 , -9.01 等等。但是對於很大或很小的浮點數,一般用科學計數法表示,把10用e替代, 1.23x10^9 就是 1.23e9 ,或者 12.3e8 , 0.000012 可以寫成1.2e-5 等等。

復數 由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示,復數的實部a和虛部b都是浮點。

對 與 錯 、 0 和 1 、 正 與 反 ,都是傳統意義上的布爾類型。
但在Python語言中,布爾類型只有兩個值, True 與 False 。請注意,是英文單詞的對與錯,並且首字母要大寫。
在Python中,0、0.0、-0.0、None、空字元串「」、空元組()、空列表[]、空字典{}都被當作False,還有自定義類型,如果實現了 nonzero ()或 len ()方法且方法返回0或False,則其實例也被當作False,其他對象均為True

布爾值還可以用and、or和not運算。
1)、and 運算是 與 運算,只有所有都為 True , and 運算的結果才是 True ;
2)、or 運算是 或 運算,只要其中有一個為 True , or 運算結果就是 True ;
3)、not 運算是 非 運算,它是單目運算符,把 True 變成 False,False 變成 True。
例如:

由以上案例可以看出,在做四則運算的時候,明顯把 True 看做 1 , False 看做 0 。

4)空值
空值不是布爾類型,只不過和布爾關系比較緊密。
空值是Python里一個特殊的值,用 None 表示(首字母大寫)。None不能理解為0,因為0是整數類型,而None是一個特殊的值。None也不是布爾類型,而是NoneType。

在某些特定的情況下,需要對數字的類型進行轉換。
Python提供了內置的數據類型轉換函數:
int(x) 將x轉換為一個整數。如果x是一個浮點數,則截取小數部分。
float(x) 將x轉換成一個浮點數。
complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。
complex(x, y): 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。

Python字元串即可以用單引號也可以用雙引號括起來,甚至還可以用三引號括起來,字元串是以''或""括起來的任意文本。
例如:'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'隻有a,b,c這3個字元。如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I,',m,空格,O,K這6個字元。
字元串中包括特殊字元,可以用轉義字元來標識
但是字元串裡面如果有很多字元都需要轉義,就需要加很多,為了簡化,Python還允許用r''表示''內部的字元串默認不轉義
例如:
print r'\ \' #輸出:\ \

字元串的一些常見操作

切⽚是指對操作的對象截取其中⼀部分的操作
語法:序列[開始位置下標:結束位置下標:步⻓]
a. 不包含結束位置下標對應的數據, 正負整數均可;
b. 步⻓是選取間隔,正負整數均可,默認步⻓為1。

find():檢測某個⼦串是否包含在這個字元串中,如果在返回這個⼦串開始的位置下標,否則則返回-1。
index():檢測某個⼦串是否包含在這個字元串中,如果在返回這個⼦串開始的位置下標,否則則報異常。
rfind(): 和find()功能相同,但查找⽅向為右側開始。
rindex():和index()功能相同,但查找⽅向為右側開始。
count():返回某個⼦串在字元串中出現的次數。

replace():替換
split():按照指定字元分割字元串。
join():⽤⼀個字元或⼦串合並字元串,即是將多個字元串合並為⼀個新的字元串。
capitalize():將字元串第⼀個字元轉換成⼤寫。
title():將字元串每個單詞⾸字⺟轉換成⼤寫。
lower():將字元串中⼤寫轉⼩寫。
upper():將字元串中⼩寫轉⼤寫。
lstrip():刪除字元串左側空⽩字元。
rstrip():刪除字元串右側空⽩字元。
strip():刪除字元串兩側空⽩字元。
ljust():返回⼀個原字元串左對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串。
rjust():返回⼀個原字元串右對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串,語法和
ljust()相同。
center():返回⼀個原字元串居中對⻬,並使⽤指定字元(默認空格)填充⾄對應⻓度 的新字元串,語
法和ljust()相同。

所謂判斷即是判斷真假,返回的結果是布爾型數據類型:True 或 False。

startswith():檢查字元串是否是以指定⼦串開頭,是則返回 True,否則返回 False。如果設置開
始和結束位置下標,則在指定范圍內檢查。
endswith()::檢查字元串是否是以指定⼦串結尾,是則返回 True,否則返回 False。如果設置開
始和結束位置下標,則在指定范圍內檢查。
isalpha():如果字元串⾄少有⼀個字元並且所有字元都是字⺟則返回 True, 否則返回 False。
isdigit():如果字元串只包含數字則返回 True 否則返回 False。
isalnum():如果字元串⾄少有⼀個字元並且所有字元都是字⺟或數字則返 回 True,否則返回
False。

4. python第六講:組合數類型

定義:集合是多個元素的無序組合

特點:集合類型與數學中的集合概念一致,幾何元素之間無序、每個元素唯一、不存在相同元素,幾何元素不可更待、不能存在可變數據類型。

非可變數據類型:整數、浮點數、復數、字元串類型、元組類型等

表示:{},元素間用,分隔

建立:{} 或者set{},建立空集合必須使用set{}

舉例:

基本操作符:

增強操作符:

實例:

A-B
{123}

B-A
{'3','1','2'}

A&B

{'p','y'}

A|B

{'1','p','2','y','3',123}

A^B

{'2',123,'3','1'}

p123y

A

set()

1.包含關系比較:

True

False

2.數據去重

{'p','y',123}

['p','y',123]

定義:序列是具有先後關系的一組元素

特點:序列是一維元素向量,元素類型可以不同,元素可以相同:類似數學元素序列:元素間有序列引導,通過下標訪問序列的特定元素

序列是一個基類類型,衍生為:字元串類型、元組類型、列表類型

序號的定義:正向遞增序號、反向遞減序號,與字元串中相似。

['.io',123,'python']

'oi.321nohtyp'

序列類型的通用函數和方法:

3

'y'

定義:元組類型是序列類型的一種擴展,一旦創建就不能修改

形式:元組使用()或者tuple()創建,元素之間用逗號分隔:小括弧使不使用都可以。

舉例:

('cat','dog','tiger','human')

(4352,'bule',('cat','dog','tiger','human'))

元組類型繼承序列類型全部通用操作:操作符、處理函數、處理方法

元組類型創建後不能修改,因此沒有特殊操作

('human','tiger',dog','cat')

'tiger'

定義:列表是序列類型的一種擴展,創建後其中的元素可以被隨意修改

使用:[]或者list()創建,元素間可以用逗號隔開,列表中各元素類型可不同,無長度限制

['cat','dog','tiger',1024]

['cat','dog','tiger',1024]

列表類型操作函數及其方法:

['cat',1,2,3,4,'tiger',1024]

修改列表:

練習:

序列:元組和列表兩種重要類型

應用場景:元組用於元素不改變的場景,更多用於固定搭配場景:列表更加靈活,它是最常用的序列類型

作用:表達一組有序數據並且處理問題;數據保護

元素遍歷:

元組類型:

數據保護:不希望數據被程序所改變,轉換成元組類型

('cat',1,2,3,4,'tiger',1024)

基本統計值需求:給出一組數並且理解

定義:總個數、求和、平均值、方差、中位數...

總個數:len()

求和:for...in

平均值:求和/總個數

方差:各數據與平均數差的平方的和的平均數

中位數:排序,然後... 奇數找中間一個,偶數中間兩個的平均

映射:是一種索引和數據的對應關系,也是鍵和值的對應關系。

映射類型:由用戶數據為定義索引

字典類型:數據的組織與表達的一種新的形態,是映射的體現。

鍵值對:鍵是數據索引的擴展,字典是鍵值對的集合,鍵值對間無序。

生成:{}和dict()創建,鍵值對之間用冒號:表示

舉例:{<鍵1>:<值1>,<鍵2>:<值2>,...,<鍵n>:<值n>}

在字典變數中,通過鍵獲得值:

<字典變數>={<鍵1>:<值1>,...,<鍵n>:<值n>}

<值>=<字典變數>[<鍵>]

<字典變數>[<鍵>]=<值>

用[]來向字典中增加或者索引鍵值對

舉例:

'北京'

生成空字典:

de={};type(de)

<class 'dict'>

type(x) 返回變數x的類型

舉例:

True

dict_keys(['中國','美國','法國])

dict_values(['北京','華盛頓','巴黎'])

實例:

'北京'

'伊斯蘭堡'

('中國','北京')
練習:

1.映射的表達:映射無處不在,鍵值對也無處不在,統計數據出現的次數,數據是鍵,次數是值。

字典的主要作用:表達鍵值對的數據進而操作他們

2.元素遍歷:

for k in d:

​ <語句塊>

定義:jieba庫是優秀的第三方中文分詞庫,需要額外安裝

安裝方法:(cmd命令下)pip install jieba

作用:利用中文詞庫確定漢字間的關聯概率,字間概率大的組成片語,形成分詞效果,用戶還可以向其中自定義的添加片語。

分類:精確模式、全模式、搜索引擎模式

精確模式:將片語精確的分開,不存在冗餘單詞

全模式:將所有可能的片語都掃描出來,有冗餘

搜索引擎模式:在精確模式的基礎上,將長詞再次切分

舉例:

['中國','是','一個','偉大','的','國家']

['中國','國是','一個','偉大','的','國家']

['中華','華人','人民','共和','共和國','中華人民共和國','是','偉大','的']

需求:一篇文章中出現的詞的頻率統計

分類:英文文本,中文文本

舉例:

英文:哈姆雷特(hamlet)

中文:三國演義(threekingdoms)

5. Python 數據模型

Python 風格的關鍵完全體現在 Python 的數據模型上,數據模型所描述的 API ,為使用最地道的語言特性來構建開發者自己的對象提供了工具。

當 Python 解析器遇到特殊句法時,會使用特殊方法去激活一些基本的對象操作。特殊方法以雙下劃線開頭,以雙下劃線結尾。如: obj[key] 的背後就是 __getitem__ 方法。魔術方法是特殊方法的昵稱,特殊方法也叫雙下方法。

使用 __getitem__ 和 __len__ 創建一摞有序的紙牌:

上面的例子,使用 collections.namedtuple 構建了一個簡單的類來表示一張紙牌, namedtuple 用以構建只有少數屬性但沒有方法的類。

我們自定義的 FrenchDeck 類可以像任何 python 標准集合類型一樣使用 len() 函數,查看一疊牌有多少張:

也可以像列表一樣,使用位置索引, d[i] 將調用 __getitem__ 方法:

也可以使用標准庫模塊提供的 random.choice 方法,從序列中隨機選取一個元素。下面,我們如隨機取出一張紙牌:

現在我們已經體會到通過 python 特殊方法,來使用 Python 數據模型的 2 個好處:

因為 __getitem__ 方法把 [] 操作交給了 self.cards 列表,所以我們的 FrenchDeck 實例自動支持切片:

僅僅實現了 __getitem__ 方法,這一摞牌即變得可迭代:

運行結果:

也可以直接調用內置的 reversed 函數,反向迭代 FrenchDeck 實例:

運行結果:

迭代通常是隱式的,比如一個集合類型沒有實現 __contains__ 方法,那麼 in 運算符就會按順序做一次迭代搜索。

因此, in 運算符可以用在我們的 FrenchDeck 實例上,因為它是可迭代的:

FrenchDeck 還可以使用 Python 標准庫中的 sorted 函數,實現排序:

首先定義一個排序依據的函數:

優先按 rank 的大小排序,rank 相同時則比較 suit 的值:

運行結果:

優先按 suit 的大小排序,suit 相同時則比較 rank 的值:

運行結果:

按照目前的設計,FrenchDeck 還不支持洗牌,因為它是不可變的:

shuffle 函數要調換集合中元素的位置,而 FrenchDeck 只實現了不可變的序列協議,可變的序列還必須提供 __setitem__ 方法:

洗牌:

沒有任何的返回值,可見 random.shuffle 就地修改了可變序列 d 。為便於觀察結果,我們定義輸入的輸出函數:

運行結果:

每次洗牌,都是一個隨機的序列:

首先明確一點,特殊方法的存在是為了被 Python 解析器調用的,例如:我們不會使用 obj.__len__() 這種寫法,而是 len(obj) 。在執行 len(obj) 時,如果 obj 是一個自定義類的對象,那麼 Python 會自己去調用我們實現的 __len__ 方法。

對於 Python 內置的數據類型,比如列表、字元串、位元組序列等,那麼 CPython 會抄個近路, __len__ 實際上會返回 PyVarObject 里的 ob_size 屬性,這是因為直接讀取屬性比調用一個方法要快得多。

很多時候,特殊方法的調用是隱式的,比如 for i in x: 這個語句其實是調用 iter(x) ,而這個函數的背後是 x.__iter__() 方法。

通過內置函數如來使用特殊方法是最好的選擇。這些內置函數不僅會調用這些方法,通常還提供額外的好處,對於內置類型來說,它們的速度更快。

下面,我們通過定義一個簡單的二維向量類,再來體會一下 Python 特殊方法的美妙:

使用 Vector 類,就像使用 Python 內置的數據類型一樣簡單:

6. Python中的幾種特殊數據類型小結

下面介紹了Python中的6種特殊數據類型:

1.list:列表

是一種有序的數據集合,在列表數據結構中的類型並不唯一

定義形式:L=['Micha',100,True]

輸出整個列表的時候顯示為['Micha',100,True]

輸出單個的數值則為:Micha

a.訪問,直接使用L[0]表示第一個元素或者使用L[-1]表示最後一個數據,以此類推,但是注意訪問不能越界(訪問的序號不能超過元素的總數)。

b.添加新元素:使用L.append(100)直接將100加入列表末尾,或者使用L.insert(0,'paul')將paul插入任意位置。

c.刪除元素:L.pop()刪除最後一個元素,或者L.pop(2)刪除第2個位置的元素。

d.替換元素:直接賦值就可以了L[2]=100

2.tuple:元組

是一種有序的列表,但是其一旦創立完畢就不能夠更改,即不能插入,刪除裡面的元素,訪問的方式跟List結構一致。

a.t=()其列印後輸出的形式是()

若t中的數據為一個數字則需要在後面加逗號,以區分普通數字,如t=(1,),列印出(1,)而非1,多元素的話則沒有這個要求。

b.可以在不變的tuple中加入可變的List如t=(『a』,'b',['A','B'])

3.dict:字典

d = {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}

len()函數可以計算任意集合的大小

其中可以簡單地使用d[key]的形式來查找對應的value,這和list很像,不同之處是,list必須使用索引返回對應的元素,而dict使用key,當key不存在的時候,使用該key可能出現錯誤,因此:要避免KeyError發生,有兩個辦法:

一是先判斷一下key是否存在,用in操作符:

if'Paul' in d:

print d['Paul']

如果'Paul'不存在,if語句判斷為False,自然不會執行print d['Paul'],從而避免了錯誤。

二是使用dict本身提供的一個get方法,在Key不存在的時候,返回None:

>>>print d.get('Bart')

59

a.dict中的key不能重復,且dict中的存儲的對應值沒有順序,列印出的東西可能是無序的

b.dict的更新:使用d[『paul']=72求解

c.dict遍歷:

d = {'Adam': 95, 'Lisa': 85, 'Bart': 59 }

>>>for key in d:

...print key

遍歷只能獲得key的值,需要通過key值獲得對應的value

4.set:集合

無序但是所有元素唯一,不重復

a.定義:s = set(['A', 'B', 'C']),查看set的內容:

>>>print s

set(['A','C', 'B'])

可以用in來判斷是否存在於集合中

b.遍歷

s =set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for xin s:

print x[0]+':',x[1]

c.添加元素到集合中

s.add(4)

d.刪除元素

s.remove(4)若該元素不在集合中將會報錯

5.Unicode編碼

Python在後來添加了對Unicode的支持,以Unicode表示的字元串用u'...'表示,比如:

printu'中文'

注意:不加u,中文就不能正常顯示中文。

a.轉義形式:u'中文 日文 韓文'

b.輸出多行:

u'''第一行

第二行'''

c.raw+多行的形式:

ur'''Python的Unicode字元串支持"中文",

"日文",

"韓文"等多種語言'''

如果中文字元串在Python環境下遇到UnicodeDecodeError,這是因為.py文件保存的格式有問題。可以在第一行添加註釋

# -*-coding: utf-8 -*-

目的是告訴Python解釋器,用UTF-8編碼讀取源代碼。然後用Notepad++另存為, 並選擇UTF-8格式保存。

6.raw的作用

如果一個字元串包含很多需要轉義的字元,對每一個字元都進行轉義會很麻煩。為了避免這種情況,我們可以在字元串前面加個前綴r,表示這是一個「raw」字元串,裡面的字元就不需要轉義了。例如:

r'(~_~)//'

但是r'...'表示法不能表示多行字元串,也不能表示包含'和"的字元串,如果要表示多行字元串。

7. python中不可變的組合數據類型

Python中:

不可變數據類型:immutable,如數字、元組、字元串
可變數據類型:mutable,如列表、集合、字典
可以使用id()的進行查看(id()用來返回數據的內存地址)
可變和不可變說的是變數的值和變數引用的內存地址
不可變數據類型,變數值變化,變數引用地址就會變化,即該地址的值不變
可變數據類型,變數值變化,變數引用地址不變,即該地址的值可變

8. 計算機二級python

一、 題型及分值分布

1. 單選題共40道,1到10題為公共基礎知識,11到40題是python相關的知識,比如數據結構與演算法、python基礎知識。每道題1分,共40分;

2. 基礎編程題共3道,題目會給一部分寫好的代碼,描述它的作用,然後填補空缺處的代碼,使程序能正常運行。每題5分,共15分;

3. 簡單應用題共2道,一道是利用turtle畫出圖形,一般以代碼補全的方式出現,給出大部分代碼,填寫剩餘的兩三行。另一道難度稍大些,也是填寫代碼,具體題目類型看情況而定,一般要填三四行。前者10分,後者15分,共25分;

4. 綜合應用題共1道,一般是對分詞排序、文件讀寫或管理,要求完整寫出整個程序,並能夠運行成功輸出題目要求的結果。要步驟給分,共20分。

4. 函數的編寫與運用

會編寫def自定義函數,會用return返回值。知道函數的參數分類以及用法,並能區分局部變數與全局變數的作用范圍。

5. 組合數據類型

會運用列表,能對列表進行一些基礎操作。了解元組、集合與字典,並會運用到程序中。熟知一些列表操作、集合操作或者字典操作的專用python函數。

6. 文件操作

知道文件打開、關閉與讀寫的基本函數,掌握並會運用。能對一維、二維數據進行處理表達,會採用CSV格式對它們進行讀寫。

7. python庫

了解turtel庫、random庫、time庫、jieba庫、pyinstaller庫以及一些第三方庫的相關函數,會安裝需要的庫並運用到程序編寫中。

9. python食譜組合的實驗目的

1、python食譜組合的實驗目的是了解 Python 的基本編程環境,熟悉其主要組成部分和使用。
2、熟悉 turtle 庫語法元素,了解其繪圖坐標體系、畫筆控制函數和運動命令函數。通過程序實例,初步掌握 Python 程序設計的基本概念、編程規則和開發過程。
3、掌握 Python 的基本數據類型的概念和使用;運用 Python 的標准數學庫進行數值計算;掌握字元串類型的格式化操作方法和應用。

10. 二級Python----組合數據類型(DAY 5)

1.集合類型概述

Python語言中的集合類型與數學中的集合概念一致,即包含0個或多個數據項的無序組合。

集合是無序組合,用大括弧{}表示,它沒有索引和位置的概念,集合中元素可以動態增加或刪除。

由於集合元素獨一無二,使用集合類型能夠過濾掉重復元素。

集合類型有4個操作符,交集&、並集|、差集-、補集^,操作邏輯與數學定義相同

集合類型有一些常用的操作函數或方法

set()函數將其他的組合數據類型變成集合類型,返回結果是一個無重復且排序任意的集合。set()函數也可以生成空集合變數。

列表類型用中括弧[]表示,也可以通過list(x)函數將集合或字元串類型轉換成列表類型。

列表屬於序列類型,所以列表類型支持序列類型對應的操作

1.序列類型有一些通用的操作符和函數

2.列表的索引

索引是列表的基本操作,用於獲得列表的一個元素。使用中括弧作為索引操作符。

可以使用遍歷循環對列表類型的元素進行遍歷操作,

基本使用方式如下

3.列表的切片

切片是列表的基本操作,用於獲得列表的一個片段,即獲得一個或多個元素。切片後的結果也是列表類型。

切片的使用方式:

切片獲取列表類型從N到M(不包含M)的元素組成新的列表。當K存在時,切片獲取列表類型從N到M(不包含M)以K為步長所對應元素組成的列表。

1.列表的操作方法

ls.append(x)僅用於在列表中增加一個元素,如果希望增加多個元素,可以使用加號+,將兩個列表合並。

可以使用Python保留字del對列表元素或片段進行刪除。

如下:



使用索引配合等號(=)可以對列表元素進行修改。

補:元組

Python的元組與列表類似,不同之處在於元組的元素不能修改。

元組使用小括弧(),列表使用方括弧。

元組創建很簡單,只需要在括弧中添加元素,並使用逗號隔開即可。

Python語言中的字典使用大括弧{}建立,每個元素是一個鍵值對。

使用方式:

鍵和值通過冒號連接,不同鍵值對通過逗號隔開。大括弧可以表示集合,字典類型也具有和集合類似的性質,即鍵值對之間沒有順序且不能重復。

•字典的索引

列表類型採用元素順序的位置進行索引。由於字典元素「鍵值對」中鍵是值的索引,因此,可以直接利用鍵值對關系索引元素。

利用索引和賦值 = 配合,可以對字典中每個元素進行修改。

使用大括弧可以創建字典。通過索引和賦值配合,可以向字典中增加元素。

字典類型有一些通用的操作函數

字典類型存在一些操作方法

d.keys()返回字典中的所有鍵信息,返回結果是Python的一種內部數據類型dict_keys,專用於表示字典的鍵。如果希望更好的使用返回結果,可以將其轉換為列表類型。

d.values()返回字典中的所有值信息,返回結果是Python的一種內部數據類型dict_values。如果希望更好的使用返回結果,可以將其轉換為列表類型。

d.items()返回字典中的所有鍵值對信息,返回結果是Python的一種內部數據類型dict_items。

d.get(key, default)根據鍵信息查找並返回值信息,如果key存在則返回相應值,否則返回默認值,第二個元素default可以省略,如果省略則默認值為空。

d.pop(key, default)根據鍵信息查找並取出值信息,如果key存在則返回相應值,否則返回默認值,第二個元素default可以省略,如果省略則默認值為空。相比d.get()方法,d.pop()在取出相應值後,將從字典中刪除對應的鍵值對。

d.popitem()隨機從字典中取出一個鍵值對,以元組(key,value)形式返回。取出後從字典中刪除這個鍵值對。

d.clear()刪除字典中所有鍵值對。

此外,如果希望刪除字典中某一個元素, 可以使用Python保留字del。

字典類型也支持保留字in,用來判斷一個鍵是否在字典中。如果在則返回True,否則返回False。

字典可以遍歷循環對其元素進行遍歷

for循環返回的變數名是字典的索引值。如果需要獲得鍵對應的值,可以在語句塊中通過get()方法獲得。

閱讀全文

與python組合數據類型的應用實驗報告相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275