马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小丑9 于 2022-3-6 13:44 编辑 import pickle
def size_file(n):
a = 'boy' + str(n) + '.txt'
b = 'girl' + str(n) + '.txt'
f1 = open(a,'wb')
pickle.dump(boy_list,f1)
f1.close()
f2 = open(b,'wb')
pickle.dump(girl_list,f2)
f2.close()
def search_file(name_file):
boy_list = []
girl_list = []
n = 0
file = open(name_file)
for each_line in file:
if each_line[:3] == '===':
n += 1
size_file( n)
boy_list.clear()
girl_list.clear()
who_line = each_line.split(':',1)
if who_line[0] == '小甲鱼':
boy_list.append(who_line[1])
elif who_line[0] == '小客服':
girl_list.append(who_line[1])
file.close()
search_file('record.txt')
我在定义 search_file 函数的时候已经定义了 boy_list 和 giel_list 变量,可我在定义size_file 函数的时候在8行和11行为什么不能调用这两个变量?它显示这两个变量没有被定义。
如果给size_file加入这两个形参的话就可以运行,按道理来说定义函数的时候是可以用局外变量的吧?
在函数里面定义变量只能在局部使用,你想定义全局变量的话得加个 global 声明。
import pickle
def size_file(n):
a = 'boy' + str(n) + '.txt'
b = 'girl' + str(n) + '.txt'
f1 = open(a,'wb')
pickle.dump(boy_list,f1)
f1.close()
f2 = open(b,'wb')
pickle.dump(girl_list,f2)
f2.close()
def search_file(name_file):
global boy_list, girl_list # 加上这行
boy_list = []
girl_list = []
n = 0
file = open(name_file)
for each_line in file:
if each_line[:3] == '===':
n += 1
size_file( n)
boy_list.clear()
girl_list.clear()
who_line = each_line.split(':',1)
if who_line[0] == '小甲鱼':
boy_list.append(who_line[1])
elif who_line[0] == '小客服':
girl_list.append(who_line[1])
file.close()
search_file('record.txt')
|