-8
def f():
    return True

print(f())

或者

def f():
    return True

if f():
    print('True')
else:
    print('False')

我应该在 if 语句中舍入它还是简单地打印出 Python 3.3.2 中的值?

4

3 回答 3

3

print自动将输入转换为其字符串表示形式。因此,这两种方法实际上做的事情完全相同。考虑到这一点,为什么不使用第一个呢?它干净了很多。

此外,第二种方法确实可以简化:

print('True' if f() else 'False')

没有必要为如此​​简单的事情编写那么多代码。

于 2013-09-24T21:54:44.460 回答
1

如果您的函数总是返回 a bool,那么只需打印它,如下所示:

print(f())

如果您需要将其转换为字符串而不打印,请使用str(f())or repr(f())。对于bool类型,这两个是等价的,但例如,如果它们的参数是 an str,它们是不同的:repr(str_obj)返回正确引用和转义的。

如果它并不总是 a bool,但您想根据其真值打印某些内容,请使用if, 就像在您的问题或 iCodez 的答案中一样。或者,您可以将其转换为布尔值,然后打印:

print(bool(f()))
于 2013-09-24T21:54:19.603 回答
0

个人认为:

print(f())

形式看起来更好。但是,要考虑的一件事是,您已经在调用中进行了打印,以打印本质上是调试输出的调用导致功能被调用。print当您准备好构建您的程序时,当您想要关闭所有烦人的语句时,这会让您很痛苦。

您可以改为使用以下功能:

LOGGING_ENABLED = True

def print_if(my_bool):
    if LOGGING_ENABLED:
        print str(my_bool)

这将确保始终调用该函数,但调试输出仅在您需要时发生。

于 2013-09-24T23:49:27.487 回答