鱼C论坛

 找回密码
 立即注册
查看: 1779|回复: 4

[已解决]032讲作业提到容器类型可以”跨函数“,为什么以下代码会出错?

[复制链接]
发表于 2015-10-31 20:40:05 | 显示全部楼层 |阅读模式
1鱼币
  1. import pickle
  2. f=open('D:/record.txt')
  3. b=[]
  4. g=[]
  5. co=1
  6. def sf():
  7.     if 1:

  8.         f1=open('D:/text/boy_'+str(co)+'.txt','wb')
  9.         f2=open('D:/text/girl_'+str(co)+'.txt','wb')
  10.         pickle.dump(b,f1)
  11.         pickle.dump(g,f2)
  12.         f1.close()
  13.         f2.close()
  14.         b=[]
  15.         g=[]
  16.         global co
  17.         co+=1
  18. for a in f:
  19.     if a[:3]=='===':
  20.         sf()
  21.     if a[:3]=='大甲鱼':
  22.         b.append(a[4:])
  23.     if a[:3]=='大客服':
  24.         g.append(a[4:])
  25. sf()
复制代码

必须要global b,global g???
最佳答案
2015-10-31 20:40:06
肯定要global啊 在函数内部不用global并且你有跟全局变量同名的变量那么局部变量就把全局变量屏蔽了,这点跟c不太一样,全局作用变量一直延续到重新定义前。

最佳答案

查看完整内容

肯定要global啊 在函数内部不用global并且你有跟全局变量同名的变量那么局部变量就把全局变量屏蔽了,这点跟c不太一样,全局作用变量一直延续到重新定义前。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-31 20:40:06 | 显示全部楼层    本楼为最佳答案   
肯定要global啊 在函数内部不用global并且你有跟全局变量同名的变量那么局部变量就把全局变量屏蔽了,这点跟c不太一样,全局作用变量一直延续到重新定义前。

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-31 20:59:45 From FishC Mobile | 显示全部楼层
报错信息是什么?顺便贴一下嘛……我们手机一族没法调试啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-10-31 22:50:12 | 显示全部楼层
就是说调用前没有定义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-24 10:10:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 15:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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