zoukankan      html  css  js  c++  java
  • 【0806 | Day 9】异常处理/基本的文件操作

    一、异常处理

    异常即报错,可分为语法异常和逻辑异常

    1. 语法异常

    举个栗子

    if #报错 syntaxerror
    0 = 1 #报错 syntaxerror
    ...

    正经地举个栗子

    print(1)
    try:
        num = input('请输入: ')  #1
        dic = {'0':1}           #2
        print(dic[num])         #3
        
        print(3)                #4
        1 / int(num)            #5
        print(4)                #6
        
    except Exception as e:  
        #Exception包括'ZerodivisionError'和'Keyerror'
        #异常捕捉
        print('e:',e)           #7
    print(2)                    #8
    #第一种:输入0
    1
    请输入: 0
    1   #2 & #3
    3   #4
    #5 & #6不执行
    e: division by zero #7
    2   #8
    #第二种:输入非0
    #2 & #3不执行
    1   
    请输入: 2
    e: '2'  #7 返回输入值(即不在字典内)
    2   #8

    2. 逻辑异常

    举个栗子

    1/0 #报错,逻辑异常有多种形式

    正经地举个栗子

    print(1)
    try:        #尝试一下
        print(3)    #执行/自上而下
        1/0     #报错不影响
        print(4)    #不执行/自上而下
    except:     #除此之外
        pass
    print(2)
    ​
    #1
    #3
    #2

    二、基本的文件操作

    1、打开文件的三种方式

    #第一步,找到文件路径
    path = r'D:fxyadela上课练习	est.py'  #绝对路径
    path = r'test.py'   #相对路径
    #第二步,双击打开
    f = open(path,'r或w')
    print(f)
    #第三步,看文件
    data = f.read()
    print(data)
    #第四步,写文件
    f.write('nick young')
    #第五步,关闭文件
    f.close()
    #只写,返回地址并在test.py中输入'Nick Young'
    ​
    path = r'D:fxyadela上课练习	est.py'  #绝对路径
    f = open(path,'w')
    print(f)
    f.write('nick young')
    f.close()
    ​
    #<_io.TextIOWrapper name='D:\fxyadela\上课练习\test.py' mode='w' encoding='cp936'>
    #Nick Young #在test.py中
    #只读,返回地址和test.py中的字符
    #假设test.py中输入'Nick Young'
    ​
    path = r'D:fxyadela上课练习	est.py'  #绝对路径
    f = open(path,'r')
    print(f)
    data = f.read()
    print(data)
    f.close()
    ​
    #<_io.TextIOWrapper name='D:\fxyadela\上课练习\test.py' mode='r' encoding='cp936'>
    #Nick Young

    绝对路径: 从根目录开始找

    相对路径: 当前执行文件所在的文件夹开始找

     

    2、早期读写共同执行时存在的问题

    1.文件既可读又可写,假设文件内容为1
    2.系统在1后面追加2(需要10s)
    3.在这10s内,系统读文件需要5秒,此时读出只有1,系统会写2
    4.等读完文件,再写完2,此时系统10s结束,已经变为12
    5.则两者12相遇,报错

    注意: 所以,只读or只写

    3、关闭文件的注意事项

    f = open('test.py','r')
    data = f.read()
    print(data)
    del f   #不关闭操作系统,只删除f引用及在内存中的占用
    ​
    f = open('test.py','r')
    data = f.read()
    try1/0
        print(data)
    except Exception as e:
        print('e:',e)
    finally:
        f.close()   #既删除f引用,又会命令操作系统关闭对外存文件的占用

    4.TODO用法

    if True:
        #TODO:猜年龄逻辑运算(类似于索引)
        pass

     

     

  • 相关阅读:
    WebApp匯入資料之對話框實現
    JSON學習
    [JSON]jQuery的parseJSON()函數使用
    DataTable.Merge()一次應用
    WebApp匯入資料之From Excel
    含有HTML碼的欄位寫入資料庫處理方法
    访问Webservice错误
    ASP.NET整合應用實例後端Services合作
    强直性脊柱炎活动指数(ASDAS)在日常诊疗种评估生物制剂治疗患者的应用-来自葡萄牙登记系统风湿病患者
    脊柱炎症水平在疾病活动度高低不等的脊柱关节炎患者中表现相似-来自一项群体研究结果
  • 原文地址:https://www.cnblogs.com/fxyadela/p/11311072.html
Copyright © 2011-2022 走看看