Python變量、數(shù)據(jù)類(lèi)型、數(shù)據(jù)類(lèi)型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解
本文實(shí)例講述了Python變量、數(shù)據(jù)類(lèi)型、數(shù)據(jù)類(lèi)型轉(zhuǎn)換相關(guān)函數(shù)用法。分享給大家供大家參考,具體如下:
python變量的使用不需要進(jìn)行類(lèi)型聲明(類(lèi)型名 變量名),給一個(gè)變量名賦什么值就是什么類(lèi)型。
- 變量的賦值使用 =

說(shuō)明:雖然python聲明變量時(shí)沒(méi)有一個(gè)類(lèi)型來(lái)圈注,但它并不是弱類(lèi)型語(yǔ)言,相反,它是一門(mén)強(qiáng)類(lèi)型語(yǔ)言。
- 弱類(lèi)型的語(yǔ)言的東西沒(méi)有明顯的類(lèi)型,它能隨著環(huán)境的不同自動(dòng)變換類(lèi)型;
- 而強(qiáng)類(lèi)型則沒(méi)這樣的規(guī)定,不同類(lèi)型間的操作有嚴(yán)格定義,只有相同類(lèi)型的變量才能操作
為什么說(shuō) Python 是強(qiáng)類(lèi)型語(yǔ)言
Python變量命名規(guī)則:
- 變量名只能是 字母、數(shù)字或下劃線(xiàn)的任意組合
- 變量名的第一個(gè)字符不能是數(shù)字
- 不能與關(guān)鍵字重名(關(guān)鍵字用著用著就記熟了)

數(shù)據(jù)類(lèi)型
整數(shù)int類(lèi)型:
python3中移除了python2中的long
Python3中沒(méi)有限制int數(shù)值的大小

