[英]What's the difference between these two simple codes? More specifically, what is this if statement used for?
我正在閱讀一本關於 Python 的書,它提供了以下代碼:
def myfunc(*args):
for a in args:
print(a, end='')
if args:
print()
當下面的代碼也顯示相同的 output 時,我很困惑if args的意義。
def myfunc(*args):
for a in args:
print(a, end='')
function 的兩個版本都會打印它收到的 arguments 列表。
end=''
參數確保不為每個打印附加\n
字符,默認情況下會為每個參數打印一行。
這樣,您將擁有像這樣的 output
arg1arg2...argN<noNewline>
(所有 arguments 都連接在一起,甚至沒有空格分隔它們)。 相反,如果沒有end=''
,您將擁有
arg1
arg2
...
argN
由於您可能需要一個尾隨換行符,所以最后您調用print()
,它只打印一個換行符。 但僅當 args 列表不為空( if args:
)時,才能避免出現“奇怪”的空行,即使沒有 arguments 存在。
if args
為 True。
print()
只打印一個空行。
*args
允許您將盡可能多的 arguments 轉發到 function。 *args
總是返回set
。 您正在循環遍歷set
中的項目,並在最后打印每個項目而不用換行。 在第一個代碼中,只要*args
不是None
,條件就會返回True
。
def function(*args):
if *args:
return f'{args} is not None!`
如果 args 包含一個或多個 arguments,則第一個示例將打印更多換行符。 我認為它只是為了讓 output 更漂亮一點,這並不重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.