鱼C论坛

 找回密码
 立即注册
查看: 1912|回复: 2

0基础Python_029_01习题

[复制链接]
发表于 2021-3-23 11:21:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

我的:
file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')

f1 = open('E:\\2021 Tasks\\01_Python\\02_习题\\029\\' + file1 )
f2 = open('E:\\2021 Tasks\\01_Python\\02_习题\\029\\' + file2 )

k = 0

for i in range(len(f1.readlines())):
    f1.close()
    f1 = open('E:\\2021 Tasks\\01_Python\\02_习题\\029\\' + file1 )
    if f1.readlines()[i] != f2.readlines()[i]:
        k += 1
        print("两个文件共有【", k ,"】处不同:")
        print("第", i ,"行不一样")

报错:
  File "e:/2021 Tasks/01_Python/02_习题/029_01.py", line 12, in <module>
    if f1.readlines()[i] != f2.readlines()[i]:
IndexError: list index out of range


不太理解为啥报错:

f1.readlines()返回一个列表
f1.readlines()[ i ] 返回列表中的第 i 个元素

用 if f1.readlines()[i] != f2.readlines()[i]: 做判断,然后返回需要的结果,不是挺好嘛?

为啥实际上f1.readlines()[ i ]好像是按照字符串来返回的?
0.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-23 11:34:21 From FishC Mobile | 显示全部楼层
索引是从0开始索引的
len(f1.readlines())是一开始计数的
报错也是列表索引超出范围
所以试试吧
for i in range(len(f1.readlines())):
改成
for i in range(len(f1.readlines())减1):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-23 12:21:36 | 显示全部楼层
为啥f1要先colse?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 02:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表