我的列表索引有什么问题?指出索引错误

What is wrong with my list index? index error is stated

numbers = []

def easy_mode():
    with open("aa.txt","r") as f:
        for i in range(9):
            numbers.append(f.readline().strip())
        print(numbers)

 from random import randint

 for i in range(9):
    print(numbers[randint(0,8)])

每当我将其处理成 python 时,程序会打印出此错误:

Traceback (most recent call last):
  File "N:\Yr 10 CP\Practice\python\Gaming\THE ACTUAL THING.py", line 12, in <module>
    print(numbers[randint(0,8)])
IndexError: list index out of range

有人可以帮助我并尝试为我修复我的代码,谢谢

阿尔贝托

这里似乎有多个错误。一方面,您假设在您的第一个循环中该文件至少有 9 行,这可能不是真的。更重要的是,你永远不会调用 easy_mode,所以 numbers 在你的第二个循环

中实际上是空的

这个 Tab 键很奇怪,所以我不完全确定函数内部是什么,但我认为

from random import randint

for i in range(9):
    print(numbers[randint(0,8)])

在函数之外,我猜你没有调用函数,只是加载了脚本,它开始执行跳过函数,最后 numbers变量为空,因此任何索引都超出范围。

编辑: 所以代码的工作版本应该是这样的(假设文件确实包含至少 9 行):

numbers = []

def easy_mode():
    with open("aa.txt","r") as f:
        for i in range(9):
            numbers.append(f.readline().strip())
        print(numbers)

from random import randint

easy_mode()
for i in range(9):
    print(numbers[randint(0,8)])