1

我无法删除for-loop 中的间距,因为数字与制作模式不同。

我的代码:

for i in range(1,5):
    for j in range(1,i):
       print(j)

产生以下结果:

1
1
2
1
2
3

但我想要的输出是:

1
12
123
1234
4

9 回答 9

6

尝试这个:

print(j, end='')

end默认情况下是\n(参见print())。此外,请务必在每次外循环迭代结束时打印一个换行符:

for i in range(1,6):  # notice that I changed this to 6
    for j in range(1,i):
        print(j, end='')  # added end=''
    print()  # printing newline here
1
12
123
1234

编辑我刚刚注意到您使用的是 Python 2.7。既然是这种情况,您可以使用print j,代替print(j, end='')print代替print(). 请注意,print j,将在js 之间留下空格。如果您不想要这个,您可以import sys使用它sys.stdout.write(j)来代替(请参阅 参考资料sys)。

此外,如果您想使用如上所示的 Python 3 打印功能,您可以随时

from __future__ import print_function
于 2013-08-16T19:47:30.623 回答
1

一种解决方案,如果您有兴趣:

print('\n'.join([''.join(['{}'.format(i) for i in range(1,j)]) for j in range(2,6)]))

1
12
123
1234
于 2014-12-31T14:37:57.760 回答
1
for r in range(1,5):
    for c in range (1,r+1):
        print c,
    print

这里,不带参数的 print 导致在下一行打印

于 2016-08-01T13:21:59.647 回答
0

为了在一行中获取所有数字,您必须在每一行使用一个打印语句。您可以这样做的一种方法是:

for i in range(1, 5):
    print(''.join([str(n) for i in range(1, i)]))

保持嵌套for循环你可以这样做:

for i in range(1, 5):
    temp = ''
    for j in range(1, i):
        temp += str(j)
    print(temp)
于 2013-08-16T19:47:37.837 回答
0
def pentagon(num):

    j = num
    for i in range(0, num + 1):
        print('{}{}'.format(' ' * j, ' *' * i))
        j -= 1

pentagon(2)

输出

 *  
* *
于 2018-08-22T14:19:55.247 回答
0

我认为@Shiva 的想法非常好,并制作了一个更通用的金字塔功能,也许有人可以使用/享受它:

def pyramid(n_rows, s, upside_down=False, offset=0):
    whites = ' ' * len(s)
    offset = ' ' * offset

    indices = np.arange(n_rows)

    if upside_down:
        indices = zip(indices[::-1]+1, indices)
    else:
        indices = zip(indices+1, indices[::-1])

    for i, j  in indices:
        print(f"{offset + whites * j}{(s + whites) * i}")


pyramid(4, 'SO')
#       SO  
#     SO  SO  
#   SO  SO  SO  
# SO  SO  SO  SO  

pyramid(4, '*', upside_down=True, offset=3)
#    * * * * 
#     * * * 
#      * * 
#       * 


于 2020-01-24T10:12:51.210 回答
0

尝试:

def RTN():
    x = 1
    num = int(input('Type any integer besides 0: '))
    if num == 0:
        return 'Try again!'
    while x < num + 2:
        print('')
        for y in range(1, x):
            print(str(y) + ' ', end = '')
        x += 1
于 2018-11-02T14:30:19.850 回答
-1
num = int(input())

for i in range (1,num+1):
    for j in range(i):
        print(j+1,end = '')
    print("")
于 2020-01-24T09:14:42.093 回答
-4

x=input('输入一些数值')

s=''

对于范围内的我(0,x):

     for j in range(0,i+1):

              s=s+str(j+1)
     print s
     s=''
于 2014-12-31T14:16:36.853 回答