- 可以用其他數(shù)制來(lái)表示數(shù)值:二進(jìn)制是以0b開(kāi)頭的,8進(jìn)制是以0O(第二個(gè)是英文o,大小寫(xiě)都可以)開(kāi)頭的,16進(jìn)制是以0x開(kāi)頭的
>>> i=0b1111 >>> print(i) 15 >>> i=0x0010 >>> print(i) 16 >>> i=0o0010 >>> print(i) 8 >>> i=0O0010 >>> print(i) 8
小數(shù)float類(lèi)型:
- 可以用小數(shù)表示:3.1415,1.5,.......
- 也可以用科學(xué)計(jì)數(shù)法表示(10用e替代,比如0.000012可以寫(xiě)成
1.2e-5)
>>> a=1.5 >>> print(a) 1.5 >>> a=-9999.5 >>> print(a) -9999.5 >>> a=1.5e5 >>> print(a) 150000.0 >>> a=1.5e-10 >>> print(a) 1.5e-10 >>> a=0.0000000000000001 >>> print(a) 1e-16
注:對(duì)于太小的數(shù),會(huì)自動(dòng)轉(zhuǎn)化成科學(xué)計(jì)數(shù)法表示,太大的數(shù)不會(huì)自動(dòng)轉(zhuǎn)化
布爾bool類(lèi)型:True、False
- 使用True和False兩個(gè)關(guān)鍵字來(lái)表示布爾類(lèi)型
- 可以使用非零數(shù)值表示True,但總覺(jué)得這是一個(gè)不好的習(xí)慣
>>> type(True) <class 'bool'> >>> type(False) <class 'bool'> >>> a=bool(2) >>> a True >>> a=int(True) >>> a 1 >>> print(int(False)) 0
字符串str類(lèi)型:
- Python不支持字符類(lèi)型; 字符會(huì)被視為長(zhǎng)度為
1的字符串 - 可以使用兩個(gè)單引號(hào),或兩個(gè)雙引號(hào)來(lái)代表字符串
>>> type("aaaa")
<class 'str'>
>>> type('aaaa')
<class 'str'>
- 可以使用下標(biāo)來(lái)訪問(wèn)字符串的值【-1代表最后一位】:
>>> str1="123" >>> str1[0] '1' >>> str1[-1] '3'
- 可以對(duì)字符串進(jìn)行切片(切片方法:字符串名[左下標(biāo):右下標(biāo)(不取到右下標(biāo))]),返回值是切片后的字符串,但并不會(huì)改變?cè)址闹?/li>
【 [:]代表完全切片,[:右下標(biāo)]代表從零開(kāi)始,[左下邊:]代表結(jié)尾是最后一位,-1下標(biāo)代表最后一位 】
【切片也可以有間隔,用法字符串名[左下標(biāo):右下標(biāo):間隔] 】
>>> hello="hello world!" >>> new_hello=hello[:] >>> new_hello 'hello world!' >>> hello[:2] 'he' >>> hello[1:3] 'el' >>> hello[1:-1] 'ello world'
>>> hello[1:-1:1] 'ello world' >>> hello[1:-1:2] 'el ol'
- 可以使用三引號(hào)(單引號(hào)或雙引號(hào))來(lái)代表多行字符串
>>> type("""hahah
haha
hahah""")
<class 'str'>
>>> type('''第一行
第二行
第三行''')
<class 'str'>
列表list類(lèi)型:
- list是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。
- 使用中括號(hào)包裹元素,表明這是一個(gè)列表。[元素,元素,元素,.......]
>>> i=['a',100,True] >>> type(i) <class 'list'>
- 列表的元素不限定數(shù)據(jù)類(lèi)型,可以是字符串,可以是數(shù)值,可以是布爾類(lèi)型,也可以是其他列表等等
- 列表可以是空的:list1=[]
- 可以使用list函數(shù)來(lái)創(chuàng)建列表
>>> list("abcd")
['a', 'b', 'c', 'd']
- 列表也可以使用下標(biāo)來(lái)訪問(wèn)元素,也可以切片,操作與字符串相同。
- 列表可以替換元素【使用 = 】:
>>> i ['a', 100, True] >>> i[0]='b' >>> i ['b', 100, True]
- 如果列表中包含列表時(shí),如果要取子列表中的元素,相當(dāng)于操作“二維數(shù)組”,使用 列表名[索引][索引]:
>>> i ['b', 100, True] >>> l=[i,"helloworld"] >>> l [['b', 100, True], 'helloworld'] >>> l[0][0] 'b'
- 可以使用“+”拼接列表,使用*重復(fù)列表
>>> l2=i*2 >>> l2 ['b', 100, True, 'b', 100, True] >>> l3=i+l >>> l3 ['b', 100, True, ['b', 100, True], 'helloworld']
元組tuple類(lèi)型:
- 使用()跟,來(lái)表示元組,當(dāng)tuple中只有一個(gè)元素時(shí),逗號(hào)可以特別的說(shuō)明這是一個(gè)tuple,實(shí)際上,python也允許tuple定義時(shí)沒(méi)有括號(hào)
>>> t1=('a',1,True)
>>> type(t1)
<class 'tuple'>
>>> t2=('a')
>>> type(t2)
<class 'str'>
>>> ####注意上面的類(lèi)型###
>>> t3=('a',)
>>> type(t3)
<class 'tuple'>
>>> tuple2=1,2,3,4,5 >>> type(tuple2) <class 'tuple'> >>> tuple2 (1, 2, 3, 4, 5)
- 有序列表叫元組,tuple的元素一旦初始化就不能修改,但可以存儲(chǔ)list,因?yàn)閠uple并不會(huì)復(fù)制一份list到自己的內(nèi)存中,它只會(huì)存儲(chǔ)list的內(nèi)存指向,只要list的內(nèi)存指向不變,就不跟tuple的不變?cè)瓌t沖突。
>>> t1=('a',i)
>>> t1
('a', ['b', 100, True])
>>> id(t1[1])
1673650817160
>>> id(i)
1673650817160
- tuple也可以可以使用下標(biāo)來(lái)訪問(wèn)元素,也可以切片,操作與字符串相同。
- 元組可以為空
- 元組常用函數(shù)
tuple一旦初始化就不能修改,所以它沒(méi)有append()、insert(),也沒(méi)有pop()等能增刪元素的方法
>>> tuple1=(1,2,3,4) >>> print(tuple1.index(2))#查找指定元素的下標(biāo) 1 >>> print(tuple1.count(2))#查找某元素存在的數(shù)量 1
字典dict類(lèi)型:
- 使用鍵-值(key-value)存儲(chǔ)
- 由于其哈希特性,因此具有極快的查找速度
- 可以使用{鍵1:值1,鍵2:值2,鍵3:值3 ...}來(lái)定義一個(gè)字典
>>> d1={'a':'apple','b':'banana','c':'cabbage'}
>>> type(d1)
<class 'dict'>
- 字典是使用哈希算法來(lái)計(jì)算對(duì)應(yīng)對(duì)應(yīng)值的位置的,所以key必須是固定不可變的,在Python中,字符串、整數(shù)等都是不可變的,所以,可以作為key。其余元素可變的對(duì)象如list、set、dict就不能作為key,因?yàn)槠湓亟Y(jié)果不確定,無(wú)法確定哈希值。
>>> l1=['a'] >>> d1[l1]='c' Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> d1[l1]='c' TypeError: unhashable type: 'list'
- dict內(nèi)部存放的順序和key放入的順序是沒(méi)有關(guān)系的
- 可以使用 字典名[鍵] 快速查找出對(duì)應(yīng)的值,鍵不存在則無(wú)法查找
>>> d1
{'a': 'apple', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['a']
'apple'
>>> d1['d']
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
d1['d']
KeyError: 'd'
- 可以給某一個(gè)鍵的對(duì)應(yīng)的值重新賦值,但由于一個(gè)key只能對(duì)應(yīng)一個(gè)value,所以新的賦值會(huì)把就得值覆蓋掉【如果定義的時(shí)候出現(xiàn)多個(gè)同名的鍵,這個(gè)鍵的值以最后的賦值為準(zhǔn)】
>>> d1
{'a': 'apple', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['a']='apple pen'
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
- 可以使用 字典名[一個(gè)未使用的鍵]=值 來(lái)添加一個(gè)鍵值對(duì):
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['ai']='python'
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c', 'ai': 'python'}
- 注:直接迭代字典,只能迭代出key
>>> dict10={1:"蘋(píng)果","雪碧":"雪梨"}
>>>
>>> for i in dict10:
print(i)
1
雪碧
- 使用 字典名[key] 獲取不存在的鍵時(shí)會(huì)拋出異常KeyError,可以使用成員運(yùn)算符來(lái)避免或使用get()來(lái)避免
>>> dict10
{1: '蘋(píng)果', '雪碧': '雪梨'}
>>> 1 in dict10
True
>>> 3 in dict10
False
>>> print(dict10.get(3))
None
>>> print(dict10.get(1))
蘋(píng)果
- 字典常用函數(shù):補(bǔ)充
集合類(lèi)型:
- set和dict類(lèi)似,也是使用大括號(hào)包裹
- 可以使用大括號(hào)來(lái)定義一個(gè)集合
>>> s1={'a','b','c'}
>>> s1
{'b', 'c', 'a'}
>>> type(s1)
<class 'set'>
- 可以使用set來(lái)定義一個(gè)集合,set函數(shù)的參數(shù)為一個(gè)可迭代對(duì)象(Iterable)
>>> s2=set() >>> type(s2) <class 'set'> >>> s3=set(['a','b','c']) >>> type(s3) <class 'set'>


- set不能使用下標(biāo)來(lái)取出元素
- set的原理和dict一樣,所以,同樣不可以放入可變對(duì)象,因?yàn)樗彩鞘褂霉?lái)計(jì)算計(jì)算結(jié)果的,可以記作set與dict不同的是它只存儲(chǔ)key,不存儲(chǔ)value【set()函數(shù)傳入一個(gè)字典作為參數(shù)時(shí),只取key作為結(jié)果】
>>> s3.add(['cbd']) Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> s3.add(['cbd']) TypeError: unhashable type: 'list'
- 集合的常用函數(shù):補(bǔ)充
數(shù)據(jù)類(lèi)型轉(zhuǎn)換相關(guān)函數(shù):
int()函數(shù)可以把其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為整數(shù):- float( )函數(shù)可以把其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換成浮點(diǎn)數(shù)
- str( )函數(shù)可以把其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換成字符串類(lèi)型
- bool( )函數(shù)可以把其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換成布爾類(lèi)型
- tuple()將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為元組。
- set()將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為集合。
>>> print(type(int("123")))
<class 'int'>
>>> print(type(float("123")))
<class 'float'>
>>> float("123")
123.0
>>> str(123)
'123'
>>> bool(2)
True
>>> list("123")
['1', '2', '3']
>>> tuple("123")
('1', '2', '3')
注:轉(zhuǎn)換是有規(guī)則的,要符合規(guī)則才能轉(zhuǎn)化,比如int()不能轉(zhuǎn)換"abc"

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python數(shù)字圖像處理數(shù)據(jù)類(lèi)型及顏色空間轉(zhuǎn)換
- python數(shù)據(jù)處理之Pandas類(lèi)型轉(zhuǎn)換的實(shí)現(xiàn)
- Python數(shù)據(jù)類(lèi)型轉(zhuǎn)換詳解
- Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類(lèi)型,如str轉(zhuǎn)float的實(shí)現(xiàn)
- Python如何實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類(lèi)型轉(zhuǎn)換
- Python常用數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換總結(jié)
- Python變量和數(shù)據(jù)類(lèi)型和數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
相關(guān)文章
python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù)
這篇文章主要介紹了python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Python中的上下文管理器相關(guān)知識(shí)詳解
這篇文章主要介紹了Python中的上下文管理器相關(guān)知識(shí)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python黑魔法遠(yuǎn)程控制開(kāi)機(jī)的實(shí)例
這篇文章主要介紹了Python黑魔法遠(yuǎn)程控制開(kāi)機(jī)的實(shí)例,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
Python讀取英文文件并記錄每個(gè)單詞出現(xiàn)次數(shù)后降序輸出示例
這篇文章主要介紹了Python讀取英文文件并記錄每個(gè)單詞出現(xiàn)次數(shù)后降序輸出,涉及Python文件讀取、字符串替換、分割以及字典遍歷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
使用 python pyautogui實(shí)現(xiàn)鼠標(biāo)鍵盤(pán)控制功能
pyautogui是一個(gè)可以控制鼠標(biāo)和鍵盤(pán)的python庫(kù),類(lèi)似的還有pywin32。這篇文章主要介紹了python中的pyautogui實(shí)現(xiàn)鼠標(biāo)鍵盤(pán)控制功能,需要的朋友可以參考下2019-08-08
python和anaconda區(qū)別以及先后安裝的問(wèn)題詳解
Anaconda(開(kāi)源的Python包管理器)是一個(gè)python發(fā)行版,包含了conda、Python等180多個(gè)科學(xué)包及其依賴(lài)項(xiàng),下面這篇文章主要給大家介紹了關(guān)于python和anaconda區(qū)別以及先后安裝問(wèn)題的相關(guān)資料,需要的朋友可以參考下2022-05-05
Python中虛擬環(huán)境依賴(lài)問(wèn)題的解決方案詳解
在Python開(kāi)發(fā)中,虛擬環(huán)境和依賴(lài)管理是必不可少的工具,本文將以一個(gè)實(shí)際案例為基礎(chǔ),詳細(xì)分析如何解決Python虛擬環(huán)境中的依賴(lài)問(wèn)題,希望對(duì)大家有所幫助2025-03-03
Python中如何快速解析JSON對(duì)象數(shù)組
由于瀏覽器可以迅速地解析JSON對(duì)象,它們有助于在客戶(hù)端和服務(wù)器之間傳輸數(shù)據(jù),本文將描述如何使用Python的JSON模塊來(lái)傳輸和接收J(rèn)SON數(shù)據(jù)2023-09-09

