簡體   English   中英

這兩個簡單的代碼有什么區別? 更具體地說,這個 if 語句是做什么用的?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM