Python-100-Days学习笔记day11

变量f只要不为None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象,就都会转化为True

f.close()代表关闭文件,使其不能再读写了

finally:代表如果还有考虑不到的错误,就都执行以下输出

def main():
    f = None
    try:
        f = open('致橡树.txt', 'r', encoding='utf-8')
        print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')
    finally:
        if f:
            f.close()


if __name__ == '__main__':
    main()

finally

try:
    num = int(input('请输入一个整数:'))
    result = 8 /num
    print(result)
# except ZeroDivisionError:
#     print('0不能做除数')
except ValueError:
    print('输入的值不是合法的整数')
except Exception as r:
    print('未知错误 %s' %(r))
# 没有预先判断到的错误怎么办?
# ZeroDivisionError
finally:
    # 无论是否有异常,都会执行的代码
    print('%%%%%%%%%%%%%%%')
# ValueError
————————————————
版权声明:本文为CSDN博主「蓝七star」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44828950/article/details/91471459

with关键字,相当于简写的try-finally,即即使异常了也可以执行类似finally的作用,不报错

def main():
    try:
        with open('致橡树.txt', 'r', encoding='utf-8') as f:
            print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')


if __name__ == '__main__':
    main()

.readlines()返回所有值并返回列表

def main():

    # 读取文件按行读取到列表中
    with open('致橡树.txt') as f:
        lines = f.readlines()
    print(lines)
    

if __name__ == '__main__':
    main()

#输出f这个列表
['woshizhixiangshu\n', 'woshilinpeiyan\n', 'yexiaofei']
assert n > 0 表示断言n是大于零的,否则程序在这里报错
def is_prime(n):
    """判断素数的函数"""
    assert n > 0
    for factor in range(2, int(sqrt(n)) + 1):
        if n % factor == 0:
            return False
    return True if n != 1 else False

open()创建一个 file 对象,相关的方法才可以调用它进行读写

try except用于处理可能异常的代码块,提高代码的健壮性和容错性

try:
    可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
    处理异常的代码块1
except [ (Error3, Error4, ... ) [as e] ]:
    处理异常的代码块2
except  [Exception]:
    处理其它异常
我们在捕获这个异常之后假如需要访问TA的一些属性怎么办,这个时候就可以使用as关键字
所以,这里的e是前面MyError类的一个instance,我们可以直接访问他的value,也就是你看到的e.value
    except IOError as ex:
        print(ex)
        print('写文件时发生错误!')

比如说把w改成r,即不能写入了,那么就会报错,IORrror类中的具体错误,并用print(ex)将它打印出来

 #输出结果为:

 try-except

以下的最后一个except这种省略异常类的 except 语句也是合法的,它表示可捕获所有类型的异常,一般会作为异常捕获的最后一个 except 块。

try:
    a = int(input("输入被除数:"))
    b = int(input("输入除数:"))
    c = a / b
    print("您输入的两个数相除的结果是:", c )
except (ValueError, ArithmeticError):
    print("程序发生了数字格式异常、算术异常之一")
except :
    print("未知异常")
print("程序继续运行")

这种情况下,如果 Python 解释器找不到处理异常的 except 块,则程序运行终止,Python 解释器也将退出。

def main():
    try:
        with open('guido.jpg', 'rb') as fs1: #rb,以二进制格式打开一个文件用于只读
            data = fs1.read()
            print(type(data))  # <class 'bytes'>
        with open('吉多.jpg', 'wb') as fs2: #wb,以二进制格式打开一个文件只用于写入
            fs2.write(data)
    except FileNotFoundError as e:
        print('指定的文件无法打开.')
    except IOError as e:
        print('读写文件时出现错误.')
    print('程序执行结束.')

[ ]是列表,{ }是字典,调用都是在[ ]里加索引或者键

字典的调用

>>> tinydict = {'a': 1, 'b': 2, 'b': '3'}
>>> tinydict['b']
'3'

列表的调用

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
 
print "list1[0]: ", list1[0]
#输出 list1[0]:  physics

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值