【发布时间】:2021-10-10 19:29:03
【问题描述】:
我几乎完成了一个项目,如果没有“max = ring[0]”行的 IndexError,我似乎无法通过本节。如果有帮助,变量 ring 和 player 是常量变量,标记为 player = [] 和 ring = []。这是最新的 Python 3 版本。谢谢!
def main():
player = []
ring = []
menu()
addNBA(player, ring)
rankNBA(player, ring)
# yes or no input request to continue updating ranking
def addNBA(player, ring):
choice = "y"
while choice.lower() != 'y' and choice.lower() != "n":
print("Invalid. Enter 'y' or 'n'.")
playerName = playerEntry()
player.append(playerName)
nbaRing = ringEntry()
ring.append(nbaRing)
choice = input("Do you want to continue updating the ranking? Enter 'y' or 'n'. ")
# sorts list of players and rings from lowest to highest amount of rings
def rankNBA(player, ring):
max = ring[0]
bestPlayer = player[0]
min = ring[0]
worsePlayer = player[0]
print(player)
for i in range(len(ring)):
print(ring[i])
if max < ring[i]:
max = ring[i]
bestPlayer = player[i]
if min > ring[i]:
min = ring[i]
worsePlayer = player[i]
【问题讨论】:
-
你传递给这个方法的数据是什么?如果您在
ring[0]上收到 IndexError,则这意味着您的环数据是一个空列表。 -
我是一名新的 CS 学生,如果我没有正确回答这个问题,请原谅我。环作为整数传递,玩家作为字符串传递。
-
玩家和戒指都必须是列表,如果您希望通过索引访问它们。如果你这样做,它似乎对我有用。
RankNBA(['a', 'b', 'c'], [0, 1, 2]) -
不要将代码放入 cmets - 编辑您的问题并将其粘贴到那里。还要给出您输入的确切数据,以及您看到的堆栈跟踪的确切错误。您粘贴的代码在正确的输入下工作正常 - 所以它一定是错误的输入。
-
你的
while循环永远不会是true所以addNBA运行并返回而不做任何事情,然后rankNBA用空列表调用。
标签: python python-3.x index-error