小智1998 发表于 2021-2-21 12:25:25

29课课后作业第一题

请问各位大佬,比较两个文件不一样的程序可以用while循环写吗?
我用while写了一段,但是报了变量错误,如果可以的话请问该怎么修改代码呢?
def compare(f1,f2):
    file1 = open(f1)
    file2 = open(f2)
    count = 0
    differ = []
    while 1:
      cuont += 1
      if file1.readline != file2.readline:
            differ.append(count)
      file1.close
      file2.close
      return differ
f1 = input('请输入第一个文件名:')
f2 = input('请输入第二个文件名:')
differ = compare(f1,f2)
if len(differ) == 0:
    print('文件一致')
else:
    print('一共有%d处不一致' %len(differ))
    for each in differ:
      print('第%d行不一致' %each)

qiuyouzhi 发表于 2021-2-21 12:29:51

拼写错误..把while循环里的cuont改成count

小智1998 发表于 2021-2-21 12:56:02

qiuyouzhi 发表于 2021-2-21 12:29
拼写错误..把while循环里的cuont改成count

对的,马虎了,但是改了之后还是不能按要求实现,运行后就只能打印第一行不一致,但实际是其他行不一致

qiuyouzhi 发表于 2021-2-21 13:41:05

小智1998 发表于 2021-2-21 12:56
对的,马虎了,但是改了之后还是不能按要求实现,运行后就只能打印第一行不一致,但实际是其他行不一致
...

这样试试
def compare(f1,f2):
    file1 = open(f1)
    file2 = open(f2)
    count = 0
    differ = []
    while f.readline():
      count += 1
      if file1.readline != file2.readline:
            differ.append(count)
    file1.close()
    file2.close()
    return differ

小智1998 发表于 2021-2-21 14:51:35

qiuyouzhi 发表于 2021-2-21 13:41
这样试试

en...请问这里的while f。readline是什么意思呢?f没有被定义,运行报错了

qiuyouzhi 发表于 2021-2-21 15:08:10

小智1998 发表于 2021-2-21 14:51
en...请问这里的while f。readline是什么意思呢?f没有被定义,运行报错了

额,是我的问题
改成这样:
def compare(f1,f2):
    file1 = open(f1)
    file2 = open(f2)
    count = 0
    differ = []
    while (c1 := f.readline()) and (c2 := f.readline()):
      count += 1
      if c1 != c2:
            differ.append(count)
    file1.close()
    file2.close()
    return differ

Daniel_Zhang 发表于 2021-2-21 15:16:29

qiuyouzhi 发表于 2021-2-21 15:08
额,是我的问题
改成这样:

第 6 行 c1 := f.readline() 是啥意思麻烦解释一下{:10_257:}

qiuyouzhi 发表于 2021-2-21 15:22:29

Daniel_Zhang 发表于 2021-2-21 15:16
第 6 行 c1 := f.readline() 是啥意思麻烦解释一下

https://fishc.com.cn/thread-159745-1-1.html

Daniel_Zhang 发表于 2021-2-21 15:46:08

qiuyouzhi 发表于 2021-2-21 15:22
https://fishc.com.cn/thread-159745-1-1.html

太强了{:10_245:}

小智1998 发表于 2021-2-21 17:56:07

qiuyouzhi 发表于 2021-2-21 15:08
额,是我的问题
改成这样:

好的,代码运行成功了,但是我不理解while里的思路,能麻烦说一下吗
页: [1]
查看完整版本: 29课课后作业第一题