python - 如何使用 Python 打印此动态模式?
问题描述
要求用户输入一个大于或等于 5 (>=5) 的“奇数”数字,然后编写一段代码来显示一个使用星号划分为四个三角形的正方形。
请参阅下面的示例以了解模式的行为:例如,对于数字 5,模式是:
*****
** **
* * *
** **
*****
例如对于数字 9,模式是:
*********
** **
* * * *
* * * *
* * *
* * * *
* * * *
** **
*********
我尝试了许多代码组合但徒劳无功。我正在使用 Python 3.7.3 版本。
n = int(input("Please enter an odd number greater than or equal to 5: "))
while(n < 5 or n%2==0):
print("Invalid")
break
else:
for a in range(n):
if(a==0 or a==n-1):
print("*"*n,end='')
else:
i=1
j=n-1
for row in range(n-1):
for col in range(n-1):
if(row==i and col==j):
print("*",end="")
i=i+1
j=j-1
elif row==col:
print("*",end="")
else:
print(end="")
print()
我显然在这里做错了什么并且没有得到想要的输出
解决方案
你可以这样做:
n = int(input("Please enter an odd number greater than or equal to 5: "))
while(n < 5 or n%2==0):
print("Invalid")
n = int(input("Please enter an odd number greater than or equal to 5: "))
x = ['*'*n] + ['*'+' '*i+'*'+' '*(n-4-i*2)+'*'+' '*i+'*' for i in range(int((n-3)/2))]
print('\n'.join(x + ['*'+' '*int((n-3)/2)+'*'+' '*int((n-3)/2)+'*'] + x[::-1]))
推荐阅读
- javascript - 如何获取通过在 forEach 中添加的单击处理程序单击的元素?
- php - 如何在php中下载文件
- java - 为什么我在我的 java 单元测试中得到 NoSuchMethodError 但 IDE 没有显示类路径问题?
- d3.js - d3.zoom 意外行为:我错过了什么?
- javascript - 是否有任何新方法可以在电子邮件模板中添加自定义字体系列?
- apache-spark - Py4JJavaError:调用 o57.sql 时发生错误。:org.apache.spark.SparkException:作业中止
- php - 使用 ajax 和 jquery 对 sql 行进行即时复选框更新
- flutter - Flutter 如何使用 BottomNavigationBar 管理单独的导航堆栈?
- android - 将文件写入外部存储,以便用户可以从文件存储访问
- php - 是否有 PHPDoc 标准来描述通过引用传递的函数属性?