如何使用 python 中的用户输入创建数字三角形?
How to create a numeric triangle with user input in python?
我必须回答这个问题:编写一个 Python 函数 triangle(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 等
一种可能,可能是最简单的:
一个一个打印数字并使用print <value>,
(注意逗号)以避免在每个print
之后换行。最后,不带参数的 print
将只产生一个换行符。
这样,您甚至不必建立序列。
当print
为函数时,语法为print(<value>,end='')
和print('')
,对应。
要循环数字,使用模运算(%
)
虽然可以有更优雅的代码:
def tri(n):
start = 1
while (n >= start):
foo = ""
for i in range(1, start+1):
foo += str(i%10)
print foo
start += 1
几乎是一行:
>>> 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
这是我的尝试
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
我必须回答这个问题:编写一个 Python 函数 triangle(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 等
一种可能,可能是最简单的:
一个一个打印数字并使用
print <value>,
(注意逗号)以避免在每个print
之后换行。最后,不带参数的print
将只产生一个换行符。这样,您甚至不必建立序列。
当
print
为函数时,语法为print(<value>,end='')
和print('')
,对应。要循环数字,使用模运算(
%
)
虽然可以有更优雅的代码:
def tri(n):
start = 1
while (n >= start):
foo = ""
for i in range(1, start+1):
foo += str(i%10)
print foo
start += 1
几乎是一行:
>>> 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
这是我的尝试
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