鱼C论坛

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

[已解决]第22讲的课后作业有个疑问

[复制链接]
发表于 2017-3-16 15:03:49 | 显示全部楼层 |阅读模式

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

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

x
QQ图片20170316150042.png
题目如图
答案是这样的:
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)

问题就是
for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)
这个for 循环里的line1 为什么直接是一行文字 不应该是一个字吗?
最佳答案
2017-3-16 17:17:20
再看看22课小甲鱼的视频,你的f1是一个文件对象,里面的数据是以行为单位的,你把f1对象转换成list试下,可以看见每个元素是包含换行符的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-16 15:16:33 | 显示全部楼层
错了 是29讲
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-16 16:56:14 | 显示全部楼层
对于一个文档的遍历(也就是说使用 for)
是以行来遍历的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-16 17:17:20 | 显示全部楼层    本楼为最佳答案   
再看看22课小甲鱼的视频,你的f1是一个文件对象,里面的数据是以行为单位的,你把f1对象转换成list试下,可以看见每个元素是包含换行符的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-16 18:18:12 | 显示全部楼层
做个还搞不明白??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-16 20:18:51 | 显示全部楼层
新手·ing 发表于 2017-3-16 16:56
对于一个文档的遍历(也就是说使用 for)
是以行来遍历的

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-26 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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