python - Python空心菱形图案程序优化
问题描述
我一直在探索 Python 并正在制作一个程序来生成如下所示的空心菱形图案:
* * * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * *
这是它的代码。我想知道还有什么其他更好的方法可以降低复杂度(意味着更少的循环)
n = int(input("Enter Size of Pattern: "))
#Upper Traingles
for i in range(n, 0, -1):
#Top Left Triangle
for j in range(1, i+1):
print("*", end =" ")
#Space between top triangles
for j in range(n-i):
print(" ",end=" ")
#Top Right Triangle
for j in range(n, 0, -1):
if(i < j):
print(" ",end=" ")
else:
print("*", end =" ")
print("\n", end="")
#Bottom Triangles
for i in range(-1, n-1):
#Bottom Left Triangle
for j in range(-1, i+1):
print("*", end =" ")
#Space between Bottom Triangles
for j in range((n-2)-i):
print(" ",end=" ")
#Bottom Right Triangle
for j in range(-1, n-1):
if(j < (n-3)-i):
print(" ",end=" ")
else:
print("*", end =" ")
print("\n", end="")
我是 python 新手,所以这个问题有点幼稚。帮助我降低此代码的复杂性。
我也见过很少的程序,但它们不能根据这个解决方案工作。
谢谢你的帮助
解决方案
n = int(input("Enter pattern size: "))
for i in range(n):
print((n-i) * '* ' + (2*i) * ' ' + (2*i) * ' ' + (n-i) * '* ' )
for i in range(n-1, -1, -1):
print((n-i) * '* ' + (2*i) * ' ' + (2*i) * ' ' + (n-i) * '* ')
输出:
* * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * *
推荐阅读
- mariadb - MariaDB:从 SQL Server 的 ODBC CONNECT 引擎中选择插入不断导致“错误代码 1406 数据太长”
- java - 在 Socket.read() 处于活动状态时继续处理主要活动
- linux-kernel - 更改 YOCTO Linux 内核版本
- php - 在 WordPress 中注册分类法后,在博客级别 2 上找不到页面
- excel - 如何从网站中提取我们所有的内部文本?
- azure-devops - 对组织的所有用户进行身份验证
- android - 程序类型已存在:android.support.v4.app.INotificationSideChannel$Stub$Proxy- 无法解决此问题
- gem5 - 如何更改 gem5 ARM SVE 向量长度?
- rust - 如何为具有生命周期成员的结构派生 serde::Deserialize
- python - 将过滤后的 json 值写入 csv