数据类型转换
对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。
Python 数据类型转换可以分为两种:
- 隐式类型转换 - 自动完成
- 显式类型转换 - 需要使用类型函数来转换
隐式类型转换
Python 会自动将一种数据类型转换为另一种数据类型;
Python 会将较小的数据类型转换为较大的数据类型,以避免数据丢失。
显式类型转换
将对象的数据类型转换为所需的数据类型。 使用 int()、float()、str() 等预定义函数来执行显式类型转换。
- int() 强制转换为整型;
- float() 强制转换为浮点型;
- str() 强制转换为字符串类型;
内置函数转换数据类型
主打一个好记方便,那就逐个看看吧!
int(x [,base])
int() 函数用于将一个字符串或数字转换为整型。
参数
x – 字符串或数字。
base – 进制数,默认十进制。
>>>int() # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)
10
>>> int('10',8)
8
float(x)
float() 函数用于将整数和字符串转换成浮点数。
>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123') # 字符串
123.0
complex(real [,imag])
complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
参数说明:
real – int, long, float或字符串;
imag – int, long, float;
>>>complex(1, 2)
(1 + 2j)>>> complex(1) # 数字
(1 + 0j)>>> complex("1") # 当做字符串处理
(1 + 0j)# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j")
(1 + 2j)
str(x)
str() 函数将对象转化为适于人阅读的形式。
>>>s = 'baidu'
>>> str(s)
'baidu'
>>> dict = {'baidu': 'baidu.com', 'google': 'google.com'};
>>> str(dict)
"{'google': 'google.com', 'baidu': 'baidu.com'}"
>>>
repr(x)
repr() 函数将对象转化为供解释器读取的形式。
>>> s = 'baidu'
>>> repr(s)
"'baidu'"
>>> dict = {'baidu': 'baidu.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'baidu': 'baidu.com'}"
>>>
eval(str)
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
字符串表达式可以包含变量、函数调用、运算符和其他 Python 语法元素。
参数
- expression – 表达式。
- globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
- locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
tuple(s)
tuple 函数将可迭代系列(如列表)转换为元组。
参数
iterable – 要转换为元组的可迭代序列。
>>>list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')
list()方法
list() 方法用于将元组或字符串转换为列表。
注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
seq – 要转换为列表的元组或字符串。
#!/usr/bin/python3aTuple = (123, 'Google', 'baidu', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)
set() 函数
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
参数说明:
iterable – 可迭代对象对象;
>>>x = set('runoob')
>>> y = set('google')
>>> x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除
>>> x & y # 交集
set(['o'])
>>> x | y # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
>>> x - y # 差集
set(['r', 'b', 'u', 'n'])
>>>
dict() 函数
dict() 函数用于创建一个字典。
参数说明:
**kwargs – 关键字。
mapping – 元素的容器,映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
iterable – 可迭代对象。
>>>dict() # 创建空字典
{}
>>> dict(a='a', b='b', t='t') # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>>
只使用关键字参数创建字典
numbers = dict(x=5, y=0)
print('numbers =', numbers)
print(type(numbers))empty = dict()
print('empty =', empty)
print(type(empty))
使用可迭代对象创建字典
# 没有设置关键字参数
numbers1 = dict([('x', 5), ('y', -5)])
print('numbers1 =',numbers1)# 设置关键字参数
numbers2 = dict([('x', 5), ('y', -5)], z=8)
print('numbers2 =',numbers2)# zip() 创建可迭代对象
numbers3 = dict(dict(zip(['x', 'y', 'z'], [1, 2, 3])))
print('numbers3 =',numbers3)
使用映射来创建字典
映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。
numbers1 = dict({'x': 4, 'y': 5})
print('numbers1 =',numbers1)# 以下代码不需要使用 dict()
numbers2 = {'x': 4, 'y': 5}
print('numbers2 =',numbers2)# 关键字参数会被传递
numbers3 = dict({'x': 4, 'y': 5}, z=8)
print('numbers3 =',numbers3)
frozenset() 函数
frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
>>>a = frozenset(range(10)) # 生成一个新的不可变集合
>>> a
frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = frozenset('runoob')
>>> b
frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合
>>>
chr() 函数
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
参数
i – 可以是10进制也可以是16进制的形式的数字。
>>>print chr(0x30), chr(0x31), chr(0x61) # 十六进制
0 1 a
>>> print chr(48), chr(49), chr(97) # 十进制
0 1 a
ord() 函数
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
参数
- c – 字符。
返回值
- 返回值是对应的十进制整数。
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
hex() 函数
hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。
参数说明:
- x – 10进制整数
返回值
- 返回16进制数,以字符串形式表示。
>>>hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
>>> hex(1L)
'0x1L'
>>> hex(12)
'0xc'
>>> type(hex(12))
<class 'str'> # 字符串
oct() 函数
oct() 函数将一个整数转换成 8 进制字符串。
- Python2.x 版本的 8 进制以 0 作为前缀表示。
- Python3.x 版本的 8 进制以 0o 作为前缀表示。
参数说明:
x – 整数。
返回值
返回 8 进制字符串。
python3.X
>>> oct(10)
'0o12'
>>> oct(20)
'0o24'
>>> oct(15)
'0o17'
关注我,不迷路,共学习,同进步
关注我,不迷路,共学习,同进步