有关if-elif函数的Python函数问题

时间:2018-12-24 05:32:33

标签: python

以下是我对Hackerrank的一个问题的回答。

但是,当我运行代码时,终端中会出现2个值。其中之一是None值。我不确定哪一行代码创建了此None值。请指教。谢谢

代码:

def is_weird(num):
    if num % 2 == 1:
        print("Weird")
    elif num % 2 == 0 and 2 <= num <= 5:
        print("Not Weird")
    elif num % 2 == 0 and 6 <= num <= 20:
        print("Weird")
    elif num % 2 == 0 and num > 20:
        print("Not Weird")

N = int(input("Enter number: "))
print(is_weird(N))

终端输出:

  

输入数字:8
  很奇怪
  没有

1 个答案:

答案 0 :(得分:0)

Python函数默认返回None。在您的情况下,is_weird()函数将返回None。 因此,当您输入8作为输入时,由于函数内的print语句,函数将输出"Weird",然后返回None。由于行print(is_weird(N))

而显示该值

您的isweird()函数等效于:

def is_weird(num):
    if num % 2 == 1:
        print("Weird")
    elif num % 2 == 0 and 2 <= num <= 5:
        print("Not Weird")
    elif num % 2 == 0 and 6 <= num <= 20:
        print("Weird")
    elif num % 2 == 0 and num > 20:
        print("Not Weird")
    return None