您好,登錄后才能下訂單哦!
有關python的版本和安裝以及概念特點可以參考上篇博文,python語言基礎
此博文主要討論問題如下:
一、python的變量
二、python常用的數據類型
一、什么是python的變量?
變量是計算機內存的一塊區域,變量可以存儲任何值,而且值可以改變。變量名由字母、數字和下劃線組成。需要注意的是,不能使用python的關鍵字,英文大小寫字母敏感,第1個字符必須是字母或下劃線,不能是數字,示例代碼如下:
>>> x=1
>>> _x=2
>>> print(x)
1
>>> print(_x)
2
x和_x都是合法的變量名,print()是輸出函數,能夠輸出變量的值,也可以不使用小括號。
python中的變量不需要聲明,變量的賦值操作即是變量聲明和定義的過程,如_x=2即是聲明和定義的過程。還可以給幾個變量同時賦值,示例代碼如下:
>>> a,b,c=4,5,6
>>> print (a)
4
>>> print(b,c)
5 6
a,b,c=4,5,6同時給3個變量進行了賦值操作,簡化了多個變量賦值的代碼。
二、python常用的數據類型有哪些?
python內置的數據類型有數字、字符串、元組、列表和字典。
1、數字
數字類型包括整~型、浮點型、布爾型等,聲明時由python內置的基本數據類型來管理變量,在程序的后臺實現數值與類型的關聯,以及轉換等操作。根據變量的值自動判斷變量的類型,程序員不需要關心變量空間是什么類型,只要知道創建的變量存放了一個數,程序只是對這個數值進行操作。
1)整型和浮點型
整數使用整~型表示,有小數位使用浮點型表示,示例代碼如下:
>>> w=123
>>> print(w)
123
>>> w=5.21
>>> print(w)
5.21
以上代碼首先定義了變量w=123,此時的w值是整數,w即使整型變量,當w=5.21時,w又成為了浮點型變量,由此可以看出,變量的類型是能改變的,這點與Java、C#語言等是有區別的。這是因為當python給已經存在
的變量再次賦值時,實際上是創建了一個新的變量,即使變量名相同,但標識并不相同,變量的標識可以使用id函數輸出。
>>> w=123
>>> print(id(w))
140709308982112
>>>
>>> w=5.21
>>> print(id(w))
2193072831584
以上代碼都是對變量x的標識進行打印,賦值前后的標識并不相同。
2)布爾類型
布爾型用于邏輯運算,有兩個值True、False,表示真和假。示例代碼如下:
>>> 10>50
False
>>>
>>> 30>15
True
3)python運算符
python中使用的算術運算符和數學運算中使用的符號基本相同,由+、-、*、/、%、//、 *****(加、減、乘、除、取余、整余、次方)和小括號組成運算順序也是先乘除后加減,小括號優先。示例代碼如下:
>>> x,y=10,2
>>> print(x+y,x-y,x*y,x/y)
12 8 20 5.0
>>> print (2+4*8)
34
>>> print((6+5)*4)
44
下面兩個算術運算符是%和****(求模運算和求冪運算),求模運算取余數,求冪是計算累乘的結果,也就是次方,示例代碼如下:
>>> 8%5
3
>>> 8%4
0
>>> 2**2
4
>>> 6**3
216
>>> 2**4
16
2、字符串
python中的字符串類型是一組包含數字、字母和符號的集合,作為一個整體使用。
1)字符串使用
python中有3種表示字符串的方式,單引號、雙引號、三引號,示例代碼如下:
>>> name='王五'
>>> address="長安街"
>>> content='''歡迎來到北京'''
>>> print (name)
王五
>>> print(address)
長安街
>>> print(content)
歡迎來到北京
變量name使用單引號,變量address使用雙引號,變量content使用三引號,他們都是合法的python字符串類型。需要注意的是,單引號和雙引號的作用是一樣的,可以根據習慣使用,但定義多行文字時,必須要使用三引號。
常用的轉義字符如下圖:
2)字符串的其他用法
python的字符串可以進行乘法的操作,可以用一個整型數字和字符串相乘,如用數字3乘字符串“a”,結果是字符串“aaa”,相同于字符串“a”連接了3遍,示例代碼如下:
>>> print(3*'a')
aaa
>>> print (5*'b')
bbbbb
3、列表
列表(list)是python中非常重要的數據類型,通常作為函數的返回類型。由一組元素組成,列表可以實現添加、刪除和查找操作,元素值可以被修改。
1)列表的定義
列表是python內置的一種數據結構,由中括號定義,元素以逗號分開,語法如下:
2)列表的取值
列表中的數據是有序的,按定義時的順序排好,可以單獨取出某一位置元素的數值,語法如下:
示例代碼如下:
>>> num=['111','222','333']
>>> print(num[0])
111
>>> print(num[1])
222
>>> print(num[2])
333
定義了列表num,存儲了3個字符串順序是‘111’、‘222’、‘333’,取值時用小括號列表名num加上中括號,數字表示索引位置,需要注意位置是由0開始依次遞增。
>>> num=['111','222','333','444']
>>> print(num[0:1])
['111']
>>>
>>> print(num[0:3])
['111', '222', '333']
>>> print(num[1:2])
['222']
>>>
>>> print(num[2:])
['333', '444']
[0:1]表示由索引0開始,索引位置1之前的元素,所有只能取到第1個元素,[0:3]可以取到索引3之前的元素,即列表中第1、2、3個元素,其他的與此相同。
3)修改列表元素值
可以修改指定位置的列表元素值,語法如下:
示例代碼如下:
>>> num=['111','222','333','444']
>>> num[0]='001' #修改
>>> print(num)
['001', '222', '333', '444']
定義列表時,索引位置0的元素是“111”,修改它的值為“001”后,索引位置0元素變為“001”。
4)添加列表元素
可以把一個元素添加到列表的最后,語法如下:
示例代碼如下:
>>> num=['111','222','333','444']
>>> print (num)
['111', '222', '333', '444']
>>> num.append('555') #末尾添加新元素
>>> print (num)
['111', '222', '333', '444', '555']
使用append(’555‘)后,“555”被添加到列表的末尾。
>>> num=['111','222','333','444']
>>> num.insert(1,'001')
>>> print(num)
['111', '001', '222', '333', '444']
語句insert(1,’001‘)的作用是在索引位置1前插入’001‘,索引位置1的當前元素是’222‘,’001‘插入到它的前面。
5)刪除列表元素
可以刪除列表指定索引位置的元素,語法如下:
示例代碼如下:
>>> num=['111','222','333']
>>> del (num[1])
>>> print(num)
['111', '333']
使用del刪除索引為1的元素’222‘后,輸出列表num中已經不存在’222‘元素。
6)查找列表元素
使用in關鍵字可以查找列表中是否存在指定的數值,語法如下:
元素值 in 列表名
返回布爾類型True或False
示例代碼如下:
>>> num=['111','222','333']
>>> ('111')in num
True
>>> ('444')in num
False
字符串’111‘在列表中存在,返回True;字符串’444‘在列表中不存在,返回False。
7)合并列表
多個列表可以使用加號進行合并,示例代碼如下:
>>> num1=['111','222']
>>> num2=['333','444']
>>> numAll=(num1+num2)
>>> print(numAll)
['111', '222', '333', '444']
>>> numAll=(num2+num1)
>>> print(numAll)
['333', '444', '111', '222']
定義了兩個列表num1和num2,使用加號進行合并操作時,加號后面的列表元素會追加到前面列表的后面。
8)重復列表
使用星號可以對列表進行重復操作,與單獨字符串乘法操作相似,示例代碼如下:
>>> num1=['111','222']
>>> num=(num1*5)
>>> print(num)
['111', '222', '111', '222', '111', '222', '111', '222', '111', '222']
4、元組
元組(tuple)和列表類似,也是python的一種數據結構,由不同的元素組成,每個元素可以存儲不同類型的數據,如字符串、數字、甚至元組。但元組是不可以修改的,即元組創建后不能做任何的修改操作,元組通常表示一行數據,而元組中的元素表示不同的數據項。
1)元組的創建
元組由關鍵字小括號定義,一旦創建后就不能修改元組的內容,定義的語法如下:
如下修改柱狀圖的代碼,加入元組的定義,示例代碼如下:
>>>import matplotlib.pyplot as plt
>>> x=(1,9) #元組
>>> height_all=(6,10) #元組
>>> width_all=4
>>> title=("cylinder")
>>> plt.bar(x=(1,9),height=(6,10),width=(4))
>>> plt.title(title)
>>> plt.show()
這段代碼依然可以正常運行,與使用列表并沒有區別。元組與列表最大的不同是它是寫保護的,創建后不能做任何的修改。
在使用時元組與列表區別并不大,那么為什么要使用元組呢?主要是因為元組是不可變的,操作速度比列表快,而且因為它不可以修改,數據要更加安全,所以要根據實際情況決定是使用元組還是列表,使程序更加高效合理。
2)元組的操作
元組也可對其元素執行一系列的操作。
元組具有不可變性,所以相比列表的操作要少,其中取值操作與列表是完全相同的,示例代碼如下:
>>> num=('111','222','333')
>>> print (num[0])
111
>>> print (num[1])
222
與列表的取值操作完全相同,都是使用方括號作為關鍵字取值。
元素不允許刪除元組中的元素值,但是可以刪除整個元組,語法如下:
示例代碼如下:
>>> num=('111','222','333','444')
>>> del (num[0]) #刪除元素,報錯
Traceback (most recent call last):
File "<pyshell#219>", line 1, in <module>
del (num[0])
TypeError: 'tuple' object doesn't support item deletion
>>> print (num)
('111', '222', '333', '444')
>>> del (num) #刪除元組后元組不存在,報錯
>>> print (num)
Traceback (most recent call last):
File "<pyshell#222>", line 1, in <module>
print (num)
NameError: name 'num' is not defined
>>>
定義元組num后,刪除某一個元素程序報錯。刪除整個元組后,在想使用這個元組,編譯器會報未定義變量的錯誤。
>>> num=('111','222','333','444') #元組
>>> listNum =list(num) #轉換為列表
>>> print (listNum)
['111', '222', '333', '444']
>>> (listNum[0])='001' #修改列表
>>> print( listNum)
['001', '222', '333', '444']
>>> print (type(num)) #輸出元組類型
<class 'tuple'>
>>> print (type(listNum)) #輸出列表類型
<class 'list'>
這段代碼首先定義了元組num,然后把它轉換為列表listNum,對列表listNum可以做修改元素的操作,使用type()函數輸出了元組的列表的類型。
5、字典
字典(dict)是python中重要的數據類型,字典是由“鍵-值”對組成的集合,字典中的值通過鍵來引用。
1)字典的創建
字典的每個元素是由“鍵-值”對(key-value)組成的,鍵值之間使用冒號分隔,“鍵-值”對之間用逗號隔開,并且被包含在一對花括號中。鍵是唯一的,不能存在多個,且它的值是無序的,鍵可以是數字、字符串、元組,一般用字符串作為鍵。定義的語法如下:
示例代碼如下:
>>> mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
>>> print(mobile)
{'tom': '19991111', 'bob': '19982222', 'alice': '19973333'}
>>> print(type(mobile))
<class 'dict'>
定義了一個字典mobile,存儲的鍵是姓名,值是電話號碼,他們構成了對應的關系,使用type函數可以查看到它的類型是’dict‘。
2)字典的取值操作
字典的取值與元組和列表有所不同,元組和列表都是通過數字索引獲取對應位置的值,而字典是通過鍵獲取對應的值。取值的語法如下:
示例代碼如下:
>>> mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
>>> print(mobile["tom"])
19991111
>>> print(mobile["bob"])
19982222
分別使用鍵“tom”“bob”可以獲取到他們對應的值。需要注意的是,鍵是唯一的,而不同鍵的值卻可以相同,當定義多個鍵相同時,字典中只會保留最后一個定義的鍵值對,示例代碼如下:
>>> mobile = {'tom':'19991111','tom':'1×××222','tom':'19993333'}
>>> print(mobile)
{'tom': '19993333'}
字典中定義了3個“鍵-值”對,他們的鍵是相同的,最后輸出時只有最后一個定義的“鍵-值”對存在。
3)字典的添加、修改、刪除操作
字典添加新元素只需要對新鍵進行賦值即可,字典中不存在的鍵,會自動進行添加。示例代碼如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> (mobile['alice'])='19993333'
>>> print(mobile)
{'tom': '19991111', 'bob': '19982222', 'alice': '19993333'}
字典的鍵’alice‘在定義時并不存在,賦值后,鍵’alice‘被添加到字典中。字典鍵值對的鍵名是區分大小寫的。
修改字典中的元素,直接使用存在的鍵賦值,示例代碼如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> (mobile['bob'])='19993333'
>>> print(mobile)
{'tom': '19991111', 'bob': '19993333'}
刪除字典中的元素,使用del函數,語法如下:
del 字典名['鍵']
示例代碼如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> del (mobile['tom'])
>>> print(mobile)
{'bob': '19982222'}
本章博文到此結束,感謝閱讀
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。