鱼C论坛

 找回密码
 立即注册
查看: 1647|回复: 5

[已解决]33课,f.close执行不了,说f没有定义

[复制链接]
发表于 2017-11-3 11:03:03 | 显示全部楼层 |阅读模式

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

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

x
  1. # try except 语句的练习

  2. try:
  3.    
  4.     f = open('我为什么是一个文档.txt')
  5.     print(f.read())
  6.     sum = 1 + '1'
  7. except OSError as reason:
  8.     print('文件打开出错啦\n错误原因是:' + str(reason))
  9. except TypeError as reason:
  10.     print('类型出错啦\n错误原因是:' + str(reason))
  11. finally:
  12.     f.close()
复制代码


shell 提示的错误如下

Traceback (most recent call last):
  File "E:/pythonfish/py9.2.py", line 13, in <module>
    f.close()
NameError: name 'f' is not defined
最佳答案
2017-11-3 11:06:42
因为你open的文件本来就不存在,所以根本就没有完成对 f 的赋值
此时编译器自然不认识 f 是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-3 11:06:42 | 显示全部楼层    本楼为最佳答案   
因为你open的文件本来就不存在,所以根本就没有完成对 f 的赋值
此时编译器自然不认识 f 是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-3 11:06:53 | 显示全部楼层
python中try except最后那个不是finally
这一组是  try   except    else
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-3 11:08:40 | 显示全部楼层
shuofxz 发表于 2017-11-3 11:06
python中try except最后那个不是finally
这一组是  try   except    else

没明白,我是边看书边看视频,然后打的。书是第98页的代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-3 11:19:03 | 显示全部楼层
markfzc 发表于 2017-11-3 11:08
没明白,我是边看书边看视频,然后打的。书是第98页的代码。

前面我看错了。。。
try except finally这种结构,其中finally后的代码一定会执行,我猜测你运行的时候是没有那个txt文档的,所以f 并没有获得文档的指针,最后f.close()就会报错。

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

使用道具 举报

 楼主| 发表于 2017-11-3 11:22:15 | 显示全部楼层
BngThea 发表于 2017-11-3 11:06
因为你open的文件本来就不存在,所以根本就没有完成对 f 的赋值
此时编译器自然不认识 f 是什么

明白了。谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-1 16:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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