python - 我该如何解决这个错误,它说列表索引超出范围?
问题描述
我想知道为什么这个错误一直显示。我尽我所能。我只想用星号打印我的名字。你能帮我么?PS。我是初学者。错误是第 55 行,在:
print(print_A[i][j], end=" ")
IndexError: list index out of range
这是我的完整代码
str1 = "MARC"
print_M = [[" " for i in range(7)] for j in range(7)]
print_A = [[" " for i in range(7)] for j in range(5)]
print_R = [[" " for i in range(7)] for j in range(5)]
print_C = [[" " for i in range(7)] for j in range(5)]
# code for M
for row in range(7):
for col in range(7):
if (col == 0 or col == 6) or (row == col and col < 4) or (row +
col == 6 and col > 3):
print("* ", end="")
else:
print(" ", end="")
print()
# for A
str1 = ""
for row in range(7):
for col in range(5):
if ((col == 0 or col == 4) and row != 0) or ((row == 0 or row ==
3) and (col > 0 and col < 4)):
str1 = str1 + "*"
else:
str1 = str1 + " "
str1 = str1 + "\n"
print(str1)
# for R
for row in range(7):
for col in range(5):
if col == 0 or (col == 4 and (row != 0 and row != 3)) or ((row ==
0 or row == 3) and (0 < col < 4)):
print("*", end="")
else:
print(end=" ")
print()
# for C
for row in range(7):
for col in range(5):
if (col == 0) or ((row == 0 or row == 6) and (col > 0)):
print("*", end="")
else:
print(end="")
print()
for i in range(7):
for j in range(7):
print(print_M[i][j], end=" ")
print(end=" ")
for j in range(5):
print(print_A[i][j], end=" ")
print(end=" ")
for j in range(5):
print(print_R[i][j], end=" ")
print(end=" ")
for j in range(5):
print(print_C[i][j], end=" ")
print()
解决方案
这将创建一个包含 5 个元素的列表,每个元素都是一个 7 项列表(实际上每次都相同)。
print_A = [[" " for i in range(7)] for j in range(5)]
你可以做(最多):
print_A[4][6]
但这是错误的形状:
print_A[6][4]
这里(假设您想要的缩进,因为您发布的内容无效)是您循环它的方式:
for i in range(7):
for j in range(5):
print(print_A[i][j], end=" ")
因此,您正在尝试查找超出此(矩形)形状范围的索引 -当为 6print_A[i]
时失败(因此未达到查找)。i
[j]
你可能的意思是:
for i in range(5):
for j in range(7):
print(print_A[i][j], end=" ")
(或交换i
和j
循环,取决于您打算为每个内部和外部循环使用哪个循环变量)。
同样对于print_R
和print_C
。print_M
没关系,因为它是方形的。
推荐阅读
- cordova - 如何在cordova phonegap中为Windows应用程序设置固定窗口大小
- python - 从网页中的表格获取链接
- python - 如何强制 pandas .loc 返回系列
- javascript - React Redux 操作未调度但请求成功
- wso2 - 在 DAS 中部署 ESB 分析车
- angular - Angular PWA 离线数据处理
- c++ - 我包含哪个标头(cstddef、cstdio、cstdlib 等)以获得 size_t 的定义是否重要?
- docker - Docker 错误:没有这样的容器:friendlyhello
- php - 检测虚拟机 ovf 中所做的更改
- python - 如何便宜地托管一个 Django 网站?