我想使用Python在同一行上打印一系列数字。我该如何使用Python实现这个功能?在C语言中,我可以通过不添加\n
来实现这一点,但是在Python中该怎么做呢?
for x in xrange(1,10):
print x
我正在尝试获得这个结果。
1 2 3 4 5 6 7 8 9 10
我想使用Python在同一行上打印一系列数字。我该如何使用Python实现这个功能?在C语言中,我可以通过不添加\n
来实现这一点,但是在Python中该怎么做呢?
for x in xrange(1,10):
print x
我正在尝试获得这个结果。
1 2 3 4 5 6 7 8 9 10
>>>print(*range(1,11))
1 2 3 4 5 6 7 8 9 10
用一行Python代码打印范围
Python 2
for x in xrange(1,11):
print x,
Python 3
for x in range(1,11):
print(x, end=" ")
for i in range(10):
print(i, end = ' ')
你可以提供任何分隔符来结束字段(空格、逗号等)。str.join
是合适的。>>> print ' '.join(str(x) for x in xrange(1,11))
1 2 3 4 5 6 7 8 9 10
xrange
。你可以尝试使用 -print(*range(1,11))
或者
for i in range(10):
print(i, end = ' ')
[print(i, end = ' ') for i in range(10)]
0 1 2 3 4 5 6 7 8 9
print(*[i for i in range(10)], sep=" ")
这样可以避免@OneCricketeer提到的空列表的创建。 - Aldo Bassaninii for i in
。只需 print(*range(10))
。 - OneCricketeerrange
对象在解包时不会创建内部列表吗? - Aldo Bassaninistdout
实现相同的效果。>>> from sys import stdout
>>> for i in range(1,11):
... stdout.write(str(i)+' ')
...
1 2 3 4 5 6 7 8 9 10
另外,也可以使用 reduce()
来实现相同的功能:
>>> xrange = range(1,11)
>>> print reduce(lambda x, y: str(x) + ' '+str(y), xrange)
1 2 3 4 5 6 7 8 9 10
>>>
for i in range(1,n):
print(i,end="")
对于Python 3:
for i in range(1,10):
print(i,end='')
n = int(input())
for i in range(1,n+1):
print(i,end='')
*
的实际意义是什么? - majom*
解包序列。 - voidpro*
的文档链接吗?这个很难在谷歌上搜索到。 - majom*
符号的用法有一些讨论。您可以参考这里(https://dev59.com/0mw05IYBdhLWcg3w41sp)来了解更多信息。 - voidpro