在同一行打印一系列的数字

35 人关注

我想用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-2.7
kyle k
kyle k
发布于 2013-08-25
13 个回答
voidpro
voidpro
发布于 2021-03-02
已采纳
0 人赞同
>>>print(*range(1,11)) 
1 2 3 4 5 6 7 8 9 10

Python单线程打印范围

很好的答案。其实 * 的含义是什么?
@majom * 解除了序列。
谢谢。我明白了。你是否知道 * 的文档链接?这很难在谷歌上找到。
有几个关于 * 的用法的主题。你可以很好地参考 here
blakev
blakev
发布于 2021-03-02
0 人赞同

Python 2

for x in xrange(1,11):
    print x,

Python 3

for x in range(1,11):
    print(x, end=" ") 
    
这是一个非常简单的解决方案!但是,这和其他人给出的更复杂的解决方案有什么区别呢? 答案被接受!
所以,"print x, "只是你在做一系列打印时转义换行的简短方法。你的打印是在一个for循环中,所以这是有意义的。下面,string.join方法接收一个iterable,将每个元素与提供的字符串结合起来,并返回一个单一的字符串。因此,你不是做多个没有换行符的打印,而是做一个有换行符的打印;只是把所有可打印的元素预先编译成一个字符串。
谢谢,这回答了我的问题。
Anubhav
Anubhav
发布于 2021-03-02
0 人赞同
for i in range(10):
    print(i, end = ' ')

你可以为结束字段提供任何分隔符(空格、逗号等)。

This is for Python 3

ersran9
ersran9
发布于 2021-03-02
0 人赞同

在这种情况下, str.join 将是合适的

>>> print ' '.join(str(x) for x in xrange(1,11))
1 2 3 4 5 6 7 8 9 10 
    
Rajnish Gaur
Rajnish Gaur
发布于 2021-03-02
0 人赞同

这是个老问题了,Python3中不支持 xrange

你可以试试 -

print(*range(1,11)) 
for i in range(10):
    print(i, end = ' ')
    
subhash kumar singh
subhash kumar singh
发布于 2021-03-02
0 人赞同

同样可以通过使用 stdout 来实现。

>>> 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
    
so much complexity for such a simple question. Plus, neither of those escape a new line, your first is piping to stdout which needs to be imported from sys and your second is concatenating strings with a lambda and an overwritten reserved function. Why wouldn't you use ' '.join(<list>)?? Both of these are bad practice.
@BlakeVandeMerwe 我正试图涵盖可能的方式。
Akash Kumar Seth
Akash Kumar Seth
发布于 2021-03-02
0 人赞同
[print(i, end = ' ') for i in range(10)]
0 1 2 3 4 5 6 7 8 9

这是一种与@Anubhav相同的列表理解法的答案。

这毫无必要地创造了一个列表
在Python 3中,最好使用打印里面的解包列表。 【替换代码0 这样就避免了@OneCricketeer提到的空列表的产生
@AldoBassanini 这也会产生一个列表......你也不需要 i for i in 。只需要 print(*range(10))
@OneCricketeer range 对象在解压时不会创建一个内部列表?
@AldoBassanini 这是一个Python3的生成器
bre
bre
发布于 2021-03-02
0 人赞同
for i in range(1,11):
    print(i)

我知道这是个老问题了,但我想现在可以用了。

jmd_dk
不,它没有!Python 3的打印函数和Python 2的打印语句都默认添加了一个换行。
Mykel
Mykel
发布于 2021-03-02
0 人赞同

另一个单行Python 3选项,但有明确的分隔符。

print(*range(1,11), sep=' ')

请你解释一下它是如何工作的,在范围之前的那个*是什么。
@VijenderKumar 这将打印1到10,用你在sep属性中输入的任何字符串分隔。 在上面的例子中,每个整数字符串都用一个空格隔开。
@VijenderKumar 这只是python的参数定位。
siddhartha chaudhary
siddhartha chaudhary
发布于 2021-03-02
0 人赞同
n = int(input())
for i in range(1,n+1):
    print(i,end='')
    
为什么这比公认的答案要好,或者与建议完全这样的答案不同?
欢迎来到Stack Overflow!虽然这段代码可能会解决这个问题。 包括解释 解释如何以及为什么会解决这个问题,这将真正有助于提高你的帖子的质量,并可能导致更多的支持率。记住,你是在为未来的读者回答问题,而不仅仅是现在的提问者。请 edit 你的答案要增加解释,并说明有哪些限制和假设。
boss_man
boss_man
发布于 2021-03-02
0 人赞同

Use end = " " , inside the print function

Code:

for x in range(1,11):
       print(x,end = " ")
    
Prashant Mani
Prashant Mani
发布于 2021-03-02
0 人赞同

虽然这个问题已经给出了答案。我想补充的是,如果我们需要打印没有任何空格的数字,那么我们可以使用以下代码

        for i in range(1,n):
            print(i,end="")
    
luca992
luca992
发布于 2021-03-02
0 人赞同

这里有一个解决方案,可以像scipy pdf那样处理有单行或多行的x。

from scipy.stats import multivariate_normal as mvn
# covariance matrix
sigma = np.array([[2.3, 0, 0, 0],
           [0, 1.5, 0, 0],
           [0, 0, 1.7, 0],
           [0, 0,   0, 2]
# mean vector
mu = np.array([2,3,8,10])
# input
x1 = np.array([2.1, 3.5, 8., 9.5])
x2 = np.array([[2.1, 3.5, 8., 9.5],[2.2, 3.6, 8.1, 9.6]])
def multivariate_normal_pdf(x, mu, cov):
    x_m = x - mu
    if x.ndim > 1:
        sum_ax = 1
        t_ax = [0] 
        t_ax.extend(list(range(x_m.ndim)[:0:-1])) # transpose dims > 0
    else:
        sum_ax = 0
        t_ax = range(x_m.ndim)[::-1]
    x_m_t = np.transpose(x_m, axes=t_ax) 
    A = 1 / ( ((2* np.pi)**(len(mu)/2)) * (np.linalg.det(cov)**(1/2)) )
    B = (-1/2) * np.sum(x_m_t.dot(np.linalg.inv(cov)) * x_m,axis=sum_ax)
    return A * np.exp(B)
print(mvn.pdf(x1, mu, sigma))