Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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/3/arrays/13.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中检查int?_Python_Arrays_Integer - Fatal编程技术网

如何在Python中检查int?

如何在Python中检查int?,python,arrays,integer,Python,Arrays,Integer,在这个问题中,我们被要求从数组中删除所有偶数,因此我尝试创建一个函数: import numpy as np A = np.array([2,3,4,5]) def remove_even(A): if ((A[0])/2) != int: #check if the first value is an integer when divided by 2 A = A[0:len(A)+1: 2] return A else: A

在这个问题中,我们被要求从数组中删除所有偶数,因此我尝试创建一个函数:

import numpy as np 
A = np.array([2,3,4,5])

def remove_even(A):
    if ((A[0])/2) != int: #check if the first value is an integer when divided by 2
        A = A[0:len(A)+1: 2]
        return A
    else:
        A = A[1:len(A)+1:2]
但是,无论我的数组是以偶数(即2)还是奇数(即1)开头,代码的执行都仅限于
if
语句,而不是
else


我错过了什么?如果有任何反馈,我将不胜感激

在numpy中,您可以只使用布尔掩码:

A[(A % 2).astype(bool)]
返回

array([3, 5])

如果不需要numpy解决方案,您可以执行以下操作

l = [1,2,3,4,5,6,7,8]
a = [i for i in l if not i%2]

##print(a) output
##[2, 4, 6, 8]

您的代码永远不会到达
else
子句,因为
if
测试始终为true

  • 没有一个数字等于
    int
    ,因为
    int
    是一个类<代码>=是平等测试,而不是成员资格测试
  • 4/2
    不是
    int
    类型,因为
    /
    运算符给出了一个
    float
    结果,所以答案是
    2.0
    。这意味着
    type(A[0]/2)
    将始终是
    float
    ,而与
    A[0]
    的值无关。因此,测试
    int
    的成员资格划分结果,即使操作正确,也不会达到您想要的效果
  • 改为这样做:

    if not (A[0] % 2):
    

    如果
    A[0]
    不是偶数,无论是整数还是浮点数,这都是正确的。

    您确定这些数字总是要排序吗?这是Python 2还是Python 3?在Python3上,整数上的
    /
    返回一个
    浮点值。还有:看看。您当前正在将对象与类进行比较。如果解决了您的问题,请使用。这有助于我们跟踪哪些问题有待回答。