我的列表索引有什么问题?指出索引错误
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)])
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)])