博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之地基(四)
阅读量:5134 次
发布时间:2019-06-13

本文共 2619 字,大约阅读时间需要 8 分钟。

一、python内的名称空间及作用域

  #内置名称空间:(python启动时就有)python解释器内置的名字,print,max,min

  #全局名称空间:(执行python文件时启动)定投定义的变量

  #局部名称空间:(调用函数时启动,调用结束失效)函数内部定义的变量

  总结:三者的加载顺序

  内置--->全局--->局部
  三者的访问顺序
  局部--->全局--->内置

  在函数体内时,先访问函数体内的,如果没有向上一级(上一级函数或者全局)查找,还是没有的话就去内置里面去查找。

 

x=4defa():    x=3    defb():        x=2        defc():            x=1            print(x)        c()    b()a()‘‘‘如上述代码所示,执行结果为1,如果x=1不存在,那么向上一级寻找答案,那么得出结果为2.’’’
示例
  

二、异常处理

  什么是异常?

  异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

  一般情况下,在python无法正常处理程序时就会发生一个异常。

  异常时python对象,表示一个错误

  当python脚本发生异常时我们需要捕获处理它,否则程序会中止执行。

 

  异常处理:

  捕获以后才能可以使用try/except语句。

  try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理

  如果你不想在异常发生时结束,你的程序,只需在try里捕获它。

 

==========================================================try:    print(a)except:    print('错误')finally:#不管代码成功与否都执行finally的代码块    print('执行完毕')==========================================================try:    print(a)except NameError:#捕捉错误类型    print('变量没定义')  #打印出来的是括号里的==========================================================try:    print(a)except NameError as e:#捕捉原生错误    print(e)===========================================================处理多个异常try:    print(a)    int('aaa')except NameError as e1:    print(e1)except ValueError as e2:    print(e2)==========================================================自定义异常Class MyError(Exception):    def__init__(self,age):        self.age=agedef ag():    age=int(input('输入年龄:'))    if age<=0orage>100:        raise MyError('年龄只能在0到100岁之间')try:    ag()except MyError as e:    print(e)

 三、文件处理

 

#在python3中如何打开一个文件呢?

f = open('lock.txt', 'r',encoding='utf-8')#应用程序向操作系统发起打开文件的操作
print(f.read())#操作系统打开文件得到文件句柄返回给应用程序并赋值给f
f.close()#应用程序向操作系统发起关闭文件的信号,并且回收变量f

#注意:操作完文件后一定要记得关闭,因为如果开的文件多了,不关闭,会浪费系统资源,使系统变慢

#但是还是有很多同学忘记关闭文件,因此,可以用下面这个方式
with open('lock.txt', 'r', encoding='utf-8') as f:
print(f.read())

#这里要注意字符编码,秉承一个原则就不会出现乱码(用什么方式写的,就用什么方式打开)

r ,#只读模式【默认模式,文件必须存在,不存在则抛出异常】w,#只写模式【不可读;不存在则创建;存在则清空内容】a, #之追加写模式【不可读;不存在则创建;存在则只追加内容】#以下三种跟上面三种一样,只不过是以二进制方式rb wbab文本打开的常用模式r,w,a
r,a,w

操作文件的方法

#掌握
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符

f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
#了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #关闭文件
f.flush() #立刻将文件内容从内存刷到硬盘
f.name #查看打开的文件名

操作文件的方法

view code

f.seek(0,0)等价于f.seek(0)#代表把光标移动到开头f.seek(2,1)#代表在相对位置移动2个字节(1代表光标的相对位置,2代表在相对位置上把光标向后移动2个字节)f.seek(-3,2)#代表在末尾往前移动3个字节(2代表把光标移动到末尾,-3代表把光标向前移动3个字节)f.read(3)代表读取3个字符(意思是光标在第三个字节后面)光标位置移动光标移动
移动光标

 

转载于:https://www.cnblogs.com/Amrice/p/10910406.html

你可能感兴趣的文章
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
Java SE和Java EE应用的性能调优
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
继承条款effecitve c++ 条款41-45
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
background-clip,background-origin
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>