溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解

發(fā)布時(shí)間:2020-10-22 06:32:08 來(lái)源:腳本之家 閱讀:186 作者:隨風(fēng)行云 欄目:開(kāi)發(fā)技術(shù)

本文實(shí)例講述了Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法。分享給大家供大家參考,具體如下:

python變量的使用不需要進(jìn)行類型聲明(類型名 變量名),給一個(gè)變量名賦什么值就是什么類型。

  • 變量的賦值使用 =

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解

說(shuō)明:雖然python聲明變量時(shí)沒(méi)有一個(gè)類型來(lái)圈注,但它并不是弱類型語(yǔ)言,相反,它是一門(mén)強(qiáng)類型語(yǔ)言。

  • 弱類型的語(yǔ)言的東西沒(méi)有明顯的類型,它能隨著環(huán)境的不同自動(dòng)變換類型;
  • 而強(qiáng)類型則沒(méi)這樣的規(guī)定,不同類型間的操作有嚴(yán)格定義,只有相同類型的變量才能操作

為什么說(shuō) Python 是強(qiáng)類型語(yǔ)言


Python變量命名規(guī)則:

  • 變量名只能是 字母、數(shù)字或下劃線的任意組合
  • 變量名的第一個(gè)字符不能是數(shù)字
  • 不能與關(guān)鍵字重名(關(guān)鍵字用著用著就記熟了)

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解


數(shù)據(jù)類型

整數(shù)int類型:

python3中移除了python2中的long

Python3中沒(méi)有限制int數(shù)值的大小

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(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類型:

  • 可以用小數(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類型:True、False

  • 使用True和False兩個(gè)關(guān)鍵字來(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類型:

  • Python不支持字符類型; 字符會(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'>
  • 常用函數(shù):補(bǔ)充
  • 字符串格式化:補(bǔ)充
  • 原始字符串:補(bǔ)充

列表list類型:

  • list是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。
  • 使用中括號(hào)包裹元素,表明這是一個(gè)列表。[元素,元素,元素,.......]
>>> i=['a',100,True]
>>> type(i)
<class 'list'>
  • 列表的元素不限定數(shù)據(jù)類型,可以是字符串,可以是數(shù)值,可以是布爾類型,也可以是其他列表等等
  • 列表可以是空的: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']
  • 列表常用函數(shù):補(bǔ)充
  • 列表生成式:補(bǔ)充

元組tuple類型:

  • 使用()跟,來(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'>
>>> ####注意上面的類型###
>>> 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類型:

  • 使用鍵-值(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ǔ)充

集合類型:

  • set和dict類似,也是使用大括號(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'>

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解

  • 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ù)類型轉(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"

Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實(shí)例詳解

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《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ì)有所幫助。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI