Python返回Elif语句

时间:2018-09-14 00:07:35

标签: python

我正在尝试检查传递的数字是否是

的有效完美平方
    d_dense1 = Dense(
        ((IMAGE_SIZE/4)**2)*(n if vanilla_architecture else 3*n),
        input_shape = (h,),
        activation = "relu",
        name = name_prefix + "dense1"
    )(d_in)
    d_reshape1 = tf.keras.layers.Reshape(
        (IMAGE_SIZE/4, IMAGE_SIZE/4, (n if vanilla_architecture else 3*n)),
        name = name_prefix + "reshape1"
    )(d_dense1)

我想知道是否可以通过将if语句分成两部分来更好地编写代码,例如

~

有人可以帮助我在这里使用elif还是有更好的方法。

谢谢。

4 个答案:

答案 0 :(得分:2)

根本不需要使用if语句

return math.sqrt(num) % 2 == 0 or (math.sqrt(num)+1) % 2 == 0 

答案 1 :(得分:2)

首先,三元运算符中没有elif。其次,您的elif没有指定返回值(将其排除在三元表达式之外的一个原因)。第三,检查根是否为整数容易出现舍入错误。相反,请尝试将根取整为整数,然后将其平方并与原始值进行比较。

答案 2 :(得分:2)

简单的一线式设计,并且具有可读性。

def check(num): 
    return True if math.sqrt(num) % 2 == 0 or (math.sqrt(num)+1) % 2 == 0 else False

结果

>>> check(25)
True
>>> check(23)
False

答案 3 :(得分:1)

只需回答有关如何使用SELECT Carrier ,Shipment ,Acceptance ,Day ,ROW_NUMBER() OVER ( PARTITION BY Carrier , Day , Acceptance ORDER BY Day ) AS "Cumulative Count of Acceptance per Day" FROM CARRIER_RESPONSE 的问题,并通过破坏elif语句就可以多行完成。我假设您将它们放在一个函数中。就像其他答案中指出的那样,可能会有更好的方法

if