鱼C论坛

 找回密码
 立即注册
查看: 2378|回复: 6

关于第29讲的课后习题的疑问

[复制链接]
发表于 2017-2-17 17:26:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 邵小宝 于 2017-2-27 20:07 编辑

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)


这段代码中
differ = file_compare(file1,file2)
这句代码怎么理解呢?
为什么differ要初始化为file_compare(file1,file2)
望解惑迷津!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 18:40:54 | 显示全部楼层
其实那段代码就是为了方便调用
因为在下面求differ的len时,你不可能用 file_compare(file1,file2) 调用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 19:47:25 | 显示全部楼层
新手·ing 发表于 2017-2-17 18:40
其实那段代码就是为了方便调用
因为在下面求differ的len时,你不可能用 file_compare(file1,file2) 调用

为什么file_compare函数求出来的值就是differ呢?因为那个return语句吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-18 13:11:32 | 显示全部楼层
不是求出来的值
是赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-25 17:46:58 | 显示全部楼层
新手·ing 发表于 2017-2-18 13:11
不是求出来的值
是赋值

好的,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-25 18:29:25 | 显示全部楼层
return differ 是返回自定函数内的一个differ列表

这个differ列表记录这不同地方的行数,譬如‘第三行、第五行’,differ就是[3,5]

如果列表是个空列表,len(differ)就是为0,说明文件一模一样;

如果列表不是一个空列表,就输出里面的数字为第几行不同;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-26 11:03:34 | 显示全部楼层
32269100 发表于 2017-2-25 18:29
return differ 是返回自定函数内的一个differ列表

这个differ列表记录这不同地方的行数,譬如‘第三行、 ...

谢谢,您解释的很清楚,明白了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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