鱼C论坛

 找回密码
 立即注册
查看: 2315|回复: 5

总是被一些边边角角的细节卡住

[复制链接]
发表于 2017-1-11 13:01:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 cc9200 于 2017-1-11 13:46 编辑
  1. file1_name=input("请输入需要比较的第一个文件名:")
  2. file2_name=input("请输入需要比较的第二个文件名:")
  3. def getline(file,i):
  4.     file.seek(0,0)   ##确保文件指针在最开头
  5.     line=list(file)[i]       ##取得第I行的字符串
  6.     return (line)
  7. def file_match(file1_name,file2_name):
  8.     file1=open(file1_name,'r')
  9.     file2=open(file2_name,'r')
  10.     i=0
  11.     for each in range(100):   ##本来写的是eachline in file1,结果只执行了一次
  12.         if getline(file1,i)!=getline(file2,i):           
  13.             print("第 "+str(i)+" 行不同")
  14.             print(getline(file1,i))
  15.             print(getline(file2,i))
  16.             print('\n')
  17.             i+=1
  18.         print(i)     ##为了检查到底执行了几次循环
  19.     print("对比完成")
  20.     file1.close()
  21.     file2.close()
  22. file_match(file1_name,file2_name)
复制代码


结果如下



  1. >>>
  2. RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/file_match.py
  3. 请输入需要比较的第一个文件名:新建文本文档.txt
  4. 请输入需要比较的第一个文件名:新建文本文档 (2).txt
  5. 第 0 行不同
  6. 第一段对话!!第一对话!!第一段对话!!第一段对话!!第一段对话!!

  7. 第一段对话!!第一段对话!!第一段对话!!第一段对话!!第一段对话!!



  8. 1
  9. 对比完成
  10. >>>
复制代码


for循环那里,改成了each in range(100),为毛还是只执行了一次?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-11 13:04:55 | 显示全部楼层
i=0
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-11 13:17:54 | 显示全部楼层

那不是在for循环之前吗?后面影响吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-11 13:46:21 | 显示全部楼层
来个人啊,还是搞不清楚哪里错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-11 15:01:11 | 显示全部楼层
cc9200 发表于 2017-1-11 13:46
来个人啊,还是搞不清楚哪里错了

你为啥把i+=1放在if getline(file1,i)!=getline(file2,i): 里面?
这样只有当2行不一样时i才会自加1,如果2行相同,i永远都不会增加,这样程序永远只会在这行循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-1-11 15:50:31 | 显示全部楼层
i += 1语句的缩进有问题啊。
我猜你两个文件的第二行肯定是相同的,所以第二次循环根本没有跳到if语句块当中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 23:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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