鱼C论坛

 找回密码
 立即注册
查看: 2189|回复: 1

[已解决]第029课课后题

[复制链接]
发表于 2016-12-5 16:59:52 | 显示全部楼层 |阅读模式
1鱼币
def file_compare(file1, file2):
    f1 = open(file1)
    f2 = open(file2)
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量

    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)

    f1.close()
    f2.close()
    return differ

file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')

differ = file_compare(file1, file2)

if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:' % len(differ))
    for each in differ:
        print('第 %d 行不一样' % each)
求大神逐步解答看不懂
最佳答案
2016-12-5 16:59:53
本帖最后由 什么鬼… 于 2017-1-7 20:22 编辑

哈,刚刚做的这道题
首先他是定义了一个函数,函数参量为两个文件的名称
刚开始   
    f1 = open(file1)
    f2 = open(file2)
即f1打开第一个文件
   f2打开第二个文件
for line1 in f1:                     然后一行一行得取出f1中的内容
line2 = f2.readline()            将f2中的值字符串一行行给line2
count用来记录函数,所以每次循环都加一
differ是一个用来记录不同的行数的列表
当有某一行中line1与line2不同的话
就把对应的count(即不同的那一行)加到列表里面
然后close掉f1,f2
返回含有内容不同的行数的列表
这就是这个函数的作用


后面通过input输入文件名
通过前面定义的函数,得到一个列表
然后

如果列表长度为0的话
就是说没有一行是不一样的
则打印两个文件完全一样

否则
先用len(differ)的长度输出不同的行数的总数
然后用for语句一项项输出differ里面的值
也就是把不同的行数输出

然后就完了

最佳答案

查看完整内容

哈,刚刚做的这道题 首先他是定义了一个函数,函数参量为两个文件的名称 刚开始 f1 = open(file1) f2 = open(file2) 即f1打开第一个文件 f2打开第二个文件 for line1 in f1: 然后一行一行得取出f1中的内容 line2 = f2.readline() 将f2中的值字符串一行行给line2 count用来记录函数,所以每次循环都加一 differ是一个用来记录不同的行数的列表 当有某一行中line1与line2 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-5 16:59:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 什么鬼… 于 2017-1-7 20:22 编辑

哈,刚刚做的这道题
首先他是定义了一个函数,函数参量为两个文件的名称
刚开始   
    f1 = open(file1)
    f2 = open(file2)
即f1打开第一个文件
   f2打开第二个文件
for line1 in f1:                     然后一行一行得取出f1中的内容
line2 = f2.readline()            将f2中的值字符串一行行给line2
count用来记录函数,所以每次循环都加一
differ是一个用来记录不同的行数的列表
当有某一行中line1与line2不同的话
就把对应的count(即不同的那一行)加到列表里面
然后close掉f1,f2
返回含有内容不同的行数的列表
这就是这个函数的作用


后面通过input输入文件名
通过前面定义的函数,得到一个列表
然后

如果列表长度为0的话
就是说没有一行是不一样的
则打印两个文件完全一样

否则
先用len(differ)的长度输出不同的行数的总数
然后用for语句一项项输出differ里面的值
也就是把不同的行数输出

然后就完了

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-11 03:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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