我正在尝试使用循环创建一个名为shape
的函数,该函数可以打印n
行和n*2
列的形状。
例如:
shape(5)
打印以下内容:
我已经尝试做很多事情,但是还没有成功。到目前为止,我可以提供以下代码。
def shape(n):
tri = ""
for i in range (1, n+1):
tri = tri + (str(i))
print(tri)
i += 1
产生:
1
12
123
1234
12345
任何帮助将不胜感激。
答案 0 :(得分:1)
5........5
54......45
543....345
5432..2345
5432112345
结果:
{{1}}
答案 1 :(得分:1)
PackageC
或:
def shape(n):
for r in range(n):
s = ''
for i in range(n):
s += str(n - i) if i <= r else '.'
print(s, s[::-1], sep='')
或者,不使用反转片:
def shape(n):
s = ''
for i in range(n, 0, -1):
s += str(i)
print(s + '.' * (i - 1) * 2 + s[::-1])
这样:
def shape(n):
s = r = ''
for i in range(n, 0, -1):
s += str(i)
r = str(i) + r
print(s + '.' * (i - 1) * 2 + r)
输出:
shape(5)
答案 2 :(得分:1)
以下是替代方法:
def shape(n):
prefix = ''
total = (2 * n)
for i in range(n, 0, -1):
prefix += str(i)
suffix = ''.join(reversed(prefix))
dots = '.' * (total - (len(prefix) + len(suffix)))
print(prefix + dots + suffix)
shape(5)
输出
5........5
54......45
543....345
5432..2345
5432112345
答案 3 :(得分:0)
使用常规的for循环打印。虽然可以像其他所有人一样使用其他方法来完成。
rows = int(input())
for i in range(0,rows,1):
for j in range(rows,rows-i-1,-1):
print(j,end="")
for j in range(0,2*((rows-i)-1),1):
print(".",end="")
for j in range(rows-i,rows+1,1):
print(j,end="")
print()
输入= 5,输出:
5........5
54......45
543....345
5432..2345
5432112345
答案 4 :(得分:0)
def shape(n):
n= 5
tri = ['.'] * (2*n)
for i in range(0,n):
tri[i]=str(n-i)
tri[2*n-i-1]=str(n-i)
print(*tri, sep='')
5........5
54......45
543....345
5432..2345
5432112345