鱼C论坛

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

小白对旧版29讲python课后习题有疑惑

[复制链接]
发表于 2021-10-19 14:42:06 | 显示全部楼层 |阅读模式
10鱼币
#  编写一个程序,比较用户输入的两个文件,
# 如果不同,显示出所有不同处的行号与第一个不同字符的位置
def file_compare(file1,file2):
    f1 = open(file1)
    f2 = open(file2) #建立两个文件
    count = 0 #统计行数
    differ = []#统计不一样的数量

    for line1 in f1:  #for in是个循环
        line2 = f2.readline()
        count += 1 #这里我觉得是打开f1 f2的文件 但是count= count+1我不明白是什么意思?是初始化吗?因为它也没有被调用
        if line1 != line2:
            differ.append(count) #这里写了个判断 个人理解是如果line1 不等于line2 那么就使用count +=1  也就是说上面是先定义 这里才是运用给了count+1

    f1.close()
    f2.close() #关闭文件 如果不关闭文件python会缓存写入的文件 遇到突发情况可能会丢失
    return differ #是函数所以给它一个返回值

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

differ = file_compare(file1,file2) #将这个函数赋值给differ 这个函数的作用是统计不同的行数(其实是只统计line1的行数吗???

if len(differ) == 0:
    print('两个文件完全一样!') #长度相同 文件一样??但是内容不确定啊
else:
    print('两个文件共有【%d】处不同:' % len(differ))  #这里没看懂了
    for each in differ:
        print('第%d 行不一样' % each)

这是我写的注释 问题      
①for line1 in f1是对f1的什么进行循环?是行数吗?         
②count += 1是不是在判断中才被使用?
③ differ=file_compare(file1,file2) 这个定义的函数是只将f1的行数赋值给了differ吗?或者说differ接受的是函数的什么?
④对于if len(differ)== 0 为什么长度相同文件一样?是指文件行数一样还是内容一样?
⑤if len(differ)==0 中的else没看懂
希望评论区有大佬看一下我的注释并指出我的问题 以及对我的问题解惑qwq
最好还有大佬的注释观摩一下。。qaq..谢谢!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-19 15:11:57 | 显示全部楼层
本帖最后由 suchocolate 于 2021-10-19 15:14 编辑

①for line1 in f1是对f1的什么进行循环?是行数吗?是对文件f1按行循环,一次取一行。我觉得你需要看一下基础操作,再来做题,基础比做题重要。
②count += 1是不是在判断中才被使用?是的,当两个文件的某行不同时,将那一行的编号记录到differ列表里。
③ differ=file_compare(file1,file2) 这个定义的函数是只将f1的行数赋值给了differ吗?或者说differ接受的是函数的什么?是将两个文件的名称传进函数。
④对于if len(differ)== 0 为什么长度相同文件一样?是指文件行数一样还是内容一样?differ列表记录的是两个文件不同的行的记录,如果没有记录,len(differ)就等于0,就说明两个文件相同。
⑤if len(differ)==0 中的else没看懂  如果differ列表不为空,也就是两个文件有区别。还是看看python基础吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-20 16:12:33 | 显示全部楼层
努力学习,谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 15:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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