首页 > 解决方案 > 关于 if-elif 函数的 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
奇怪

标签: python

解决方案


Python 函数None默认返回。在您的情况下,该is_weird()函数正在返回None. 因此,当您输入 8 作为输入时,"Weird"由于函数内部的 print 语句,您的函数会打印,然后返回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

推荐阅读