python之数据类型转换

一、隐式类型转换
隐式类型转换 - 自动完成

我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失

num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))

print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

查看运行结果:

 

二、显式类型转换

显式类型转换 - 需要使用类型函数来转换

整型和字符串类型运算结果会报错,输出 TypeError。 Python 在这种情况下无法使用隐式转换,我们使用 int()、float()、str() 等预定义函数来执行显式类型转换

num_int = 123
num_str = "456"

print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))

num_str = int(num_str)    # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))

num_sum = num_int + num_str

查看运行结果:

 

三、数据类型之间的转换内置函数
1.int(x [,base])
(1)作用:将x转换为一个整数
(2)语法:class int(x, base=10),base为进制数,默认十进制,若 x 不符合 base 规则,则报错
(3)实例:

#3.int(x [,base])
print(int(3.6))
print(int("1001",2))
print(int("0xa",16))

查看运行结果:

 

2.float(x)
(1)作用:用于将整数和字符串转换成浮点数。
(2)语法:float([x]),x -- 整数或字符串
(3)实例:

#2.float(x)
str1 = "3.14"
str2 = 2
f1 = float(str1)
f2 = float(str2)
print(f1,f2)

 查看运行结果:

 

3.complex(real [,imag])

(1)作用:创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
(2)语法:complex([real[, imag]]),real -- int, long, float或字符串;imag -- int, long, float;
(3)实例:

#3.complex(real [,imag])
c1 = complex(1,2)
c2 = complex(3)
print(c1,c2)

查看运行结果:

 

4.str(x)
(1)作用:将对象转化为适于人阅读的形式。
(2)语法:str(object=''),返回一个对象的string格式
(3)实例:

 

#4.str(x)
s1 = 'python'
s2 = {'python': 'python.com', 'google': 'google.com'}
print(str(s1),str(s2))

查看运行结果:

 

5.repr(x)
(1)作用:将对象转化为供解释器读取的形式。
(2)语法:repr(object),返回一个对象的 string 格式
(3)实例:

#5.repr(x)
s1 = 'python'
s2 = {'python': 'python.com', 'google': 'google.com'}
print(repr(s1),repr(s2))

查看运行结果:

 

6.eval(str)
(1)作用:用来执行一个字符串表达式,并返回表达式的值
(2)语法:eval(expression[, globals[, locals]]);expression -- 表达式;globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
(3)实例:

#6.eval(str)
x,y= 1,2
e1 =eval('3 * x')
e2 =eval('pow(2,3)')
e3 =eval('y+10')
print(e1,e2,e3)

查看运行结果:

 

7.tuple(s)
(1)作用:将可迭代系列(如列表)转换为元组
(2)语法:tuple( iterable );返回元组。(可以将字符串,列表,字典,集合转化为元组)
(3)实例:

#7.tuple(x)
l1 = ['python', 'ruby', 'golang', 'java']
t1 = tuple(l1)
print(t1)

查看运行结果:

 

 8.list(s)

(1)作用:将元组或字符串转换为列表;元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中
(2)语法:list( seq ),seq -- 要转换为列表的元组或字符串
(3)实例:

#8.list(x)
t1 = (123, 'Google', 'Python', 'Taobao')
l1 = list(t1)
s1 = "hello"
l2 = list(s1)
print(l1,l2)

查看运行结果:

 

9.set(s)

(1)作用:创建一个无序不重复元素集,可进行关系测试,删除重复数据
(2)语法:set([iterable]),返回新的集合对象
(3)实例:

# 9.set(x)
l1 = ['a', 'b', 'b', 'c', 'c', 'c']
s1 = set(l1)
print(s1)

查看运行结果:

 

10.dict(d)
(1)作用:创建一个字典,d 必须是一个 (key, value)元组序列
(2)语法:dict(**kwarg),dict(mapping, **kwarg),dict(iterable, **kwarg),**kwargs -- 关键字,mapping -- 元素的容器,映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系,iterable -- 可迭代对象
(3)实例:

#10.dict(d)
d1 = dict(a='a', b='b', t='t') #传入关键字
d2 = dict(zip(['one', 'two', 'three'], [1, 2, 3])) #映射函数方式来构造字典
d3 = dict([('one', 1), ('two', 2), ('three', 3)]) #可迭代对象方式来构造字典
print(d1)
print(d2)
print(d3)

查看运行结果:

 

11.frozenset(s)
(1)作用:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
(2)语法:frozenset([iterable]);iterable -- 可迭代的对象,比如列表、字典、元组等等。返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。
(3)实例:

#11.frozenset(s)
f1 = frozenset(range(10))
f2 = frozenset(['h','e','l','l','0'])
print(f1)
print(f2)

查看运行结果:

 

12.chr(x)
(1)作用:用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符
(2)语法:chr(i);i -- 可以是10进制也可以是16进制的形式的数字。返回值是当前整数对应的 ASCII 字符。
(3)实例:

#12.chr(x)
print(chr(0x30), chr(0x31), chr(0x61)) # 十六进制
print(chr(48), chr(49), chr(97)) # 十进制

查看运行结果:

 

 

13.ord(x)
(1)作用: chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常
(2)语法:ord(c);c -- 字符。返回值是对应的十进制整数。
(3)实例:

#13.ord(c)
o1 = ord('a')
o2 = ord('b')
o3 = ord('c')
print(o1,o2,o3)

查看运行结果:

 

14.hex(x)
(1)作用:用于将10进制整数转换成16进制,以字符串形式表示。
(2)语法:hex(x);返回16进制数,以字符串形式表示。
(3)实例:

#14.hex(x)
print(hex(255),hex(-42),hex(1),hex(12),type(hex(12)))

查看运行结果:

 

15.oct(x)
(1)作用:将一个整数转换成 8 进制字符串。Python3.x 版本的 8 进制以 0o 作为前缀表示
(2)语法:oct(x);x -- 整数。返回 8 进制字符串。
(3)实例:

#15.oct(x)
o1 = oct(10)
o2 = oct(20)
o3 = oct(15)
print(o1,o2,o3)

查看运行结果:

 

 

 

 

posted @ 2022-08-27 21:16  Mrwhite86  阅读(6992)  评论(0编辑  收藏  举报