Python学习(六):python数据类型转换【详解】

python数据类型转换【详解】

python中,通过一系列的转换函数,可以将一种数据类型转换成另一种数据类型

函数说明
eval(str)用来执行一个字符串表达式,并返回表达式的值
chr(x)将整数 x 转换为字符,有效的Unicode编码值范围(0-0x10FFFF)。
其和ord(x)的作用相反。
unichr(x)[python2]将整数 x 转换为一个Unicode字符
ord(x)将 x 转换为它的ASCII整数值。
其和chr(x)的作用相反。
int(x [,base])将x转换为一个整数,如果x是字符串,则要base指定基数base=0 或 (base>= 2 && base<= 36),0表示10进制,2表示2进制,8表示8进制,11表示11进制
float(x)x转换为一个浮点数
bool(x)将x转换为布尔类型,返回True或False,非0为True(包括0、-0、0.0)
bin(x)将一个整数转换为一个二进制字符串
oct(x)将一个整数转换为一个八进制字符串
hex(x)将一个整数转换为一个十六进制字符串
complex(real [,imag])创建一个复数,real为实部,imag为虚部,只有实部real时、虚数部分为0。
repr(x)<将对象 x 转换为表达式字符串
str(x)将对象 x 转换为字符串
list(seq)创建一个列表,或将序列seq转换为列表
tuple(seq)创建一个元组,或将序列seq转换为元组
set(s)创建一个集合,或将序列seq转换为集合
dict(d)创建一个字典,或将d转换为字典,d必须是(key,value)元组的序列
frozenset(s)将s转换为冻结集

eval(str)函数

int x = 10
eval('1+2+3-4')       # 输出整数2
eval('x*10')          # 输出整数100

chr(x)函数

chr(1)                # 输出字符串'\x01'
chr(65)               # 输出字符串'A'
chr(1000)             # 输出字符串'Ϩ'
chr(10000)            # 输出字符串'✐'

unichr(x)

unichr(x)是python2函数,python3采用chr(x)函数

ord(x)

ord('\x01')           # 输出字符串1
ord('A')              # 输出字符串65
ord('Ϩ')              # 输出字符串1000
ord('✐')             # 输出字符串10000

int(x [,base])

int(True)             # 输出"十"进制整数1
int(False)            # 输出"十"进制整数0
int('100')            # 输出"十"进制整数100
int('100', 0)         # 输出"十"进制整数100,0也表示十进制
int('100', 10)        # 输出"十"进制整数100
int('100', 2)         # 输出"二"进制整数4
int('100', 8)         # 输出"八"进制整数64
int('100', 16)        # 输出"十六"进制整数256
int('100', 32)        # 输出"三十二"进制整数1024
int('100', 3)         # 输出"三"进制整数9
int('100', 15)        # 输出"十五"进制整数225

float(x)

float(True)           # 输出"十"进制浮点数1.0
float(False)          # 输出"十"进制浮点数0.0
float('0.15')         # 输出"十"进制浮点数0.15
float('1.5')          # 输出"十"进制浮点数1.5
float('15')           # 输出"十"进制浮点数15.0
float('1.5e5')        # 科学记数法,输出"十"进制浮点数150000.0

bool(x)

bool(1)               # 输出布尔类型True
bool(1.0)             # 输出布尔类型True
bool(-1)              # 输出布尔类型True
bool(-100)            # 输出布尔类型True
bool('1')             # 输出布尔类型True
bool('1.0')           # 输出布尔类型True
bool('0')             # 输出布尔类型True
bool('0.0')           # 输出布尔类型True
bool('A')             # 输出布尔类型True
bool('中国')          # 输出布尔类型True
bool(0)               # 输出布尔类型False,只有0、-0、0.0返回False
bool(-0)              # 输出布尔类型False,只有0、-0、0.0返回False
bool(0.0)             # 输出布尔类型False,只有0、0.0返回False

bin(x)

bin(True)             # 输出"二"进制数'0b1'
bin(False)            # 输出"二"进制数'0b0'
bin(1)                # 输出"二"进制数'0b1'
bin(3)                # 输出"二"进制数'0b1'
bin(10)               # 输出"二"进制数'0b1010'
bin(100)              # 输出"二"进制数'0b1100100'

oct(x)

oct(True)             # 输出"八"进制数'0o1'
oct(False)            # 输出"八"进制数'0o0'
oct(1)                # 输出"八"进制数'0o0'
oct(3)                # 输出"八"进制数'0o3'
oct(10)               # 输出"八"进制数'0o12'
oct(100)              # 输出"八"进制数'0o144'

hex(x)

hex(True)             # 输出"十六"进制数'0x1'
hex(False)            # 输出"十六"进制数'0x0'
hex(1)                # 输出"十六"进制数'0x1'
hex(3)                # 输出"十六"进制数'0x3'
hex(10)               # 输出"十六"进制数'0xa'
hex(100)              # 输出"十六"进制数'0x64'

complex(real [,imag])

complex(1)            # 输出复数(1+0j)
complex('3+5j')       # 输出复数('3+5j')
complex(3, 5)         # 输出复数('3+5j')

repr(x)

str和repr的区别:
1、str()将数值转成字符串,str()函数返回的结果字符串可读性好。
2、repr()将对象转成字符串显示,repr() 函数将对象转化为供解释器读取的形式。支持dict和list。
repr是representation的简写,它会将对象在在python中的描述。repr()函数的返回结果可以还原为对象本身,即:obj==eval(repr(obj)) 这个等式是成立的。

class Student: # 定义student类
    name = None
    ange = None

student = Student()
 
