list index out of range 错误
代码如下# -*- coding: utf-8 -*-
"""
Created on Sat Nov 28 20:59:39 2020
@author: Administrator
"""
import random
jihe=[]
def bg():
jihe=[]
f=open('F://aaa.txt','r',encoding='utf-8')
a=f.readlines()
a=list(a)
f.close()
while 1:
s=random.randint(0,len(a))
if s in jihe:
continue
else:
jihe.append(s)
if len(jihe)==10:
break
print(jihe)
asd=str(a]+a]+a]+a]+a]+a]+a]+a]+a]+a])
print(asd)
while 1:
if input('')=='1':
bg()
文件夹有26行
运行两次没问题
三次报错
请问如何解决? 本帖最后由 小伤口 于 2020-11-28 21:56 编辑
索引是从0开始的len()是从1开始计数的。所以索引用len()得减一
{:10_297:} 小甲鱼老师不是常说零基础入门学习python吗 asd=str(a]+a]+a]+a]+a]+a]+a]+a]+a]+a])
错误在这。。。
列表jihe成员是够的,但是列表a不够啊
例如a = ['1','2','3']
len(a)就是3了,random.randint(0,len(a)),如果出现3
那你a就超界了啊
=====>正确做法,把第17行修改
s=random.randint(0,len(a)-1) 本帖最后由 jackz007 于 2020-11-28 23:46 编辑
楼主可以试试这个代码
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 28 20:59:39 2020
@author: Administrator
"""
import random
def bg():
jihe = []
f=open('F://aaa.txt','r',encoding='utf-8')
a = list(f)
f . close()
k = 0
while k < 10:
s = random . randint(0 , len(a) - 1) # 楼主的代码问题出在此处
if not s in jihe:
jihe.append(s)
k += 1
print(jihe)
asd = "" . join(a . strip() for x in jihe)
print(asd)
while 1:
if input('')=='1':
bg()
页:
[1]