python 异常

·1、异常
在程序运行的过程中,不可避免的会出现一些错误。比如 使用了不存的索引,引用了没有赋值的变量… 这些错误我们就称之为异常
程序一旦出现异常,会导致程序立即终止。异常后面的代码都不会执行
2、处理异常
程序出现异常,目的并不是让我们的程序终止,而是希望我们在出现异常的时候,能够编写响应的代码来对异常进行处理

try 语句:
语法:

try:
    代码块(可能出现错误的语句)
except 异常类型 as 异常名:
    代码块(出现错误以后的处理方式)
except 异常类型 as 异常名:
    代码块(出现错误以后的处理方式)
except 异常类型 as 异常名:
    代码块(出现错误以后的处理方式)
else:
    代码块(没有出现错误的语句)
finally:
    代码块(该代码总会执行)

在未知错误类型的时候:

try:
	print(6/0)
except:
	print("语句错误")
else:
	print("执行完成")

屏幕输出:除数不能为0

在已知错误类型的时候:
(如果出现的错误 跟 except中的错误不相同,则直接报错,不会执行except中的代码)

try:
	print(6/0)
except ZeroDivisionError as a:
	print(a)

屏幕输出:division by zero
(except如果指定异常 只会捕获指定的异常)

在未知情况下,想知晓错误类型,和错误内容,此时可以用到一个关键字
Exception

try:
	print(6/0)
except Exception as a:
	print(a,type(a))

屏幕输出:division by zero <class 'ZeroDivisionError'>

  1. 异常的传播
    当函数中出现异常的时候,如果在函数中对异常进行了处理,则异常不会在继续传播,如果在函数中没有对异常进行处理,则异常会继续向函数调用处传播
    def fn():
    	print(6/0)
    fn()
    

  2. 异常的传播
    当函数中出现异常的时候,如果在函数中对异常进行了处理,则异常不会在继续传播,如果在函数中没有对异常进行处理,则异常会继续向函数调用处传播
    def fn():
    	print(6/0)
    fn()
    

    控制台显示:
     

    Traceback (most recent call last):
      File "......", line 3, in <module>
        fn()
      File "......", line 2, in fn
        print(6/0)
    ZeroDivisionError: division by zero
    

    文件

  3. 打开文件

  4. 语法:open(文件路径)
    返回值:当前打开的文件作为对象返回
    例如打开一个位于C:\Users\xiao_weiyu\Desktop\资料.txt 的文本文档
     

    file_name = "C:\Users\xiao_weiyu\Desktop\资料.txt "
    file_one = open(file_name)
    

    关闭文件
    语法:文件对象.close( )
    (关闭文件,是为了节省空间,优化程序)
     

    file_name = "test.txt"
    file_one = open(file_name)
    file_one.close()
    

    这样关闭文件容易,当代码较多时容易遗漏close()
    更简洁的方式:
    with as
    语法:with open(文件路径) as 接收文件变量:
     

    file_name = "test.txt"
    with open(file_name) as file_one:
    	content = file_one.read()
    

    执行完代码块 程序会自动关闭文件
     

    文件写入:
    open()函数来进行文件的操作(读 写 追加),如果不指定操作类型,则默认是读取文件
    w 表示是可写的。如果文件不存在,它会帮我们来创建一个文件并写入内容。如果文件存在则会覆盖原文件的内容
    a 表示追加内容

    例如在当前目录创建一个名为:test.txt 的文本文档,并写入内容:abc
    write( ) 方法 用来写入数据
    语法:文件对象.write(内容)
     

    file_name = "test.txt"
    with open(file_name,"w") as file_one:
    	file_one.write("abc")
    

    文件读取
    (open()函数 默认为读取操作 如不指定操作)
    调用open()来打开一个文件的时候,可以将文件分为两种类型
    第一种 是纯文本(使用utf-8等编写的文本文件)
    第二种 是二进制文件(音频、视频、图片…)
    open()函数它默认打开文件是以纯文本的形式

    例如读取一个名为:test.txt 文本文档 内容为:你好世界
    内容为中文,此时需要标明解码格式为:utf-8
    read( ) 方法 用来读取数据
    语法:文件对象.read(内容长度)     默认内容长度:-1    表示全部读取
     

    file_name = "test.txt"
    with open(file_name,encoding="utf-8") as file_one:
    	content = file_one.read()
    

    较大文件读取
    (如果一个文件内容过多,一次性读取完所有内容,很容易导致电脑死机)
    read( ) 可以接受一个size作为参数,该参数用来指定读取字符的数量
    默认值为-1 读取全部的内容
    例如先读100个字符(字符和中文都算作一个)
     

    file_name = "test.txt"
    with open(file_name,encoding="uft-8") as file_one:
    	file_one.read(100)
    

    readline( )
    作用:每次只读取一行
    如果想每次读取一行,直到读取完,才截止,可以这样写
     

    file_name = "test.txt"
    with open(file_name,encoding="utf-8") as file_one:
    	while True:
    		content = file_one.readline()
    		if not content:
    			break
    		else:
    			print(content,end="")
    

    readlines( )
    作用:读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存。
    (每行的\n也会被记录)
     

    文件内容:
    #你好世界
    #你好python
    #你好c语言
    #你好java
    
    file_name ="test.txt"
    with open(file_name,encoding="utf-8") as file_one:
    	content = file_one.readlines()
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值