python - 为 n 行打印以下模式。例如。N = 5 1 1 12 21 123 321 1234 4321 1234554321
问题描述
我正在做这个问题,但我写的代码给出了相同的输出,但间距不同。
这是我写的:
n = int(input())
for i in range(1,n+1):
for j in range(1,i+1):
print(j,end='')
for j in range(0,2*n-2*i):
print(" ",end='')
for j in range(i,0,-1):
print(j,end='')
输出似乎与实际预期的有所不同。
我的输出:
1 112 21123 3211234 43211234554321
预期输出:
1 1
12 21
123 321
1234 4321
1234554321
正如我所看到的,在第一个 for 循环的每次迭代中,我们都不会跳入新行。为什么会这样?谢谢您的帮助。
解决方案
您缺少在外部 for 循环末尾打印的换行符。
具有列表理解的替代解决方案:
>>> n=5
>>> for i in range(1,n):
... print(
... ''.join([str(x) for x in range(1,i+1)])
... + ' '*2*(n-i-1)
... + ''.join([str(x) for x in range(i,0,-1)])
... )
...
1 1
12 21
123 321
12344321
>>>
推荐阅读
- c++ - c ++ ostream输出与setw
- javascript - 返回 Vue 数据网格中的列 a 一个可点击的按钮
- c# - 如何在 Xamarin 中禁用单击时启用 ListView 的滚动?
- ios - 如何使用 ARKit 将 SCNScene 与物理表对齐?
- c++ - 无论我尝试什么,GDB 都无法在我的 Mac (Mojave) 上运行。常见错误,但我没有找到解决方案
- r - 在函数调用中用变量替换字符串参数
- c# - 将数组内存文件 C++ 共享到 C#
- android - React Native 和 build.gradle
- c# - 数据库模型名称更改和表更改 Visual Studio 仍在查找旧表名
- docker - 在没有 root 访问权限的服务器上安装 Docker 二进制文件