如何在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上,整数上的/
返回一个浮点值。还有:看看。您当前正在将对象与类进行比较。如果解决了您的问题,请使用。这有助于我们跟踪哪些问题有待回答。