Python数据类型转换

数据类型转换

函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [,imag])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典,d 必须是一个 (key, value)元组序列。
frozenset(s)转换为不可变集合
chr(x)整数(8、10、16)→字符
ord(x)字符→10进制整数
hex(x)整数(8、10)→十六进制字符串
oct(x)整数(10、16)→八进制字符串

int(x [,base])

int() 函数用于将一个字符串或数字转换为整型

class int(x, base=10)

  • 参数:
    x:字符串或数字
    base = n:n为进制数,默认n=10,即十进制
  • 返回值:
    整型数据

代码示例:

a1 = int()               # 不传入参数时,得到结果0
a2 = int(2)
a3 = int(3.9)           #向下取整
a4 = int('12',16)        # 带参数base,x以字符串的形式进行输入,12为16进制
a5 = int('0xa',16)        # 带参数base,x以字符串的形式进行输入,16为16进制
a6 = int('10',8)        # 带参数base,x以字符串的形式进行输入,10为8进制
print(a1,a2,a3,a4,a5,a6)



'''
输出结果:
0 2 3 18 10 8
'''

float(x)

用于将整数和字符串转换成浮点数

class float([x])

  • 参数:
    x:整数或字符串
  • 返回值:
    返回浮点数

代码示例:

a0 = float()
a1 = float(1)
a2 = float(2)
a3 = float(-3.3)
a4 = float('444')     # 字符串
print(a0,a1,a2,a3,a4)



'''
输出结果:
0.0 1.0 2.0 -3.3 444.0
'''

complex(real [,imag])

用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数
如果第一个参数为字符串,则不需要指定第二个参数

class complex([real[, imag]])

  • 参数:
    real:int, long, float 或 字符串
    imag : int, long, float
  • 返回值:
    返回一个复数

代码示例:

a0 = complex()
a1 = complex(1,2)
a2 = complex(1.1)  # 数字
a3 = complex("1")  # 当做字符串处理
a4 = complex("12")
a5 = complex("1+2j")# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
print(a5)



'''
输出结果:
0j
(1+2j)
(1.1+0j)
(1+0j)
(12+0j)
(1+2j)
'''

str(x)

将对象 x 转换为字符串

class str(object=’’)

  • 参数:
    object :对象
  • 返回值:
    返回对象的string格式

代码示例:

s = 'helloWorld'
dict = {'昵称': '入错行的北北', '码龄': '1年'}
print(str(s))
print(dict)




'''
输出结果:
helloWorld
{'昵称': '入错行的北北', '码龄': '1年'}
'''

repr(x)

将对象 x 转换为表达式字符串(供解释器读取的形式)

repr(object)

  • 参数:
    object :对象
  • 返回值:
    返回对象的 string 格式

代码示例:

s = 'helloWorld'
dict = {'昵称': '入错行的北北', '码龄': '1年'}
print(repr(s))
print(repr(dict))



'''
输出结果:
'helloWorld'
{'昵称': '入错行的北北', '码龄': '1年'}
'''

eval(str)

用来执行字符串表达式,并返回表达式的值

