【发布时间】:2018-04-12 00:46:08
【问题描述】:
对于家庭作业,我正在尝试在二维 Python 列表中创建一个模式,但下面关于右对角线部分的部分(近端)不起作用。我试图将“*”放在 [0][9] 然后 [1][8]、[2][7]...等...[9][0]。我很困惑左对角线有效而右对角线无效?
我的代码也看起来很乱 - 有没有办法将所有 for 循环嵌套在一起,或者有更好的方法来完成这项任务?
非常感谢任何帮助!
#Left, pattern I'm supposed to make. Right, what my code currently does.
*---*---* *---*----
-*--*--*- -*--*----
--*-*-*-- --*-*----
********* *********
--*-*-*-- ----*-*--
-*--*--*- ----*--*-
*---*---* ----*---*
n = 9
#but could be any odd number
lst = [["-" for i in range(n)] for j in range(n)]
#create matrix
for i in range(n): #makes left diagonal
lst[i][i] = "*"
for i in range(n): #middle horizontal section
lst[n//2][i] = "*"
for i in range(n):
lst[i][n//2] = "*" #middle vertical section
#for i in range(n, 0, -1): #one of many attempt at right diagonal section
# lst[i][i]= "*" #tried changing indexes and/or range but neither worked
for i in lst:
print(*i) #pattern output
【问题讨论】:
-
您也可以发布问题陈述吗?
标签: python-3.x list for-loop multidimensional-array range