python - 创建一个打印雪花的二维数组 PYTHON

标签 python python-3.x arraylist pycharm

我正在尝试创建一段代码,该代码将接受奇数作为输入,并使用此 n * n 图形创建雪花

Enter Integer: 5
* . * . *
. * * * .
* * * * *
. * * * .
* . * . *

我很确定我走在正确的道路上

n = int(input("Enter odd input: "))
while n % 2 == 0:
  print("Invalid Input.  Input must be odd")
  n = int(input("Enter odd input: "))
snowflake = [["."] * n for i in range(n)]
middle = int((n-1) / 2)
for i in range(n):
  snowflake[i][2] = "*"
  snowflake[2][i] = "*"
  snowflake[i][i] = "*"
  diagnol = 5-i
  snowflake[i][diagnol] = "*"
for i in snowflake:
  for j in i:
    print(j, end=' ')
  print()
print()

但我不断收到此错误

snowflake[i][diagnol] = "*"
IndexError: list assignment index out of range

有人可以帮助编辑我的代码或给我一些提示吗?(这是一项家庭作业)

最佳答案

我决定不修复您的算法,而是作为提供我自己的算法的工作示例:

Try it online!

n = 9
a = [['.'] * n for i in range(n)]
for i in range(n):
    a[n // 2][i], a[i][n // 2], a[i][i], a[i][n - 1 - i] = ['*'] * 4
print('\n'.join([''.join(a[i]) for i in range(n)]))

输出:

*...*...*
.*..*..*.
..*.*.*..
...***...
*********
...***...
..*.*.*..
.*..*..*.
*...*...*

关于python - 创建一个打印雪花的二维数组 PYTHON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66820849/

相关文章:

python - 如何在超时的情况下动态导入不安全的 Python 模块?

java - mySQL Java 数据库建模

python - 使用 twython 在 django 本地服务器上测试 twitter 应用程序

python - 在 Python 中过滤列表

python - 如何从 3 类数据帧的前 2 类中删除 1 行?

python - 如何创建 4 个标题,使其成为 CSV 文件中 pandas 数据框中 16 列的标题行?

python - PyQt5 关闭事件方法

python-3.x - tensorflow 中的batch_size?理解概念

java - ArrayList<List<>>变量在Java中通过引用复制值?

java - 连接表并将结果保存在 ArrayList-Attribute 中