鱼C论坛

 找回密码
 立即注册
查看: 2995|回复: 6

[已解决]Python 31课 课后作业

[复制链接]
发表于 2018-9-11 08:25:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import pickle
def save_file(boy,girl,count):
    file_1name = 'boy_'+str(count)+'.txt'
    file_2name = 'girl'+str(count)+'.txt'
    f1 = open('D:\\'+file_1name,'wb')
    f2 = open('D:\\'+file_2name,'wb')
    pickle.dump(boy,f1)
    pickle.dump(girl,f2)
    f1.close()
    f2.close()
def print_file(file_2name,file_1name):
    f3 = open('D:\\'+file_1name,'rb')
    f4 = open('D:\\'+file_2name,'rb')
    my_f3 = pickle.load(f3)
    my_f4 = pickle.load(f4)
    print(f3)
    print(f4)

   
def spilt_file(file_name):
    f0 = open(file_name)
    boy = []
    girl = []
    count = 0
    for each_line in f0:
        if each_line[ :12] != '============':
            each_line.split(':',1)
            if each_line[0]=='小客服':
                girl.append(each_line[1])
            if each_line[0]=='小甲鱼':
                boy.append(each_line[1])
        else:
            save_file(boy,girl,count)
            boy = []
            girl = []
            count = count + 1
    save_file(boy,girl,count)
    f0.close
    print_file(file_2name,file_1name)

   
file_name = input('请输入文件')
spilt_file(file_name)

各位好,我想在原来的函数中添加一个把之前保存的文件打印到屏幕上的函数print_file(file_2name,file_1name),但是报错print_file函数中形参未定义。请问如何修改该形参,才可以打开之前保存的文件,并打印在屏幕上。



最佳答案
2018-9-11 08:44:57
执行print_file(file_2name,file_1name)时找不到file_2name,file_1name这两个变量,因为它们只是在函数def save_file(boy,girl,count):中被定义,属于局部变量。
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-11 08:44:57 | 显示全部楼层    本楼为最佳答案   
执行print_file(file_2name,file_1name)时找不到file_2name,file_1name这两个变量,因为它们只是在函数def save_file(boy,girl,count):中被定义,属于局部变量。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-11 08:45:08 | 显示全部楼层
左边括号是中文的,改成英文的即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-11 11:01:40 | 显示全部楼层
新人,求问课后作业在哪里看呀,找了半天,哭晕
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-11 14:12:23 | 显示全部楼层
你没有用英文的逗号!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-12 08:36:55 | 显示全部楼层
冬雪雪冬 发表于 2018-9-11 08:44
执行print_file(file_2name,file_1name)时找不到file_2name,file_1name这两个变量,因为它们只是在函数def ...

那请问如何设置print_file(file_2name,file_1name)中的形参,可以正常调用函数,打印保存的文件到屏幕上。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 09:02:31 | 显示全部楼层
将def save_file(boy,girl,count):中 file_1name file_2name设为全局变量
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-22 10:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表