Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解
本文實(shí)例講述了Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法。分享給大家供大家參考,具體如下:
python變量的使用不需要進(jìn)行類型聲明(類型名 變量名),給一個(gè)變量名賦什么值就是什么類型。
- 變量的賦值使用 =
說明:雖然python聲明變量時(shí)沒有一個(gè)類型來圈注,但它并不是弱類型語(yǔ)言,相反,它是一門強(qiáng)類型語(yǔ)言。
- 弱類型的語(yǔ)言的東西沒有明顯的類型,它能隨著環(huán)境的不同自動(dòng)變換類型;
- 而強(qiáng)類型則沒這樣的規(guī)定,不同類型間的操作有嚴(yán)格定義,只有相同類型的變量才能操作
為什么說 Python 是強(qiáng)類型語(yǔ)言
Python變量命名規(guī)則:
- 變量名只能是 字母、數(shù)字或下劃線的任意組合
- 變量名的第一個(gè)字符不能是數(shù)字
- 不能與關(guān)鍵字重名(關(guān)鍵字用著用著就記熟了)
數(shù)據(jù)類型
整數(shù)int類型:
python3中移除了python2中的long
Python3中沒有限制int數(shù)值的大小
- 可以用其他數(shù)制來表示數(shù)值:二進(jìn)制是以0b開頭的,8進(jìn)制是以0O(第二個(gè)是英文o,大小寫都可以)開頭的,16進(jìn)制是以0x開頭的
>>> i=0b1111 >>> print(i) 15 >>> i=0x0010 >>> print(i) 16 >>> i=0o0010 >>> print(i) 8 >>> i=0O0010 >>> print(i) 8
小數(shù)float類型:
- 可以用小數(shù)表示:3.1415,1.5,.......
- 也可以用科學(xué)計(jì)數(shù)法表示(10用e替代,比如0.000012可以寫成
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類型:True、False
- 使用True和False兩個(gè)關(guān)鍵字來表示布爾類型
- 可以使用非零數(shù)值表示True,但總覺得這是一個(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類型:
- Python不支持字符類型; 字符會(huì)被視為長(zhǎng)度為
1
的字符串 - 可以使用兩個(gè)單引號(hào),或兩個(gè)雙引號(hào)來代表字符串
>>> type("aaaa") <class 'str'> >>> type('aaaa') <class 'str'>
- 可以使用下標(biāo)來訪問字符串的值【-1代表最后一位】:
>>> str1="123" >>> str1[0] '1' >>> str1[-1] '3'
- 可以對(duì)字符串進(jìn)行切片(切片方法:字符串名[左下標(biāo):右下標(biāo)(不取到右下標(biāo))]),返回值是切片后的字符串,但并不會(huì)改變?cè)址闹?/li>
【 [:]代表完全切片,[:右下標(biāo)]代表從零開始,[左下邊:]代表結(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))來代表多行字符串
>>> type("""hahah haha hahah""") <class 'str'> >>> type('''第一行 第二行 第三行''') <class 'str'>
列表list類型:
- list是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。
- 使用中括號(hào)包裹元素,表明這是一個(gè)列表。[元素,元素,元素,.......]
>>> i=['a',100,True] >>> type(i) <class 'list'>
- 列表的元素不限定數(shù)據(jù)類型,可以是字符串,可以是數(shù)值,可以是布爾類型,也可以是其他列表等等
- 列表可以是空的:list1=[]
- 可以使用list函數(shù)來創(chuàng)建列表
>>> list("abcd") ['a', 'b', 'c', 'd']
- 列表也可以使用下標(biāo)來訪問元素,也可以切片,操作與字符串相同。
- 列表可以替換元素【使用 = 】:
>>> 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類型:
- 使用()跟,來表示元組,當(dāng)tuple中只有一個(gè)元素時(shí),逗號(hào)可以特別的說明這是一個(gè)tuple,實(shí)際上,python也允許tuple定義時(shí)沒有括號(hào)
>>> t1=('a',1,True) >>> type(t1) <class 'tuple'> >>> t2=('a') >>> type(t2) <class 'str'> >>> ####注意上面的類型### >>> 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)來訪問元素,也可以切片,操作與字符串相同。
- 元組可以為空
- 元組常用函數(shù)
tuple一旦初始化就不能修改,所以它沒有append()、insert(),也沒有pop()等能增刪元素的方法
>>> tuple1=(1,2,3,4) >>> print(tuple1.index(2))#查找指定元素的下標(biāo) 1 >>> print(tuple1.count(2))#查找某元素存在的數(shù)量 1
字典dict類型:
- 使用鍵-值(key-value)存儲(chǔ)
- 由于其哈希特性,因此具有極快的查找速度
- 可以使用{鍵1:值1,鍵2:值2,鍵3:值3 ...}來定義一個(gè)字典
>>> d1={'a':'apple','b':'banana','c':'cabbage'} >>> type(d1) <class 'dict'>
- 字典是使用哈希算法來計(jì)算對(duì)應(yīng)對(duì)應(yīng)值的位置的,所以key必須是固定不可變的,在Python中,字符串、整數(shù)等都是不可變的,所以,可以作為key。其余元素可變的對(duì)象如list、set、dict就不能作為key,因?yàn)槠湓亟Y(jié)果不確定,無法確定哈希值。
>>> 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放入的順序是沒有關(guān)系的
- 可以使用 字典名[鍵] 快速查找出對(duì)應(yīng)的值,鍵不存在則無法查找
>>> 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è)未使用的鍵]=值 來添加一個(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:"蘋果","雪碧":"雪梨"} >>> >>> for i in dict10: print(i) 1 雪碧
- 使用 字典名[key] 獲取不存在的鍵時(shí)會(huì)拋出異常KeyError,可以使用成員運(yùn)算符來避免或使用get()來避免
>>> dict10 {1: '蘋果', '雪碧': '雪梨'} >>> 1 in dict10 True >>> 3 in dict10 False >>> print(dict10.get(3)) None >>> print(dict10.get(1)) 蘋果
- 字典常用函數(shù):補(bǔ)充
集合類型:
- set和dict類似,也是使用大括號(hào)包裹
- 可以使用大括號(hào)來定義一個(gè)集合
>>> s1={'a','b','c'} >>> s1 {'b', 'c', 'a'} >>> type(s1) <class 'set'>
- 可以使用set來定義一個(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)來取出元素
- set的原理和dict一樣,所以,同樣不可以放入可變對(duì)象,因?yàn)樗彩鞘褂霉碛?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ù)類型轉(zhuǎn)換相關(guān)函數(shù):
int()
函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換為整數(shù):- float( )函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換成浮點(diǎn)數(shù)
- str( )函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換成字符串類型
- bool( )函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換成布爾類型
- tuple()將其他數(shù)據(jù)類型轉(zhuǎn)換為元組。
- set()將其他數(shù)據(jù)類型轉(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)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換
- python數(shù)據(jù)處理之Pandas類型轉(zhuǎn)換的實(shí)現(xiàn)
- Python數(shù)據(jù)類型轉(zhuǎn)換詳解
- Python3 使用map()批量的轉(zhuǎn)換數(shù)據(jù)類型,如str轉(zhuǎn)float的實(shí)現(xiàn)
- Python如何實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
- Python常用數(shù)據(jù)類型之間的轉(zhuǎn)換總結(jié)
- Python變量和數(shù)據(jù)類型和數(shù)據(jù)類型的轉(zhuǎn)換
相關(guān)文章
Python 3.3實(shí)現(xiàn)計(jì)算兩個(gè)日期間隔秒數(shù)/天數(shù)的方法示例
這篇文章主要介紹了Python 3.3實(shí)現(xiàn)計(jì)算兩個(gè)日期間隔秒數(shù)/天數(shù)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了基于Python3.3的日期時(shí)間轉(zhuǎn)換與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-01-01Python的collections模塊中的OrderedDict有序字典
字典是無序的,但是collections的OrderedDict類為我們提供了一個(gè)有序的字典結(jié)構(gòu),名副其實(shí)的Ordered+Dict,下面通過兩個(gè)例子來簡(jiǎn)單了解下Python的collections模塊中的OrderedDict有序字典:2016-07-07python django model聯(lián)合主鍵的例子
今天小編就為大家分享一篇python django model聯(lián)合主鍵的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python制作數(shù)據(jù)導(dǎo)入導(dǎo)出工具
正好最近在學(xué)習(xí)python,于是打算用python實(shí)現(xiàn)了數(shù)據(jù)導(dǎo)入導(dǎo)出工具,由于是新手,所以寫的有些不完善的地方還請(qǐng)見諒2015-07-07Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例
這篇文章主要介紹了Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Django 返回json數(shù)據(jù)的實(shí)現(xiàn)示例
這篇文章主要介紹了Django 返回json數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03