def f():
return True
print(f())
def f():
return True
if f():
print('True')
else:
print('False')
我要圓它在if語句或者乾脆打印出來的值,在Python 3.3.2?
def f():
return True
print(f())
def f():
return True
if f():
print('True')
else:
print('False')
我要圓它在if語句或者乾脆打印出來的值,在Python 3.3.2?
如果你的函數總是返回bool
,那麼就打印出來,像這樣:
print(f())
如果你需要將其轉換爲字符串,而不進行打印,使用str(f())
或repr(f())
。對於bool
類型,這兩個是相同的,但例如如果他們的參數是str
,他們是不同的:repr(str_obj)
返回它適當引用和轉義。
如果它不總是一個bool
,但你想要打印的東西取決於它的真值,那麼使用if
,就像在你的問題或在iCodez的答案。另外,您也可以將其轉換爲BOOL,然後打印:
print(bool(f()))
print
自動將輸入到它的字符串表示。所以,這兩種方法實際上完全一樣。考慮到這一點,爲什麼不使用第一個?這是一個更清潔。
此外,第二方法真的可以簡化爲:
print('True' if f() else 'False')
有,對於這麼簡單的東西多的代碼是沒有必要的。
個人的:
print(f())
形式看起來更好。然而,需要考慮的一件事情是,您已經調用了打印什麼是本質上調試輸出,而調用會導致該功能被調用。當你準備建立你的程序時,如果你想關掉所有煩人的print
聲明,這會讓它很痛苦。
您可以改爲具有這樣的功能,如:
LOGGING_ENABLED = True
def print_if(my_bool):
if LOGGING_ENABLED:
print str(my_bool)
這將確保該函數調用總是但是隻有當你想要的調試輸出發生。
我同意@LorenzoDonati。這不是作爲一個事實答案寫的,而是作爲你的意見。你應該這樣說:「Python布爾實現'__repr__'和'__str__'來打印它們的真值,這樣'print(f())'實際上等同於你發佈的片段,但更簡潔。 ,所以第一種形式絕對沒問題。「 –
感謝您對我的回答的反饋,我將它擴展爲更多信息。 – pts