|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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')
复制代码
|
|