在同一行上打印数字范围

37

我想使用Python在同一行上打印一系列数字。我该如何使用Python实现这个功能?在C语言中,我可以通过不添加\n 来实现这一点,但是在Python中该怎么做呢?

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

我正在尝试获得这个结果。

1 2 3 4 5 6 7 8 9 10
14个回答

0
另一种单行的Python 3选项,但带有明确的分隔符: print(*range(1,11), sep=' ')

请问您能否解释一下它是如何工作的? range前面的*是什么意思? - Vijender Kumar
@VijenderKumar 这将打印出1到10,由sep属性中放置的任何字符串分隔。在上面的示例中,每个整数字符串由空格分隔。 - Mykel
@VijenderKumar 这只是 Python 参数定位的问题。 - Mykel

0
for i in range(1,11):
    print(i)

我知道这是一个老问题,但我认为现在这个可以工作了


1
不,它不会!Python 3的print函数和Python 2的print语句默认都会隐式添加换行符。 - jmd_dk

0

在 print 函数内使用 end = " "

代码:

for x in range(1,11):
       print(x,end = " ")

-1
这里有一个类似于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))
print(multivariate_normal_pdf(x1, mu, sigma))

print(mvn.pdf(x2, mu, sigma))
print(multivariate_normal_pdf(x2, mu, sigma))

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