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..谢谢!
我来回答