python - 如何在python中修复星号八边形的代码?
问题描述
问题是我的代码运行但它没有创建八边形。星星的形状类似于八边形,但我需要创建规则形状八边形的代码,我对代码有什么问题感到困惑。
length = int(input("What is the length of one side? "))
for i in range(length):
print(' ' * (length - i-1) + '*' * (length + i*2))
for i in range(length-1):
print('*' * ((length * 2)))
for i in range(length):
print(' ' * (i+1) + '*' * ((length-i)*2))
当用户输入数字时,没有错误消息,但代码不会产生所需的八边形形状。
解决方案
这应该工作
length = int(input("What is the length of one side? "))
for i in range(length - 1):
print(' ' * (length - i-1) + '*' * (length + i*2))
for i in range(length):
print('*' * ((length + 2 * (length - 1))))
for i in range(length - 2, -1, -1):
print(' ' * (length - i-1) + '*' * (length + i*2))
第二步的公式是错误的,对于最后一部分,您可以重用第一部分的逻辑但向后运行,希望这对您有帮助:)
编辑 我意识到垂直边的数量与长度不匹配,所以这将是对该代码的更正,但对于长度为 1 的情况,它显示一个点,如果你考虑一下可能有这样的意义,因为对于这个明显的解决方案
*
***
*
对角线没有边,所以我认为这个编辑过的版本更好,案例 1 的单个星号是有意义的。
推荐阅读
- java - Flipkart.com 价格滑块 xpath
- hadoop - 设置 Hadoop KMS
- android - 未观察到设置 LiveData 的多个并发调用中的一些
- sql-server - 通过配置文件 (.ini) 安装 SQL Server 2017
- c++ - 我不能动态声明向量数组
- java - 未能执行目标 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec
- python - Seaborn distplot 概率不是频率
- azure - 如何使用控制台应用程序通过 Microsoft Graph API 调用 Microsoft Teams OnlineMeeting 端点?
- git - 如何获取历史记录中头部和提交之间的提交计数?
- c++ - 如何将 Opencv VideoWriter 与 GStreamer 一起使用?