在Python 3中使用逗号打印的方法

3
使用Python 3中的print()函数,如果要在同一行上重复显示数据,则无法将它们依次列出。
比如,你想要一个消息在同一行上重复显示。
例如:
my_message = 'Hello'
for i in range(100) :
    print(my_message), 

当前它是一个接一个地打印。(不是我想要的)
hello 
hello
hello..... 

但我在Python书中读到, 在print()后面添加逗号","就可以实现所需的效果,并使其并排显示。
hello hello hello hello..(x100)

为什么Python 3不能这样做?如何修复它?


逗号的用法只存在于Python 2中,因为在那个版本里面,printiffor等语句一样是一个声明,如果你想表明不需要一个新行,就必须在末尾加上逗号。在Python 3中,除了很多其他改变外,他们将其改成了内置函数,提供了更多自定义控制的灵活性,可以查看help(print)获取详细信息。 - Copperfield
3个回答

7

在 Python 3 中,以下代码无法正常工作,因为 print 是一个函数。要达到预期的效果,请使用:

myMessage = "Hello"
for i in range(100):
    print(myMessage, end=" ")

更简洁地说:
print(" ".join("Hello" for _ in range(100)))

2

因为在Python 3中,print()是一个函数,你可以使用*运算符将多个参数传递给它。

你可以使用元组来实现:

print(*('Hello' for x in range(100)))

或者使用列表(由列表推导式创建):
print(*['Hello' for x in range(100)])

另一种方法是使用 join()

print(' '.join('Hello' for x in range(100)))

您还可以使用end关键字:
for x in range(100):
    print('Hello', end=' ')

在Python 2.x中,这是可能的:
for x in xrange(100):
    print 'Hello',

1
在Python 3中,只需使用以下代码:

print(*('Hello' for _ in range(5)))

不需要创建列表或使用join。如果想要在每个“Hello”之间有除一个空格以外的其他内容,请传递sep参数(注意它是关键字参数):
print(*('Hello' for _ in range(5)), sep=', ')

给你。
Hello, Hello, Hello, Hello, Hello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接