如何使用end =''在打印声明之外

时间:2017-08-11 09:44:55

标签: python

for i in list(ident.split()):
    print(i.capitalize(), end='')

有没有办法将我的所有元素加在一起。它似乎与end =''打印时的功能。虽然,您无法在打印功能之外执行此操作。

for i in list(ident.split()):
    ident = (i.capitalize(), end='') #SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:1)

语法end=''是传递给print函数的关键字参数。 print函数将收到名为end的参数,其值等于''

另一方面,(i.capitalize(), end='')会引发SyntaxError,因为Python会在错误的位置看到分配。

print函数将在控制台中打印第一个参数,并将打印作为end关键字参数传递的字符串。 因此,当迭代列表并使用end='x'打印元素时,输出看起来像列表元素的字符串,用'x'分隔。 但是,实际上没有构建这样的字符串。

你想要的是join字符串方法。 应该在用作分隔符的字符串上调用它,并且它的参数应该是要连接的字符串的可迭代。

您的打印循环是:

for i in list(ident.split()):
    print(i.capitalize(), end='')

将通过以下方式创建等效字符串:

s = ''.join(i.capitalize() for i in list(ident.split()))

如果您不熟悉生成器表达式和理解,这相当于:

l = []
for i in list(ident.split()):
    l.append(i.capitalize())
s = ''.join(l)

顺便说一句,str.split会返回一个列表,因此您无需将其转换为列表。您应该list(ident.split())替换ident.split()