我必须回答这个问题:编写一个Python函数三角形(n),它取一个整数参数n并打印n层的数字三角形,如下例所示。测试你的答案:1,2,5,9和14。
triangle(7)
1
12
123
1234
12345
123456
1234567
triangle(14)
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
除了使用列表之外,我无法弄清楚如何做到这一点。
def triangle(n):
line = [1]
count = 2
print(line)
for i in range(1,n):
line.append(count)
count += 1
print(line)
if len(line) == 9:
line.append(0)
print(line)
count = 1
triangle(5)
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
但是列表会像这样打印出来。而且我很难用0来让它重新开始计数回到123等等。
答案 0 :(得分:1)
一种可能性,可能是最简单的:
逐个打印数字并使用print <value>,
(注意逗号)以避免在每个print
后换行。最后,没有参数的print
只会产生换行符。
这样,你甚至不必建立一个序列。
当print
是函数时,语法相应地为print(<value>,end='')
和print('')
。
要循环数字,请使用模运算(%
)
答案 1 :(得分:0)
虽然可以有更优雅的代码:
def tri(n):
start = 1
while (n >= start):
foo = ""
for i in range(1, start+1):
foo += str(i%10)
print foo
start += 1
答案 2 :(得分:0)
几乎是一个单行:
>>> import string
>>> def number_triangle(n):
... print u''.join(string.digits[(i+1) % 10] for i in range(n))
...
>>> for i in range(15):
... number_triangle(i)
...
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
答案 3 :(得分:0)
这是我的尝试
def triangle(n):
s = ""
for i in xrange(0,n):
s += "{}".format((i+1)%10)
print s
triangle(15)
输出:
1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012
1234567890123
12345678901234
123456789012345