我无法删除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
我无法删除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
尝试这个:
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,
将在j
s 之间留下空格。如果您不想要这个,您可以import sys
使用它sys.stdout.write(j)
来代替(请参阅 参考资料sys
)。
此外,如果您想使用如上所示的 Python 3 打印功能,您可以随时
from __future__ import print_function
一种解决方案,如果您有兴趣:
print('\n'.join([''.join(['{}'.format(i) for i in range(1,j)]) for j in range(2,6)]))
1
12
123
1234
for r in range(1,5):
for c in range (1,r+1):
print c,
print
这里,不带参数的 print 导致在下一行打印
为了在一行中获取所有数字,您必须在每一行使用一个打印语句。您可以这样做的一种方法是:
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)
def pentagon(num):
j = num
for i in range(0, num + 1):
print('{}{}'.format(' ' * j, ' *' * i))
j -= 1
pentagon(2)
输出
*
* *
我认为@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)
# * * * *
# * * *
# * *
# *
尝试:
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
num = int(input())
for i in range (1,num+1):
for j in range(i):
print(j+1,end = '')
print("")
x=input('输入一些数值')
s=''
对于范围内的我(0,x):
for j in range(0,i+1):
s=s+str(j+1)
print s
s=''