由列表中提取出来的浮点型字符串不能直接转换成整形
案例如下:
1 # -*- coding:utf-8 -*- 2 3 lst = ['636', 'system', '10', '-10', '1.1G', '114M', '95M', 'S', '45.0', '12.9', '1:15.87', 'com.android.set+\n\n'] 4 b = lst[8] 5 c = int(b) 6 7 print (b) 8 print (type(c))
列表中第8和第9位两个为浮点型的字符串,提取出该字符串后想转成整形会报如下错误:
Traceback (most recent call last):
File "D:\WorkSpace3\DEBUG\debug\debug.py", line 5, in <module>
c = int(b)
ValueError: invalid literal for int() with base 10: '45.0'
如果一定要转换的话,先将该提取出来的值转成浮点型,然后再由浮点型转成整形即可,如下:
1 # -*- coding:utf-8 -*- 2 3 lst = ['636', 'system', '10', '-10', '1.1G', '114M', '95M', 'S', '45.0', '12.9', '1:15.87', 'com.android.set+\n\n'] 4 b = lst[8] 5 c = float(b) 6 d = int(c) 7 8 print (b) 9 print (type(c)) 10 print (d) 11 print (type(d))
输出如下:
45.0 <class 'float'> 45 <class 'int'>
这样即完成了转换,如果列表中显示的是整型的字符串时,提取出来后是可以直接转换成整形的