Python 3.6 If Statement with Criteria

时间:2017-12-15 03:02:56

标签: python python-3.x function if-statement

我正在尝试使用Python 3中的条件创建经典if语句。我能够从此代码中输入一个数字,但我无法弄清楚为什么代码不会打印“热”或“冷”。我该怎么做才能解决这个问题?我是否需要elif使用此声明?

N = float(input(("Enter Number: ")))
def is_hot (N):
    if N/2>1 and N-1>1:
        print (N, "is hot")
    else:
        N/2<1 and N-1<1
        print (N, "is cold")

3 个答案:

答案 0 :(得分:3)

正如@Brad所罗门在评论中提到的那样。而不是你应该使用elif。

N = float(input(("Enter Number: ")))
def is_hot (N):
    if (N/2>1 and N-1>1):
        print (N, "is hot")
    elif (N/2<1 and N-1<1) :
        print (N, "is cold")
    else :
        print(N,"neither hot nor cold")

is_hot(N)

注意: - 您还可以添加与两种情况都不匹配的默认条件(else部分)。 更新: - 按照Gary

的建议添加了对该功能的调用

答案 1 :(得分:3)

因为您只定义了函数is_hot(N),但您没有调用它。

答案 2 :(得分:0)

你需要修复你的功能,因为看起来它需要一个elif ...:而不是else:而且你需要实际调用这个功能,一旦你得到你的输入。所以......

def is_hot (N):
    if N/2>1 and N-1>1:      # N > 2
        print (N, "is hot")
    elif N/2<1 and N-1<1:    # N < 2
        print (N, "is cold")
    else:                    # N is 2
        print (N, "is just right!")
n = float(input(("Enter Number: ")))
is_hot(n)

请注意,在调用func和定义func时,我在两个地方都没有使用 N 。它会起作用,但就代码可读性而言,它并不总是最好的。

此外,最佳做法是在代码顶部列出您的功能。

此外,您可以并且可能应该在函数中使用与调用代码中不同的变量名称。这不是为了功能,而是为了可读性。如果某人没有注意,他们可能会看到相同的名字并认为它是一个全局变量。同样,您不必使用不同的变量名称,但使用不同的变量名称是一种很好的做法。如果不出意外,函数中的变量名通常更通用,并且调用代码中的变量名更具体。这是一个例子:

def merge_lists(list1, list2): # generic..
    return zip(list1, list2)
my_merged_inventory_list = merge_lists(list_of_stock_items, list_of_item_prices)