lfc990426 发表于 2021-11-11 18:55:52

python29作业

本帖最后由 lfc990426 于 2021-11-11 18:58 编辑

def file_compare(file1,file2):
   f1 = open(file1)
   f2 = open(file2)
   count = 0   #统计次数
   differ = [] #统计不一样的数量
   
   for line1 in f1:    #这里的line1 是内置函数(例如readline)吗?可以直接用?
          line2 = f2.readline()
          count += 1
          if line1 != line2:
               differ.append(count)
   f1.close()
   f2.close()
   return differ

file1 =input('请输入需要比较的文件1的名字:')
file2 =input('请输入需要比较的文件2的名字:')

differ = file_compare(file1,file2)#这里是不是让differ 更新到最新值

if len(differ) == 0:
   print('两个文件完全一样!')
else:
   print('两个文件共有【%d】处不同:'%len(differ))
   for each in differ :
          print('第%d行不一样'%each)



问题标注了 谢谢大佬们的解答

lfc990426 发表于 2021-11-11 18:56:30

def file_compare(file1,file2):
   f1 = open(file1)
   f2 = open(file2)
   count = 0   #统计次数
   differ = [] #统计不一样的数量
   
   for line1 in f1:#这里的line1 是内置函数(例如readline)吗?可以直接用?
          line2 = f2.readline()
          count += 1
          if line1 != line2:
               differ.append(count)
   f1.close()
   f2.close()
   return differ

file1 =input('请输入需要比较的文件1的名字:')
file2 =input('请输入需要比较的文件2的名字:')

differ = file_compare(file1,file2)#这里是不是让differ 更新到最新值

if len(differ) == 0:
   print('两个文件完全一样!')
else:
   print('两个文件共有【%d】处不同:'%len(differ))
   for each in differ :
          print('第%d行不一样'%each)

suchocolate 发表于 2021-11-11 19:07:40

for line1 in f1 : 不是内置函数,就是普通的for循环。循环f1这个文件的每一行。
differ = file_compare(file1,file2)这个differ只是存储两文件比对的结果,没有更新一说。只是这个differ和上面函数里的differ重名,让你误以为有更新。内外变量同名容易引起歧异,建议不要用同名变量。

zhsguitar 发表于 2021-11-11 20:38:05

插个眼 学习一下{:10_257:}

lfc990426 发表于 2021-11-11 20:42:09

suchocolate 发表于 2021-11-11 19:07
for line1 in f1 : 不是内置函数,就是普通的for循环。循环f1这个文件的每一行。
differ = file_compare(f ...

谢谢大佬~~

hornwong 发表于 2021-11-11 22:24:09

{:5_95:}

阿萨德按时 发表于 2021-11-12 08:53:50

{:10_269:}

心驰神往 发表于 2021-11-12 11:24:51

yubi

心驰神往 发表于 2021-11-12 11:29:19

心驰神往 发表于 2021-11-12 11:24
yubi

{:10_258:}

荒野离人 发表于 2021-11-12 14:17:52

学些一下
页: [1]
查看完整版本: python29作业