我需要输出这个
1
22
333
4444
55555
666666
7777777
88888888
999999999
到目前为止,我所拥有的是:
def main():
for i in range(10):
for n in range(i):
print(i)
return
main()
我得到了所有正确的数字,只是格式不正确。如果你们能以我的方式提出一些提示,我将不胜感激。
只需将字符串版本相乘:
for i in range(10):
print(str(i) * i)
输出:
>>> for i in range(10):
... print(str(i) * i)
...
1
22
333
4444
55555
666666
7777777
88888888
999999999
如果您必须使用嵌套循环,请通过将选项设置为空字符串来告诉print()
函数不要在内循环中打印换行符;end
外print()
循环中的空调用就足以添加必要的换行符:
for i in range(10):
for n in range(i):
print(i, end='')
print()
几乎上面提到的每个答案都使用字符串来解决这个问题。还有另一种方法,更简单的方法是使用公式 a_n= n * ((10^n - 1)/9) for n<=9 应用简单的数学。请参考下面的代码片段(使用 Python 3)
for i in range(1,n)
print i*(((pow(10,i)-1) // 9)
n = 4
输出
1
22
333
4444
def main():
for i in range(10):
for n in range(i):
print(i, end='')
print()
main()
def main(n):
for x in range(n):
if x>0:
print(str(x)*x+'\n')
main(n)
一行,不要使用str:
print((10**(i)//9)*i)