yuhanhanhan 发表于 2019-10-12 17:33:11

以下python程序为什么要return differ

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#这里return differ 有什么作用么,这个程序里面differ是一个局部变量还是全局变量?

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

differ = file_compare(file1,file2)#上面函数里面的differ不是已经有了对应的东西了么,这里为什么还要给它赋值,这是重新赋值了么?

if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:'%len(differ))
    for each in differ:
      print('第%d行不一样'%each)

问题在程序中的红色字体,麻烦各位大佬解答一下,谢谢啦!

zltzlt 发表于 2019-10-12 18:15:55

1. 这里的 differ 是局部变量。
2. 这里的 differ 是全局变量,与局部变量不冲突。
页: [1]
查看完整版本: 以下python程序为什么要return differ