一、隐式类型转换
隐式类型转换 – 自动完成
我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失
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)
查看运行结果:
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282557.html