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