Python基础教程4b–字符串转换为其他类型

原文链接: http://www.juzicode.com/archives/418

《Python基础教程4—格式化字符串》中讲的是怎么将其他数据类型转换为字符串,本文内容讲怎么将字符串转换为其他数据类型。

1 转换为int

1.1 int()

源码print(‘—–欢迎来到www.juzicode.com’)
print(‘—–公众号: juzicode/桔子code\n’)
print(‘字符串转换为int型’) 
s=’100′
a=int(s,10)
print(s,’10进制方法1:’,a)
a=int(s,0)
print(s,’10进制方法2:’,a)
a=int(s)
print(s,’10进制方法3:’,a) 
a=int(s,2)
print(s,’2进制:’,a) 

a=int(s,8)
print(s,’8进制:’,a) 

a=int(s,16) 
print(s,’16进制:’,a)

a=int(s,17)
print(s,’17进制:’,a) 

a=int(s,32)
print(s,’32进制:’,a)
结果—–欢迎来到www.juzicode.com
—–公众号: juzicode/桔子code 
字符串转换为int型
100 10进制方法1: 100
100 10进制方法2: 100
100 10进制方法3: 100
100 2进制: 4
100 8进制: 64
100 16进制: 256
100 17进制: 289
100 32进制: 1024

如果输入的是非数字型的字符串,在进行10进制转换时就会抛异常;转换为8进制时,输入的字符串数字必须是0-7,转换为2进制时必须是0和1,16进制转换时,必须是0-9,a-f或者A-F。就是说要转换的字符串必须要满足进制的表示要求。

>>> int(‘1af’,10)
Traceback (most recent call last):  File “<stdin>”, line 1, in <module>
ValueError: invalid literal for int() with base 10: ‘1af’,#10进制必须是0-9的字符
>>>
>>> int(‘012’,2)   
Traceback (most recent call last):  File “<stdin>”, line 1, in <module>
ValueError: invalid literal for int() with base 2: ‘012’   #2进制必须是0,1字符

另外2进制数值前也可以加“0b”或者“0B”,8进制数值前也可以加“0o”或者“0O”(字母O),16进制数值前可以加“0x”或者“0X”:

源码print(‘0B01转换为2进制:’,int(‘0B01’,2))
print(‘0O71转换为8进制:’,int(‘0O71’,8))
print(‘0X33转换为16进制:’,int(‘0X33’,16))
结果0B01转换为2进制: 10
O71转换为8进制: 57
0X33转换为16进制: 51

前面提到int()转换函数中的进制最大可以是36,为什么会是36进制,应该用什么字符表示最大的35?因为英文字母26个加上10个阿拉伯数字正好是36个字符,所以在表示36进制时,要转换的字符串可以是0-1,a-z,A-Z这些数字组成。类似的,如果表示35进制,则只能取0-9,a-y,A-Y这些字符串组成的字符串。

>>> int(‘za3’,36)
45723 
>>> int(‘za3’,35)
Traceback (most recent call last):  File “<stdin>”, line 1, in <module>
ValueError: invalid literal for int() with base 35: ‘za3’

1.2 ord()函数

ord()函数则是chr()的逆操作函数,可以将单个字符转换为int数据。

>>> ord('d')
100

>>> chr(100)
'd'

转换为float

字符串转换为float使用float()函数,如果输入的浮点数格式不正确,将会抛异常:

源码s=’3.14159265′
a=float(s)
print(s,’转换为浮点数:’,a) 

s=’5.ab’
a=float(s)
print(s,’转换为浮点数:’,a)
结果字符串转换为float型3.14159265 转换为浮点数: 3.14159265 

Traceback (most recent call last):  File “E:\juzicode\py3study\04b-字符串转换为其他\转换为float.py”, line 18, in <module>   
 a=float(s)
ValueError: could not convert string to float: ‘5.ab’   #提示ValueError

示例代码:https://github.com/juzicode00/py3study/tree/master/04b-字符串转换为其他

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注