我正在尝试使用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")
答案 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)