由列表中提取出来的浮点型字符串不能直接转换成整形

 案例如下:

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'>

  

这样即完成了转换,如果列表中显示的是整型的字符串时,提取出来后是可以直接转换成整形的

posted @ 2018-09-12 15:23  iSZ  阅读(471)  评论(0编辑  收藏  举报