鱼C论坛

 找回密码
 立即注册
查看: 451|回复: 3

python学习第29讲课后作业中第一问

[复制链接]
发表于 2018-9-26 16:26:55 | 显示全部楼层 |阅读模式

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

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

x
大家好,python学习第29讲课后作业中第一问:
1. 编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,程序实现如图。  

我的代码中的continue是不是用的有问题?因为不管几行有不同,程序都会显示所有的行都不一样。

file_name1 = input('input the first file:')
file_name2 = input('input the second file:')
f1 = open(file_name1, 'r')
f2 = open(file_name2, 'r')
f1.seek(0)
f2.seek(0)
count=0
list1=[]
for i in range(len(list(f1))):
         if f1.readline() == f2.readline():
             continue
         else:
             count+=1
             list1.append(i+1)
             print(i)
print('there are %d differences' %count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-26 16:34:51 | 显示全部楼层

回帖奖励 +2 鱼币

文件指针只能指一个
你这样一个读了,另一个就是空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-26 17:10:15 | 显示全部楼层
塔利班 发表于 2018-9-26 16:34
文件指针只能指一个
你这样一个读了,另一个就是空

您好,我试了下,好像指针没有问题,是因为我在 i in range(len(listf1))中对f1进行了list操作,导致f1的指针又跑到最后去了。
如果改成
length = len(list(f1))
f1.seek(0)
f2.seek(0)
for i in range(length):

就能正确显示不同的行数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 17:15:17 | 显示全部楼层
一团守卫饭 发表于 2018-9-26 17:10
您好,我试了下,好像指针没有问题,是因为我在 i in range(len(listf1))中对f1进行了list操作,导致f1的 ...

嗯,对= =,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 10:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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