repr(student)       # 输出'<__main__.Student object at 0x000001921B0D6F90>'
str(student)        # 输出'<__main__.Student object at 0x000001921B0D6F90>'

student==eval(str(repr(student))     # 输出True
student==eval(str(student))          # 异常

str(x) 将对象 x 转换为字符串

str(100)                    # 输出'100'
str(1+2+3)                  # 输出'6'
str('1+2+3=6')              # 输出'1+2+3=6'
str(True)                   # 输出'True'
str({'A': 'a', 'B': 'b'})   # 输出'{'A': 'a', 'B': b}'

list(seq)

# 通过list()创建列表
list1 = list()                 # 创建空列表
list2 = list('python')         # 创建列表,python被分割成单独字符并放置在列表中【注意】
print(list2)                   # 输出['p', 'y', 't', 'h', 'o', 'n']
# 将tuple元组转换到列表
tuple1 = ('Hello', 'world')    # 创建tuple
list3 = list(tuple1)           # 将tuple的元素转换成列表元素
print(list3)                   # 输出['Hello', 'world']
# 将dict字典转换到列表
dict1 = {'A':'a', 'B':'b'}
list4 = list(dict1)            # 将dict的key,转换成列表元素
print(list4)                   # 输出['A', 'B']
list4 = list(dict1.values())   # 将dict的value,转换成列表元素
print(list4)                   # 输出['a', 'b']
# 将set集合转换到列表
set1 = {'A', 'B', 'C'}
list5 = list(set1)             # 将set的元素,转换成列表元素
print(list5)                   # 将集合转换成列表,输出['A', 'B', 'C']

tuple(seq)

# tuple()创建元组
tuple1 = tuple()               # 创建空元组
tuple2 = tuple('ABC')          # 创建元组,ABC被分割成单独字符并放置在元组中【注意】
# 将list列表转换到元组    
list1=[1, 2, 'a', 'b']
tuple3 = tuple(list1)          # 将set的元素,转换成元组元素
print(tuple3)                  # 输出(1, 2, 'a', 'b')
# 将set元组转换到列表
set1 = ('Hello', 'world')    # 创建元组
tuple4 = list(set1)           # 将元组的元素转换成列表元素
print(tuple4)                   # 输出['Hello', 'world']
# 将dict字典转换到元组
dict1 = {'A':'a', 'B':'b'}
tuple5 = tuple(dict1)          # 将dict的key,转换成元组元素
print(tuple5)                  # 输出('A', 'B')
tuple6 = tuple(dict1.values()) # 将dict的value,转换成元组元素
print(tuple6)                  # 输出('a', 'b')

set(s)

# set()创建集合
set1 = set()                   # 创建空集合
set2 = set('ABC')              # 创建集合,ABC被分割成单独字符并放置在集合中【注意】
# 将list列表转换到集合   
list1=[1, 2, 'a', 'b']
set3 = set(list1)              # 将list的元素,转换成集合元素
print(set3)                    # 输出{'a', 1, 2, 'b'}
# 将tuple元组转换到集合
tuple1 = ('Hello', 'world')    # 创建元组
set4 = set(tuple1)             # 将元组的元素转换成集合元素
print(set4)                    # 输出{'world', 'Hello'}
# 将dict字典转换到集合
dict1 = {'A':'a', 'B':'b'}
set5 = set(dict1)              # 将dict的key,转换成集合元素
print(set5)                    # 输出{'A', 'B'}
set6 = set(dict1.values())     # 将dict的value,转换成集合元素
print(set6)                    # 输出{'a', 'b'}

dict(d)

# dict()创建字典
dict1 = dict()                     # 创建空字典
dict2 = dict(a='A', b='B', c=20)   # 创建字典,dict2 = {'a': 'A', 'b': 'B', 'c': 20}
dict3 = dict([('A', 1), ('B', 2), ('C', 3)])    # 创建字典,dict3 = {'A': 1, 'B': 2, 'C': 3}

【通过传入可迭代可迭代对象来创建字典,可迭代对象可以是一个列表、元组或其他可迭代类型】
# 将list列表转换到字典【注意列表的元素形式】
list1=[{1,'a'}, {2,'b'}]
dict4 = dict(list1)                # 将list的元素,转换成字典元素
print(dict4)                       # 输出{'a': 1, 'b': 2}

# 将tuple元组转换到字典
tuple1 = ('A', 1), ('B', 2)        # 创建元组
dict5 = dict(tuple1)               # 将元组的元素转换成字典元素
print(dict5)                       # 输出{'A': 1, 'B': 2}

# 将set元组转换到列表
set1 = ({1,'a'}, {2,'b'})          # 创建集合
dict6 = dict(set1)                 # 将集合的元素转换成字典元素
print(dict6)                       # 输出{'a': 1, 'b': 2}

frozenset(s):其本质是set集合

冻结后集合不能再添加或删除任何元素,与之相反的是set()函数,set无序排序且不重复,是可变的

f1 = frozenset(range(10))    # 创建不可变list集合
print(type(f1))              # 输出<class 'frozenset'>
print(f1)                    # 输出frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

# frozenset集合,不可添加、删除、修改元素
f2 = frozenset('abcd')       # 创建集合【注意:abcd被分割成单独字符,不按参数顺序放置在集合中】
print(type(f2))              # 输出<class 'frozenset'>
print(f2)                    # 输出frozenset(({'a', 'd', 'b', 'c'})

# set集合,可添加、删除、修改元素
set1 = set('abc')            # 创建集合【注意:abcd被分割成单独字符,不按参数顺序放置在集合中】
print(set1)                  # 输出{'a', 'd', 'b', 'c'}
set1.add('e')                # 输出{'a', 'd', 'e', 'b', 'c'}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值