def f():
return True
print(f())
或
def f():
return True
if f():
print('True')
else:
print('False')
我应该在if语句中对它进行舍入,还是只是在Python 3.3.2中打印出来的值?
答案 0 :(得分:3)
print
自动将输入转换为其字符串表示形式。所以,这两种方法实际上完全相同。考虑到这一点,为什么不使用第一个呢?它更清洁。
此外,第二种方法可以真正简化:
print('True' if f() else 'False')
没有必要为那么简单的代码提供那么多代码。
答案 1 :(得分:1)
如果您的函数始终返回bool
,则只需打印它,如下所示:
print(f())
如果您需要将其转换为字符串而不打印它,请使用str(f())
或repr(f())
。对于bool
类型,这两个是等价的,但是例如如果他们的参数是str
,则它们是不同的:repr(str_obj)
会正确地引用并转义它。
如果它不总是bool
,但您想根据其真实值打印某些内容,请使用if
,就像您的问题或iCodez的回答一样。或者,您可以将其转换为bool,然后将其打印出来:
print(bool(f()))
答案 2 :(得分:0)
就个人而言:
print(f())
表单看起来更好。但是,需要考虑的一件事是,您已经调用了一个调用来打印本质上是调试输出的调用,该调用导致调用该功能。当你准备好在你的程序上构建时,当你想要关闭所有烦人的print
语句时,这会让你很痛苦。
您可以使用以下功能:
LOGGING_ENABLED = True
def print_if(my_bool):
if LOGGING_ENABLED:
print str(my_bool)
这将确保始终调用该函数,但只有在您需要时才会发生调试输出。