eval(expression[, globals[, locals]])

  • 参数:
    expression :表达式
    globals :变量作用域,全局命名空间(如果被提供,则必须是字典对象
    locals : 变量作用域,局部命名空间(如果被提供,可以是任何映射对象
  • 返回值:
    返回表达式计算结果

代码示例:

x = 7
a1 = eval( '3 * x' )
a2 = eval('pow(2,10)')      #2^10
a3 = eval('2 + 2')
n=81
a4 = eval("n + 4")
print(a1)
print(a2)
print(a3)
print(a4)



'''
输出结果:
21
1024
4
85
'''

tuple(s)

将可迭代系列(如列表)转换为元组

tuple( iterable )

  • 参数:
    iterable :要转换为元组的可迭代序列
  • 返回值:
    返回元组

代码示例:

list = ['AAA', 222, 'CCC', 'DDD']
tuple = tuple(list)

print('list:',list)
print('tuple:',tuple)



'''
输出结果:
list: ['AAA', 222, 'CCC', 'DDD']
tuple: ('AAA', 222, 'CCC', 'DDD')
'''

list(s)

用于将元组或字符串转换为列表

list( seq )

  • 参数:
    seq : 要转换为列表的元组或字符串
  • 返回值:
    返回列表

代码示例:

t = (111, 'BBB', '333', 'DDD')
list1 = list(t)
print ("列表元素 : ", list1)
str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)



'''
输出结果:
列表元素 :  [111, 'BBB', '333', 'DDD']
列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
'''

set(s)

转换为可变集合(无序、不重复)

class set([iterable])

  • 参数:
    iterable :可迭代对象
  • 返回值:
    返回集合对象

代码示例:

x = set('hello')
y = set('world')
print(x)
print(y)
print(x & y)      # 交集
print(x | y )         # 并集
print(x - y)         # 差集



'''
输出结果:
{'o', 'h', 'e', 'l'}
{'o', 'd', 'w', 'r', 'l'}
{'o', 'l'}
{'o', 'e', 'd', 'h', 'w', 'r', 'l'}
{'h', 'e'}
'''

dict(d)

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

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

  • 参数:
    **kwargs : 关键字
    mapping : 元素的容器
    iterable : 可迭代对象
  • 返回值:
    返回一个字典

代码示例:

a1 = dict()                        # 创建空字典
a2 = dict(a='a', b='b', c='c')     # 传入关键字
a3 = dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
a4 = dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
print(a1)
print(a2)
print(a3)
print(a4)



'''
输出结果:
{}
{'a': 'a', 'b': 'b', 'c': 'c'}
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}
'''

frozenset(s)

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

class frozenset([iterable])

  • 参数:
    iterable : 可迭代的对象,比如列表、字典、元组等等
  • 返回值:
    返回集合,如果不提供任何参数,默认生成空集合

代码示例:

a1 = frozenset(range(10))     # 生成一个新的不可变集合
b1 = frozenset('hello world')  # 创建不可变集合

a2 = set(range(10))
b2 = set('hello world') 

print(a1)
print('set:',a2)
print(b1)
print('set:',b2)



'''
输出结果:
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
set: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
frozenset({'o', 'l', 'h', ' ', 'w', 'd', 'e', 'r'})
set: {'o', 'l', 'h', ' ', 'w', 'd', 'e', 'r'}
'''

chr(x)

将一个整数(0~255)转换为一个字符

chr(i)

  • 参数:
    i : 8进制 or 10进制 or 16进制的形式的数字
  • 返回值:
    返回当前整数对应的 ASCII 字符

代码示例:

print('8进制转换为字符:',chr(0o60), chr(0o101), chr(0o141))         #8进制转换为字符
print('10进制转换为字符:',chr(48), chr(65), chr(97))                #10进制转换为字符
print('16进制转换为字符:',chr(0x30), chr(0x41), chr(0x61))          #16进制转换为字符



'''
输出结果:
8进制转换为字符: 0 A a
10进制转换为字符: 0 A a
16进制转换为字符: 0 A a
'''

ord(x)

一个字符转换为对应的10进制整数值

ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常

ord©

  • 参数:
    c : 字符
  • 返回值:
    返回字符c对应的十进制整数

代码示例:

print(chr(48), chr(65), chr(97))            # 十进制
print('字符转换为10进制:',ord('0'),ord('A'),ord('a'))               #字符转换为10进制



'''
输出结果:
0 A a
字符转换为10进制: 48 65 97
'''

hex(x)

用于将整数转换成16进制字符串

hex(x)

  • 参数:
    x:8进制 or 10进制整数
  • 返回值:
    返回整数x对应的16进制字符串

代码示例:

print('8进制转换为字符:',chr(0o60), chr(0o101), chr(0o141))         #8进制转换为字符
print('10进制转换为字符:',chr(48), chr(65), chr(97))                #10进制转换为字符
print('16进制转换为字符:',chr(0x30), chr(0x41), chr(0x61))          #16进制转换为字符
print('8进制整数转换为16进制:',hex(0o60),hex(0o101),hex(0o141))             #8进制整数转换为16进制
print('10进制整数转换为16进制:',hex(48),hex(65),hex(97))                  #10进制整数转换为16进制



'''
输出结果:
8进制转换为字符: 0 A a
10进制转换为字符: 0 A a
16进制转换为字符: 0 A a
8进制整数转换为16进制: 0x30 0x41 0x61
10进制整数转换为16进制: 0x30 0x41 0x61
'''

oct(x)

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

Python3.x 版本的 8 进制以 0o 作为前缀

oct(x)

  • 参数:
    x:10进制 or 16进制整数
  • 返回值:
    返回 8 进制字符串

代码示例:

print('10进制整数转换为8进制:',oct(48),oct(65),oct(97))                  #10进制整数转换为8进制
print('16进制整数转换为8进制:',oct(0x30),oct(0x41),oct(0x61))            #16进制整数转换为8进制



'''
输出结果:
10进制整数转换为8进制: 0o60 0o101 0o141
16进制整数转换为8进制: 0o60 0o101 0o141
'''
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Selcouther

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值