文件操作函数为何要和外面的一致?
例如函数:def plus(x, y):
sum = x + y
return sum
number1 = 5
number2 = 6
result = plus(5, 6)
print("The sum is: ", result)
参数是x和y,与全局变量的number1和number2的名称是不一样的。
但为什么在文件函数中,文件函数的参数要和外面的一抹一样呢?例如:
def file_compare(file1_name, file2_name):
f1 = open(file1_name, encoding = 'utf-8')#这里也可以输入‘utf=8'好使
f2 = open(file2_name, encoding = 'utf-8')#这里也可以输入‘utf=8'好使
count = 0 # 统计行数
differ = [] # 统计不一样的数量
for line1 in f1:
line2 = f2.readline()
count += 1
if line1 != line2:
differ.append(count)
f1.close()
f2.close()
return differ #differ是一个数字列表:如果differ = ,
#则len(differ)就等于4,表示列表中有四项,也就是四处不同。
file1_name = input('请输入需要比较的头一个文件名:') #输入文件时要输入全部路径E:\...\什么的
file2_name = input('请输入需要比较的另一个文件名:') #如果是中文,encoding也要考虑到
differ = file_compare(file1_name, file2_name)
if len(differ) == 0:
print('两个文件完全一样!')
else:
print('两个文件共有【%d】处不同:' % len(differ))
for each in differ:
print('第 %d 行不一样' % each)
在主程序中,两个文件名称分别是:file1_name和file2_name
而在两个文件对比的函数定义时,def file_compare(file1_name, file2_name):
以及在函数内部:
f1 = open(file1_name, encoding = 'utf-8')
f2 = open(file2_name, encoding = 'utf-8')
file1_name 与 file2_name的名称也完全一样。
为什么文件函数中的参数要和外面主程序文件名称保持一样呢?
谢谢 并不需要一样 这个就是单纯的重复了而已…… 本帖最后由 Twilight6 于 2020-7-2 20:15 编辑
不需要呀,你乱写也可以的,只是你写函数时候定义参数为 file_name 让你下次看代码时候知道需要传入的是 文件名
如果你写个 x 你下次看到这个函数就看不懂,还要重新解读代码
但是你在函数定义了参数名是什么,下面要使用这个变量时候就要写的是参数名
举个例子:
def func(num):
print(num)# 这边要使用传入的值,使用的还是 num 而不是 xx
xx = 100
func(xx)# 这边将 xx 传入,但是在函数内部还是使用 num
哦,是的,不需要一样。谢二位学长。这次好使了。{:10_282:}
页:
[1]