Python入门示例系列12 数据类型转换

Python入门示例系列12 数据类型转换

 

type() 函数

使用 type() 函数可以查看数据类型

示例:

>>> type(123)
<class 'int'>
>>> type(12.3)
<class 'float'>
>>> type("abc")
<class 'str'>
>>> type([1,2,3])
<class 'list'>
>>> type((1,2,3))
<class 'tuple'>
>>> type({1,2,3})
<class 'set'>
>>> type({'a':123})
<class 'dict'>

 

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。

Python 数据类型转换可以分为两种:
    隐式类型转换 - 自动完成
    显式类型转换 - 需要使用类型函数来转换

隐式类型转换


在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
以下实例中,我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

>>> type(1+3)
<class 'int'>
>>> type(1+0.1)
<class 'float'>

 

显式类型转换 

在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。

int() 强制转换为整型:

x = int(1)   # x 输出果为 1
y = int(2.8) # y 输出果为 2
z = int("3") # z 输出果为 3


float() 强制转换为浮点型:

x = float(1)     # x 输出果为 1.0
y = float(2.8)   # y 输出果为 2.8
z = float("3")   # z 输出果为 3.0
w = float("4.2") # w 输出果为 4.2


str() 强制转换为字符串类型:

x = str("s1") # x 输出果为 's1'
y = str(2)    # y 输出果为 '2'
z = str(3.0)  # z 输出果为 '3.0'

 

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数描述示例

int(x)

将x转换为一个整数

>>> int("12")
12
>>> int(12.3)
12

float(x)

将x转换到一个浮点数

 
>>> float(123)
123.0
>>> float("12.3")
12.3

complex(real [,imag])

创建一个复数

 
>>> complex("1+2j")
(1+2j)

 

str(x)

将对象 x 转换为字符串

 
>>> str(123)
'123'
>>> str(12.3)
'12.3'
>>> str(True)
'True'
>>> str([1,2,3])
'[1, 2, 3]'

 

repr(x)

将对象 x 转换为表达式字符串

 
str('xxx')   # str转换后还是原来的值
# 'xxx'
#repr 转换后是在'xxx'的外层又加了一层引号
repr('xxx') # "'xxx'"

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

 
>>>x = 4
>>> eval( '5 * x' )
20
>>> eval('1 + 2')
3

tuple(s)

将序列 s 转换为一个元组。tuple() 可以将字符串,列表,字典,集合转化为元组。

 
>>> a= 'www'
>>> b=tuple(a)
>>> b
('w', 'w', 'w')
>>> a={'www':123,'aaa':234}
>>> b=tuple(a)
>>> b
('www', 'aaa')# 将字段转换为元组时,只保留键!
>>> a=set('abcd')
>>> print (a)
{'c', 'd', 'b', 'a'}
>>> b=tuple(a)
>>> b
('c', 'd', 'b', 'a')

 

list(s)

将序列 s 转换为一个列表。list()可以将字符串,元组,字典,集合转化为列表。

 
>>> list('abc')
['a', 'b', 'c']
>>> list((1,2,3))
[1, 2, 3]
>>> list({1,2,3})
[1, 2, 3]
>>> list({'a':1,'b':2})
['a', 'b']

set(s)

转换为可变集合。可以将字符串,列表,元组,字典转化为集合。

 
>>> set('abc')
{'c', 'b', 'a'}
>>> set([1,2,3])
{1, 2, 3}
>>> set((1,2,3))
{1, 2, 3}
>>> set({'a':1,'b':2})
{'b', 'a'}

dict(d)

创建一个字典。d 必须是一个 (key, value)元组序列。

 
>>>dict()                   # 创建空字典
{}
>>> dict(a='a', b='b', t='t')#传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
#映射函数方式来构造字典
>>> dict(zip(['one', 'two'], [1, 2])) {'two': 2, 'one': 1}
#可迭代对象方式来构造字典
>>> dict([('one', 1), ('two', 2)]) 
{'two': 2, 'one': 1}

frozenset(s)

转换为不可变集合。frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

 
>>> x={1,2}
>>> x.add(3)
>>> x
{1, 2, 3}
>>> y=frozenset(x)
>>> y.add(4)
AttributeError: 'frozenset' 
object has no attribute 'add'

chr(x)

将一个整数转换为一个字符。chr() 函数返回代表指定 unicode 的字符。

Python 2:ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。
Python 3:unichr函数取消了,因为Python3中的chr()不仅仅支持 ASCII 的转换,直接支持了更为适用的Unicode转换。
https://blog.csdn.net/as480133937/article/details/86761329

 
>>> chr(5)
'\x05'
>>> chr(65)
'A'
>>> chr(200)
'È'
>>> chr(512)
'?'
>>> chr(20000)
''

ord(x)

将一个字符转换为它的整数值。通过 ord() 转换回 unicode。

 
>>> ord('西')
35199
>>> ord('')
23433
>>> ord('')
29702
>>> ord('')
24037

hex(x)

将一个整数转换为一个十六进制字符串

 
>>> hex(123)
'0x7b'
>>> hex(0b111)
'0x7'
>>> hex(0o111)
'0x49'

 

oct(x)

将一个整数转换为一个八进制字符串

 
>>> oct(0b111)
'0o7'
>>> oct(111)
'0o157'
>>> oct(0x111)
'0o421'

 

 

系列目录

Python入门示例系列01 为什么学Python

Python入门示例系列02 Python 语言的特点

Python入门示例系列03 安装Python开发工具

Python入门示例系列04 使用 IDLE Shell

Python入门示例系列05 使用PyCharm

Python入门示例系列06 使用PyCharm单步调试

Python入门示例系列07 Python注释

Python入门示例系列08 基础语法

Python入门示例系列09 Python算术运算

Python入门示例系列10 字符串(初级)

Python入门示例系列11 数据类型

Python入门示例系列12 数据类型转换

Python入门示例系列13 列表 List -

REF

https://www.runoob.com/python3/python3-type-conversion.html

https://www.runoob.com/python/python-func-eval.html

https://www.runoob.com/python3/python3-func-tuple.html

https://www.runoob.com/python/python-func-dict.html

posted @ 2022-01-18 00:07  emanlee  阅读(928)  评论(0编辑  收藏  举报