Python模式
我不知道怎么做,我一直遇到问题 代码如下:Python模式,python,loops,design-patterns,conditional-statements,Python,Loops,Design Patterns,Conditional Statements,我不知道怎么做,我一直遇到问题 代码如下: rows = int(input()) for i in range(1,rows): for j in range(1,i+1): print(" ", end='') for j in range(i, rows+1): print(j, end='') print() for i in range(rows,0,-1): for j in range(1,i+1):
rows = int(input())
for i in range(1,rows):
for j in range(1,i+1):
print(" ", end='')
for j in range(i, rows+1):
print(j, end='')
print()
for i in range(rows,0,-1):
for j in range(1,i+1):
print(" ", end='')
for i in range(i, rows+1):
print(j,end='')
j = j+1
print()
第一列中的空格
如何删除它
这里,rows=6(作为用户的输入)我认为这有点简洁:
lst = [str(i) for i in range(1, rows+1)]
for i in range(rows):
print((" "*i) + "".join(lst[i:]) )
for i in range(rows-2, -1, -1):
print((" "*i) + "".join(lst[i:]) )
其结果是:
12345
2345
345
45
5
45
345
2345
12345
这:
给定任何正行号(f.e.rows=6
),总是从打印至少一个空格开始
您还在计数i
时还弄坏了较低的数字打印循环并打印了j
修正:
对于这种格式,可以使用:
rows = int(input()) # 5
tobeprinted=''.join(map(str,range(1,rows+1)))
for n in range(rows):
print(f"{tobeprinted[n:]:>{rows}}") # right align formatting
for n in range(rows-2 ,-1,-1):
print(f"{tobeprinted[n:]:>{rows}}") # right align formatting
输出:
12345
2345
345
45
5
45
345
2345
12345
对代码进行了一些更改(范围从2开始)。现在可以了。但是,我相信您的代码不是实现这一点的最佳方式
行=int(输入())
对于范围内的i(1行):
对于范围(2,i+1)内的j:
打印(“”,结束=“”)
对于范围内的j(i,行+1):
打印(j,end='')
打印()
对于范围内的i(行,0,-1):
对于范围(2,i+1)内的j:
打印(“”,结束=“”)
对于范围内的j(i,行+1):
打印(j,end='')
j=j+1
打印()
你把你的空间打印循环缩短一次怎么样?我做了,然后又把它搞砸了。
for i in range(1,rows):
for j in range(1,i+1): # prints at least one spacce
print(" ", end='')
rows = int(input())
for i in range(1,rows+1):
for j in range(1,i): # fix here
print(" ", end='')
for k in range(i, rows+1):
print(k, end='')
print()
for i in range(rows-1,0,-1):
for j in range(1,i): # fix here
print(" ", end='')
for i in range(i, rows+1): # some fixing here,
print(i,end='') # you mangled i/j
print()
rows = int(input()) # 5
tobeprinted=''.join(map(str,range(1,rows+1)))
for n in range(rows):
print(f"{tobeprinted[n:]:>{rows}}") # right align formatting
for n in range(rows-2 ,-1,-1):
print(f"{tobeprinted[n:]:>{rows}}") # right align formatting
12345
2345
345
45
5
45
345
2345
12345