1. 程式人生 > 其它 >Python鞏固基礎02-基本資料型別之資料型別間的轉換

Python鞏固基礎02-基本資料型別之資料型別間的轉換

在python中,資料型別轉換分為隱式型別轉換和顯式型別轉換,隱式型別轉換即python自動進行的轉換,一般發生在整數int和浮點數float之間。而顯式型別轉換則是無法進行自動轉換,需要手動通過內建函式進行不同資料型別的轉換。

隱式型別轉換

>>> 3 + 8
11
>>> 3 + 8.1
11.1

顯式型別轉換

int(x, [base]) 將x轉換為十進位制的整數(直接取整數部分,無四捨五入,相當於向下取整);base引數指定x是什麼進位制數,可選,預設為10;如果只有一個引數,x可以為數字或字串,如果要指定base,x需要為字串(字串中需為數字)。

>>> int(3.9)
3
>>> int('34')
34
# 將八進位制的12轉換為十進位制數
>>> int('12', 8)
10
>>> int('101', 2)
5

float(x),將x轉換為浮點數,x可以為數字或字串(字串中需為數字)。

>>> float(5)
5.0
>>> float('18')
18.0

str(x)將物件x轉換為字串,x可以為數字、list、tuple、dict、set。

>>> str(9)
'9'
>>> str([1, 2])
'[1, 2]'
>>> str({'a': 'm'})
"{'a': 'm'}"
>>> str({1, 2})
'{1, 2}'

eval(str)計算出字串中的有效表示式,返回該表示式。

>>> eval('{1, 2}')
{1, 2}
>>> eval('3+2')
5

tuple(s)將s轉換為一個元組,s需要為可迭代序列。

>>> tuple('hello')
('h', 'e', 'l', 'l', 'o')
>>> tuple({'a': 1, 'b': 2})
('a', 'b')

list(s)將s轉換為一個列表,s需要為可迭代序列。

>>> list('hello')
['h', 'e', 'l', 'l', 'o']
>>> list({'a': 1, 'b': 2})
['a', 'b']

set(s)將s轉換為集合,s需要為可迭代序列,會對s中的元素進行去重。

>>> set('hello')
{'h', 'e', 'l', 'o'}
>>> set({'a': 1, 'b': 2})
{'b', 'a'}

dict(d)建立一個字典,d必須為鍵值對或可迭代物件。

# 關鍵字引數
>>> dict(x=1, y=2)
{'x': 1, 'y': 2}
# 可迭代物件
>>> dict([('a', 1), ('b', 2)])
{'a': 1, 'b': 2}
# 可迭代物件+關鍵字引數
>>> dict([('a', 1), ('b', 2)], c=3)
{'a': 1, 'b': 2, 'c': 3}

chr(i)返回i對應的ascii字元,i為十進位制或十六進位制的數字。

>>> chr(97)
'a'
>>> chr(48)
'0'
>>> chr(0x30)
'0'

ord(c)接收一個字元,返回對應的ascii數值,或者unicode數值,可以與chr(i)配套使用。

>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48

hex(x)將整數轉換為十六進位制字串,x只能為整數。

>>> hex(12)
'0xc'
>>> hex(16)
'0x10'

oct(x)將整數轉換為八進位制字串,x只能為整數。

>>> oct(8)
'0o10'
>>> oct(9)
'0o11'