类型转换bin()、chr()、ord() 、int()、float()、str()、repr()、bytes()、tuple(s )、 list(s ) 、unichr(x ) 、 ord(x ) 、 hex(x ) 、 type()数据类型查询
1、bin()
将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()并且返回值为integer;
参数x:整数或者包含__index__()方法切返回值为integer的类型;
1 #!/usr/bin/env python 2 r = bin(10) 3 print(r)
2、chr(i)
返回整数i对应的ASCII字符。与ord()作用相反。
参数x:取值范围[0, 255]之间的正数。
版本:该函数在python2和python3各个版本中都可用。不存在兼容性问题。
1 c = chr(66) 2 print(c)
3、本函数是把一个字符串表示的字符转换为字符相对应的整数,适用于UNICODE字符。比如ord(‘a’)则返回整数97,ord(‘\u2020’)则返回整数8224。与函数chr()的功能刚好相反。
1 i = ord("t") 2 print(i)
4、int()函数可以将一个数转化为整数
1 r= int(12.0) 2 print(r)
int()函数将其用十进制数表示
1 >>> int('0xa',16) 2 10 3 >>> int('10',8) 4 8
5、float 控制精度
1 #!/usr/bin/env python 2 a = 1.324444444444444444 3 b = float('%.7f'%a) 4 print(b)
float类型转换
1 print( float('37.21') ) 2 print( float(234) ) 3 print( float('+inf') + 200000 ) 4 print( float('-inf') * 0 ) 5 print( float(' -12345\n') ) 6 print( float('1e-003') ) 7 输出结果如下: 8 37.21 9 234.0 10 inf 11 nan 12 -12345.0 13 0.001
6、str()一般是将数值转成字符串
1 r= int(12.0) 2 t = str(r) 3 print(t)
7、repr(x)将对象 x 转换为表达式字符串 。Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数。
函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式。
在python的官方API中这样解释repr()函数:repr()函数得到的字符串通常可以用来重新获得该对象,
repr()的输入对python比较友好。通常情况下obj==eval(repr(obj))这个等式是成立的。
1 >>>repr([0,1,2,3]) 2 '[0,1,2,3]' 3 >>> repr('Hello') 4 "'Hello'" 5 6 >>> str(1.0/7.0) 7 '0.142857142857' 8 >>> repr(1.0/7.0) 9 '0.14285714285714285'
8、eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
1 #eval可以执行一个字符串形式的表达式 2 ret = eval("1 + 3") 3 c = eval("a + 60",{"a": 99}) 4 print(ret) 5 print(c) 6 """exec语句用来执行储存在字符串或文件中的Python语句。 7 如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。 8 下面是一个简单的例子。 9 >>> exec 'print "Hello World"' 10 Hello World 11 注意例子中exec语句的用法和eval_r(), execfile()是不一样的. 12 exec是一个语句(就象print或while), 而eval_r()和execfile()则是内建函数. 13 """ 14 exec("for i in range(10) : print(i)")
9、type()数据类型查询
#!/usr/bin/env python r= int(12.0) t = str(r) print(type(r))
10、bytes()
返回一个新的数组对象,这个数组对象不能对数组元素进行修改。每个元素值范围: 0 <= x < 256。bytes函数与bytearray函数主要区别是bytes函数产生的对象的元素不能修改,而bytearray函数产生的对象的元素可以修改。因此,除了可修改的对象函数跟bytearray函数不一样之外,其它使用方法全部是相同的。最后它的参数定义方式也与bytearray函数是一样的。 #bytes()函数 a = bytes('abc', 'utf-8') print(a) b = bytes(1) print(b) c = bytes([2,3,6,8]) print(c) 输出结果如下: b'abc' b'\x00' b'\x02\x03\x06\x08'
1 int(x [,base ]) 将x转换为一个整数 2 long(x [,base ]) 将x转换为一个长整数 3 float(x ) 将x转换到一个浮点数 4 complex(real [,imag ]) 创建一个复数 5 str(x ) 将对象 x 转换为字符串 6 repr(x ) 将对象 x 转换为表达式字符串 7 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 8 tuple(s ) 将序列 s 转换为一个元组 9 list(s ) 将序列 s 转换为一个列表 10 chr(x ) 将一个整数转换为一个字符 11 unichr(x ) 将一个整数转换为Unicode字符 12 ord(x ) 将一个字符转换为它的整数值 13 hex(x ) 将一个整数转换为一个十六进制字符串 14 oct(x ) 将一个整数转换为一个八进制字符串