【问题标题】:Python function prints None [duplicate]Python函数打印无[重复]
【发布时间】:2010-10-18 16:18:20
【问题描述】:

我有以下练习:

参数weekday如果是则为True 一个工作日,以及参数假期 如果我们正在度假,则为真。我们 如果不是工作日就睡 我们正在度假。如果我们返回 True 睡吧。

这是我所做的,但第二个打印函数只打印'None'

def sleep_in(weekday, vacation):
    if(not weekday or vacation):
        return True

print(sleep_in(False, False))
print(sleep_in(True, False))
print(sleep_in(False, True))

输出:

True
None
True

【问题讨论】:

    标签: python function return-value


    【解决方案1】:

    python 中的函数返回 None,除非明确指示要这样做。

    在上面的函数中,您没有考虑工作日是True 的情况。解释器在没有读取 return 语句的情况下到达函数的末尾(因为你之前的条件计算为 False),并返回 None

    编辑

    def sleep_in(weekday, vacation):
        return (not weekday or vacation)
    

    你去=)

    【讨论】:

    • 那里不需要括号
    • @SilentGhost:不需要括号,是的,但可以说它们增加了清晰度。
    • @delnan 我认为将这种比较逻辑括在括号中是一种很好的做法,即使优先规则使其不必要。
    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2013-10-26
    • 2018-05-11
    • 1970-01-01
    相关资源
    最近更新 更多