鱼C论坛

 找回密码
 立即注册
查看: 3293|回复: 7

[已解决]第29讲第1题文本比较,求助错在哪里

[复制链接]
发表于 2016-8-18 16:09:27 | 显示全部楼层 |阅读模式
4鱼币
  1. def file_compare(file1,file2):
  2.     f1=open(file1)
  3.     f2=open(file2)
  4.     count=0
  5.     differ=0

  6.     for each_line in file1:
  7.         line2=f2.readline()
  8.         count+=1
  9.         if each_line!=line2:
  10.             differ+=1
  11.             print("第 %d 行不一样" % count)

  12.     print("共有 %d 处不一样" % differ)

  13.     f1.close()
  14.     f2.close()
  15.     return

  16. file1=input("请输入需要比较的第一个文件:")
  17. file2=input("请输入需要比较的另一个文件:")
  18. file_compare(file1,file2)

复制代码
最佳答案
2016-8-18 16:09:28
1. 识别行末尾有无‘ /n‘ 字符
2. 是不是两个文件的行数不一样? 按照楼主这种写法,读的行数就是 for 循环 开头的文件行数。 所以如果 file1 有4 行,file 2有五行,而file1 和file 2的前四行都一样, 那以file1 做循环变量,输出就是“没有不同行“。 如果以 file2 为循环变量,那输出就是“有一行不同“。

最佳答案

查看完整内容

1. 识别行末尾有无‘ /n‘ 字符 2. 是不是两个文件的行数不一样? 按照楼主这种写法,读的行数就是 for 循环 开头的文件行数。 所以如果 file1 有4 行,file 2有五行,而file1 和file 2的前四行都一样, 那以file1 做循环变量,输出就是“没有不同行“。 如果以 file2 为循环变量,那输出就是“有一行不同“。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-18 16:09:28 | 显示全部楼层    本楼为最佳答案   
1. 识别行末尾有无‘ /n‘ 字符
2. 是不是两个文件的行数不一样? 按照楼主这种写法,读的行数就是 for 循环 开头的文件行数。 所以如果 file1 有4 行,file 2有五行,而file1 和file 2的前四行都一样, 那以file1 做循环变量,输出就是“没有不同行“。 如果以 file2 为循环变量,那输出就是“有一行不同“。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-18 22:41:17 | 显示全部楼层
啊我已经知道了,应该是 for each_line in f2 而不是file2,但是还是有以下几个问题;
1、系统是怎么识别each_line就代表一行的?
2、为什么写成file2结果就是有9行不一样呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-22 16:04:05 | 显示全部楼层

1. 识别行末尾有无‘ /n‘ 字符
2. 是不是两个文件的行数不一样? 按照楼主这种写法,读的行数就是 for 循环 开头的文件行数。 所以如果 file1 有4 行,file 2有五行,而file1 和file 2的前四行都一样, 那以file1 做循环变量,输出就是“没有不同行“。 如果以 file2 为循环变量,那输出就是“有一行不同“。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-22 16:46:03 | 显示全部楼层
蟹壳壳 发表于 2016-8-18 22:41
啊我已经知道了,应该是 for each_line in f2 而不是file2,但是还是有以下几个问题;
1、系统是怎么识别ea ...

for循环是迭代查询,
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-23 21:19:10 | 显示全部楼层
亲测应该是for each_line in f1:
而且打开的时候用f2=open(file2,'r',encoding='utf-8') ,不然执行到line2=f2.readline()会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-8 22:15:40 | 显示全部楼层
赞,我还是渣渣,刚学也有好多问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-21 17:14:17 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 06:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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