count = 1
for i in range(10):
for j in range(0, i):
print(count, end='')
count = count +1
print()
input()
我正在编写一个程序,其输出应该是这样的。
1
22
333
4444
55555
666666
7777777
88888888
999999999
使用我编写的代码,我非常接近,但是我的计数工作方式只是字面数字上升。我只是需要帮助才能使它只计数到9但显示如上。感谢。
答案 0 :(得分:8)
你在内循环中递增count
这就是为什么你想要在你想要之前继续得到更大的数字
你可以这样做。
>>> for i in range(1, 10):
print str(i) * i
1
22
333
4444
55555
666666
7777777
88888888
999999999
或者由于某种原因你想要嵌套循环
from __future__ import print_function
for i in range(1, 10):
for j in range(i):
print(i, end='')
print()
答案 1 :(得分:2)
这适用于python2和python3:
for i in range(10):
print(str(i) * i)
答案 2 :(得分:2)
for i in range(1,10):
for j in range(0,i):
print i,
print "\n"
答案 3 :(得分:1)
代码中的简单错误是count = count + 1的位置。它应该放在第二个for循环块之后。我在您自己的代码中进行了一个简单的更改,以获得您想要的输出。
from __future__ import print_function
count = 0
for i in range(10):
for j in range(0, i):
print(count,end='')
count = count +1
print()
这将根据您编写的代码提供您想要的输出。 :)
答案 4 :(得分:1)
这是一线解决方案。 有点长:
print ('\n'.join([str(i)*i for i in range(1,10)]))
答案 5 :(得分:0)
将print(count, end='')
更改为print(i + 1, end='')
并删除count
。只要确保你理解它的工作原理。
答案 6 :(得分:0)
这就是你想要的:
for i in range(10):
print(str(i) * i)
答案 7 :(得分:0)
"""2. 111 222 333 printing"""
for l in range (1,10):
for k in range(l):
print(l,end='')
print()
答案 8 :(得分:0)
答案 9 :(得分:0)
我意识到问题已经解决了,但这就是你希望代码看起来像的样子。
count=0
for i in range(10):
for j in range(0, i):
print (count, end='')
count +=1
print()
我认为@Dannnno的答案更短,更直接:)
答案 10 :(得分:0)
count = 1
for i in range(9):
for j in range (-1, i):
print (count, end = '')
count = count + 1
print (" ")
答案 11 :(得分:0)
这可能是您要解决的一行代码
print(''.join([str(x)*x+ '\n' for x in range(1,10)]))
答案 12 :(得分:-1)
其他人提出了一些有趣的解决方案,但这也可以通过简单的观察在数学上完成。请注意:
1 - 1 * 1
22 - 2 * 11
333 - 3 * 111
4444 - 4 * 1111
依旧......
我们可以在每次迭代时都有一个生成1,11,111,1111,...的通用公式。观察:
1 = 9/9 =(10 - 1)/ 9 =(10 ^ 1 - 1)/ 9
11 = 99/9 =(100 - 1)/ 9 =(10 ^ 2 - 1)/ 9
111 = 999/9 =(1000 - 1)/ 9 =(10 ^ 3 - 1)/ 9
...
对于第i次迭代,我们有(10 ^ i - 1)/ 9。
现在它很容易实现。我们将在每次迭代中将i乘以上面的公式。因此总体公式是:
i *(10 ^ i - 1)/ 9 (对于每次迭代)。 这是python代码:
for i in xrange(1,10):
print i*(10**i-1)/9
希望这有帮助。