鱼C论坛

 找回密码
 立即注册
查看: 2739|回复: 8

[已解决]第29课的课后作业 第二题

[复制链接]
发表于 2016-11-29 14:07:07 | 显示全部楼层 |阅读模式

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

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

x
count = 1
file1 = open('copy1.txt')
file2 = open('copy2.txt')
for each_line1 in file1:
    for each_line2 in file2:
        if each_line1 != each_line2:
            print ('第'+ str(count) +'行不一样')
            count += 1
        else:
            count += 1

代码执行返回的画面

第2行不一样
第3行不一样
第4行不一样
第5行不一样
第6行不一样
第7行不一样
第8行不一样
>>>
这2个文件内容都是一致的 我的代码不对的地方求教
最佳答案
2016-11-29 14:20:23
两层for循环,在each_line2读取到第二行的时候each_line1还是第一行,所以只有每一次行号相同时一样
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 14:20:23 | 显示全部楼层    本楼为最佳答案   
两层for循环,在each_line2读取到第二行的时候each_line1还是第一行,所以只有每一次行号相同时一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-11-29 14:45:11 | 显示全部楼层
同意楼上的说法,像这样两个文件逐行比较的话不能用两个嵌套的for循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-29 16:09:43 | 显示全部楼层
知道了 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-29 17:16:07 | 显示全部楼层
文件逐行比较可以单独把内容拿出来,然后比较
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-29 20:54:07 | 显示全部楼层
本帖最后由 pythonueser 于 2016-11-29 21:00 编辑
ycgzs98789 发表于 2016-11-29 14:20
两层for循环,在each_line2读取到第二行的时候each_line1还是第一行,所以只有每一次行号相同时一样


还有个问题  为什么for循环 只比用each_line1第一行去比对each_line2的所有  剩下的就不必对了啊  我在for each_line1 in file1 加了个print (each_line)
dddd     这是each_line1的第一行
第2行不一样
第3行不一样
第4行不一样
第5行不一样
第6行不一样
第7行不一样
第8行不一样
第9行不一样
第10行不一样
第12行不一样
第13行不一样
第14行不一样
第15行不一样
第16行不一样
第17行不一样
第18行不一样
第19行不一样
dsds         这是each_line1的第二行 ,以下是三 四 。。。行

sdsd

dsdf

sd

d

d

s

dsd
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-29 21:04:36 | 显示全部楼层
这样改一下,用一个循环就没有问题了。
  1. count = 1
  2. file1 = open('copy1.txt')
  3. file2 = open('copy2.txt')
  4. for each_line1, each_line2 in zip(file1, file2):
  5.     if each_line1 != each_line2:
  6.         print ('第'+ str(count) +'行不一样')
  7.         count += 1
  8.     else:
  9.         count += 1
  10. file1.close()
  11. file2.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-30 08:55:31 | 显示全部楼层
pythonueser 发表于 2016-11-29 20:54
还有个问题  为什么for循环 只比用each_line1第一行去比对each_line2的所有  剩下的就不必对了啊  我在 ...

不是不会对比,你的count位置有问题,每次对比都加1.所以对比了,输出还是错的,你看你输出的count,没有1,11我猜也没有21,31等
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-30 15:41:03 | 显示全部楼层
ycgzs98789 发表于 2016-11-30 08:55
不是不会对比,你的count位置有问题,每次对比都加1.所以对比了,输出还是错的,你看你输出的count,没有 ...

第一行和第11行都是一样的 所有不显示
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 05:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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