Python 如何在if语句中使用数据类型

Python 如何在if语句中使用数据类型,python,Python,我正在写一个程序来检查矩阵是否为正方形,行数和列数是否相等,例如:2x2,3x3,等等 我认为最好使用内置的大小函数计算元素,并取平方根。我想写一个if语句,如果平方根不是整数,它会打印一个错误语句,但我不确定如何在语句中指定整数 这是我试过的 import numpy as np A = np.array([[1,2,3],[4,5,6]]) check = A.size if check**.5 ... 我不知道在语句的其余部分应该放什么shape属性可能

我正在写一个程序来检查矩阵是否为正方形,行数和列数是否相等,例如:2x2,3x3,等等

我认为最好使用内置的大小函数计算元素,并取平方根。我想写一个if语句,如果平方根不是整数,它会打印一个错误语句,但我不确定如何在语句中指定整数

这是我试过的

    import numpy as np
    A = np.array([[1,2,3],[4,5,6]])
    check = A.size
    if check**.5 ...

我不知道在语句的其余部分应该放什么

shape属性可能就是您想要检查的

如果A.shape[0]==A.shape[1]: 是正方形的 其他: 它不是正方形的 shape属性可能就是您要检查的

如果A.shape[0]==A.shape[1]: 是正方形的 其他: 它不是正方形的
你可以检查它是否是一个整数

if check**.5 == int(check**.5):
    ...

你可以检查它是否是一个整数

if check**.5 == int(check**.5):
    ...

要检查值是否为整数,可以使用x%1==0,但这种方法无法检查方形数组。例如,如果检查大小的平方根是否为整数,则大小为18,2的矩阵将返回True。获取大小的平方根是不必要的复杂。如果要检查值是否为整数,可以使用x%1==0,但这种方法将无法检查方阵。例如,如果检查大小为18,2的矩阵的平方根是否为整数,则该矩阵将返回True。获取大小的平方根是不必要的复杂。通常,可能重复此操作是一个坏主意;对于某些大的近正方形,由于浮点精度问题,此检查将返回true。当然,问题的最佳解决方案是提供给Jmonsky的。虽然我经常觉得这样可以回答那些没有被问到的问题。OP想知道如何检查它是否是一个整数。就像我说的,这不是一个好方法,因为浮点值的精度有限。考虑x=99999999;y=x+1*x-1**.5。x**2!=x+1*x-1,但y==inty。我折叠,如果OP构造一个9999999 x9999999维矩阵,这个解决方案将不起作用。我没有否决,因为在这个问题的上下文中,它可能是可以的,但我不会排除更小、更少平方的矩阵的存在,它们给出相同的假阳性。这通常是个坏主意;对于某些大的近正方形,由于浮点精度问题,此检查将返回true。当然,问题的最佳解决方案是提供给Jmonsky的。虽然我经常觉得这样可以回答那些没有被问到的问题。OP想知道如何检查它是否是一个整数。就像我说的,这不是一个好方法,因为浮点值的精度有限。考虑x=99999999;y=x+1*x-1**.5。x**2!=x+1*x-1,但y==inty.I fold,如果OP构造了一个9999999 x9999999维矩阵,这个解决方案将不起作用。我没有投反对票,因为在这个问题的上下文中,这可能没什么问题,但我不会排除更小、更少平方的矩阵的存在,它们给出相同的假阳性。