Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何确定字符串值的数字类型?_Python_Python 3.x - Fatal编程技术网

Python 如何确定字符串值的数字类型?

Python 如何确定字符串值的数字类型?,python,python-3.x,Python,Python 3.x,我正在从数据库中读取默认插入为字符串的数字数据,并应用规则处理这些数字,但当遇到的值类似于-1.03432e+006或-1.03426e+006时,它会失败,即 id transferred speed values --- ------------------------ 0 4 1 3 2 9 3 2 4 -1.03432e+006 5 -1.03427e+006 6 -1.03426e+006 7 8 1

我正在从数据库中读取默认插入为字符串的数字数据,并应用规则处理这些数字,但当遇到的值类似于
-1.03432e+006
-1.03426e+006
时,它会失败,即

id    transferred speed values
---   ------------------------
 0     4
 1     3
 2     9
 3     2
 4    -1.03432e+006
 5    -1.03427e+006
 6    -1.03426e+006
 7
 8     12

def process_out_transferred_speed(value):
    passed_values = []
    failed_values = []
    if value!= None or value!= " ":
        if int(value) < 0 or int(value) > 48:
            passed_values.append(value)
        else:
            failed_values.append(value)
id传输的速度值
---   ------------------------
0     4
1     3
2     9
3     2
4-1.03432e+006
5-1.03427e+006
6-1.03426e+006
7.
8     12
def过程输出传输速度(值):
传递的_值=[]
失败的_值=[]
如果值!=无或值!=" ":
如果int(值)<0或int(值)>48:
传递的\u值。追加(值)
其他:
失败的\u值。追加(值)
当第一个条件读取值
-1.03432e+006
时,int()的
文本无效对于基数10:“-1.03432e+006”
问题出现了,这是合理的,因为值是
string
,它被转换为
int
,但这对于
-1.03432e+006
是不可能的,因为
int
不支持此值


我的问题是:如何从这个
字符串中确定值的类型,以便插入一个规则来避免这个问题?

python的方法就是尝试它并捕获异常

try:
    int(value)
    passed_values.append(value)
except ValueError:
    failed_values.append(value)

您可以使用
float(value)
来解析。
int(float('-1.03432e+006'))
。但是如果我只想读取int值并避免浮点呢?我该怎么做?第7行的空/空字符串也会有问题。