<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      xcq-bj

      導航

       

      文件

      文件操作, 使用代碼 來讀寫文件
      1, Game 案例,最高分不能保存的, 可以將最高分保存到文件中,
      2, 自動化, 測試數據在文件中保存的, 從文件中讀取測試數據,進行自動化代碼的執行
      

      文件的介紹

      文件: 可以存儲在長期存儲設備(硬盤, U盤)上的一段數據即為文件
      
      1, 計算機只認識 二進制數據(0 和 1)
      2, 所有的文件在計算機中存儲的形式都是 二進制即 0 和 1 ,打開文件看到的是文字不是 0 和 1 ,原因是打開文件的
      軟件會自動的將二進制轉換為 文字
      
      文件的分類(根據能否使用文本軟件(記事本)打開文件):
      - 文本文件
      - 二進制文件
      
      • 文本文件
        • 可以使用記事本軟件打開
        • txt, py, md, json
      • 二進制文件
        • 不能使用 記事本軟件打開
        • 音頻文件 mp3
        • 視頻文件 mp4 ....
        • 圖片 png, jpg, gif, exe

      文件操作的步驟

      1. 打開文件
      2. 讀、寫文件
          l, 讀 將文件內容讀入內存
          2, 寫 將內存內容寫入文件
      3. 關閉文件
      

      打開文件 open()

      open(file, mode='r', encoding=None) # 將硬盤中的文件 加載到內存中
      - file: 表示要操作的文件的名字,可以使用相對路徑 和絕對路徑
          - 絕對路徑, 從根目錄開始書寫的路徑 C:/ D:/
          - 相對路徑, 從當前目錄開始書寫的路徑 ./ ../
      
      - mode: 打開文件的方式
          - r , 只讀打開 read, 如果文件不存在,會報錯
          - w , 只寫打開, write, 如果文件存在, 會覆蓋原文件
          - a , 追加打開, append, 在文件的末尾寫入新的內容
      
      - encoding: 編碼格式, 指 二進制數據 和 漢字 轉換的規則的
          - utf-8(常用) : 將一個漢字轉換為 3 個字節的二進制	
          - gbk: 將一個漢字轉換為 2 個字節的二進制
      返回值: 文件對象, 后續對文件的操作, 都需要這個文件對象
      

      關閉文件 close()

      文件對象.close() # 關閉文件, 如果是 寫文件, 會自動保存, 即將內存中的數據同步到硬盤中
      

      讀文件 read()

      變量 = 文件對象.read()
      返回值: 返回讀取到文件內容, 類型是字符串
      
      # f=open("a.txt",encoding="utf-8")       #不寫mode,默認’r'
      # buf=f.read()
      # print(buf)
      
      with open('a.txt','r',encoding='utf-8') as f:
          buf=f.read()
          print(buf)
      

      寫文件 write()

      文件對象.write()
      # 參數: 寫入文件的內容, 類型 字符串
      # 返回值: 寫入文件中的字符數, 字符串的長度, 一般不關注
      
      # 打開文件
      f = open('a.txt', 'w', encoding='utf-8')
      
      # 寫文件
      # f.write("好好學習 \n天天向上")
      
      f.write("第二次寫入,覆蓋第一次內容")
      # 關閉文件
      f.close()
      

      文件打開的另一種寫法(推薦)

      with open(file, mode, encoding) as 變量: # 變量 就是文件對象
      pass
      # 使用這種寫法打開文件, 會自動進行關閉,不用手動書寫關閉的代碼
      # 出了 with 的縮進之后, 文件就會自動關閉
      
      with open('a.txt', 'a', encoding='utf-8') as f:    #a:從a.txt的末尾 追加 內容
      	f.write('good good study\n')
      

      按?讀取?件 readline()

      ?件對象.readline() # ?次讀取??的內容, 返回讀取到的內容
      
      read() 和 readline() 如果讀到?件末尾, 返回的都是 空字符串
      
      with open('a.txt', encoding='utf-8') as f:
           buf = f.readline()
           print(buf) # aaaaaa
           buf1 = f.readline()
           print(buf1) # bbbbbb
      

      讀取??件

      # with open('a.txt', encoding='utf-8') as f:
      #     while True:
      #         buf = f.readline()  # ?件讀完了,返回 空字符串
      #         if buf == "":
      #             break
      #         else:
      #             print(buf, end='')
      
      with open('a.txt', encoding='utf-8') as f:
          while True:
              buf = f.readline()  # ?件讀完了,返回 空字符串
              if buf:  # 空字符串 是 False, ?空字符串 是True
                  print(buf, end='')
              else:
                  break
      

      打開?件的?式

      r w a 稱為是?本?式打開, 適?于 ?本?件, 會對?進制進?編碼轉換
      
      rb wb ab 稱為是?進制?式打開, 可以打開?本?件和?進制?件, 但是 ?進制?件只能使? ?進制?式打開, 
               同時,不能傳遞 encoding 參數
      

      DAY-08課堂筆記


      json ?件

      1, json ?件的本質也是?本?件, 就可以直接使? read 和
      write 去進?操作
      2, json ?件?較特殊, ?較像 Python 中的字典和列表
      3, json ?件使??較頻繁,按照 read 和 write 的操作,?較麻煩,
         專?的?法來操作 json ?件, 可以直接得到 Python 中的列表和字典
      

      介紹:

      1, json ?件, 是?種基于?本,獨?于語?的輕量級數據交換格式。
          - 基于?本, ?本?件,不包含 圖?,視頻等
          - 獨?于語?, 不是某?種語?特有的, Python,Java, C++,
          ....
          - 輕量級, 相同的數據量,json ?件的占?的?件??相對較?
          - 數據交換格式, 后端服務器 和前端?? 交換數據使?的格式
      
      2, 在?動化測試中經常?來存放測試數據,?件后綴名為:.json
      

      json 操作

      json ?件的定義

      我叫?明,我今年 18 歲,性別男, 學校 空, 愛好 聽歌,吃飯,打??, 我的居住地址為 國家 中國, 城市 ?州.
      
      {
        "name":"小明",
        "age": 18,
        "isMan": true,
        "school": null,
        "like":["聽歌","吃飯","打豆豆"],
        "address": {
          "country": "China",
          "city": "廣州"
        }
      }
      

      讀取 json ?件

      1, 可以直接使? read 去讀, 但是 想要取到數據很麻煩
      2, 使? 專?的?法去讀
      - 1. 導包 import json
      - 2. json.load(?件對象) ---> 得到的是 列表 或者字典
      
      import json
      
      with open("info", encoding="utf-8") as f:
          buf = json.load(f)
          print(buf)                             # {'name': '小明', 'age': 18, 'isMan': True, 'school': None, 'like': ['聽歌', '吃飯', '打豆豆'], 'address': {'country': 'China', 'city': '廣州'}}
          print(buf.get('name'))                 # 小明
          print(buf.get('like'))                 # ['聽歌', '吃飯', '打豆豆']
          print(buf.get('address').get("city"))  # 廣州
          print(buf.get('like')[2])              # 打豆豆
      

      練習

      我叫?明,我今年 18 歲,性別男, 愛好 聽歌, 吃飯,打??,
      我的居住地址為 國家中國, 城市?州. ---> 對象
      
      我叫?紅,我今年 17 歲,性別?, 愛好 聽歌, 學習,購物
      我的居住地址為 國家 中國, 城市北京. ---> 對象
      -----
      獲取 每個?的姓名, 年齡 性別, 城市
      

      json文件:

      [
        {
          "name": "小明",
          "age": 18,
          "isMan": true,
          "like": [
            "聽歌",
            "吃飯",
            "打豆豆"
          ],
          "address": {
            "country": "China",
            "city": "廣州"
          }
        },
        {
          "name": "小紅",
          "age": 17,
          "isMan": false,
          "like": [
            "聽歌",
            "學習",
            "購物"
          ],
          "address": {
            "country": "China",
            "city": "北京"
          }
        }
      ]
      
      import json
      
      with open("info2.json", encoding="utf-8") as f:
          buf = json.load(f)  # 列表
          for i in buf:
              if i.get("isMan"):
                  sex="男"
              else:
                  sex="女"
              print(f"name:{i.get('name')},age:{i.get('age')},sex:{sex},city:{i.get('address').get('city')}")
      

      寫?(了解)

      將 Python 中列表或者字典 轉換為 json ?件
      導包 import json
      使? json.dump(Python中數據, ?件對象)
      
      import json
      
      info = {'name': '?明', 'age': 18}
      with open('info3.json', 'w', encoding='utf-8') as f:
          # json.dump(info, f)
      
          # json.dump(info, f, ensure_ascii=False) # 直接顯示中?
      
          json.dump(info, f, ensure_ascii=False, indent=2)  # 直接顯示中?,并且縮進
      

      dump參數:

      • ensure_ascii參數用于控制非ASCII字符的處理方式;<1>
      • indent參數用于定義生成的JSON字符串或文件的縮進級別,使得輸出更易于閱讀;<2>
      • separators參數允許指定分隔符;
      • sort_keys參數可以指定是否對字典的鍵進行排序;
      • defaultcls參數提供了自定義序列化的方式

      異常

      介紹

      1, 程序在運?時, 如果Python解釋器遇到到?個錯誤, 則會停?程序的執?, 并且提示?些錯誤信息, 這就是異常.
      
      2, 程序停?執?并且提示錯誤信息這個動作, 通常稱之為: 拋出(raise) 異常
      
      異常類型: 錯誤描述信息
      FileNotFoundError: [Errno 2] No such file ordirectory: 'aaaa.txt'
      ZeroDivisionError: division by zero
      ValueError: invalid literal for int() with base 10:'78.1'
      

      捕獲異常

      1, 程序代碼在執?的時候, 如果遇到異常, 程序就會終?,不會繼續執?
      2, 需求: 程序遇到異常之后, 不會結束,可以繼續執?,
      3, 實現需求: 就需要使? 異常捕獲
      
      try:
           可能發?異常的代碼
      except: # 可以捕獲任意類型的異常
           發?了異常執?的代碼
      
      # 1. 獲取?戶從鍵盤輸?的數據
      num = input('請輸?數字:')
      try:
           # 2. 轉換數據類型為整數
           num = int(num)
           # 3. 數據轉換類型正確時, 輸出數據內容
           print(num)
      except:
           # 4. 數據轉換類型錯誤時, 提示輸?正確數據
           print('請輸?正確的數字')
      

      捕獲指定類型的異常

      發?的異??赡艽嬖诙喾N, 針對不同類型的異常, 解決處理的?案不?樣
      
      try:
            可能發?異常的代碼
      except 異常類型1:
            發了異常類型1,執?的代碼
      except 異常類型2:
            發了異常類型2,執?的代碼
      except .....:
            pass
      
      try:
          num = int(input('請輸??個整數數字:'))
          num1 = 8 / num
          print(num1)
      except ValueError:  #
          print('輸?的內容?數字,請重新輸?')
      except ZeroDivisionError:
          print('不能輸出數字 0, 請重新輸?')
      

      捕獲未知類型的異常(使?最多)

      try:
        可能發?異常的代碼
      except Exception as 變量: # Exception 常?異常類的?類, 變量 異常對象,print()可以打印異常信息
        發?異常執?的代碼
      
      try:
          num = int(input('請輸??個整數數字:'))
          num1 = 8 / num
          print(num1)
      except Exception as e:
          print(f'發?了異常, {e}')
      

      異常捕獲的完整結構

      try:
          可能發?異常的代碼
      except 異常類型:
          發?了指定類型的異常執?的代碼
      except Exception as e:
          發?了其他類型的異常執?的代碼
      else:
          沒有發?異常, 會執?的代碼
      finally:
          不管有沒有發?異常, 都會執?的代碼
      

      案例

      需求:
      1. 獲取用戶輸入的數字
      2. 判斷獲取的數字是否整數
      3. 如果不是整數, 提示輸入錯誤
      4. 如果是整數, 則進一步判斷是奇數還是偶數
      5. 最終提示: 程序運行結束
      
      # ?案?
      使?異常捕獲
      # ?案?
      if 判斷
      字符串.isdigit() 判斷數字是否是純數字,是 純數字,返回
      True,不是返回 False
      
      # 1. 獲取?戶輸?的數字
      num = input('請輸?數字:')
      try:
          # 2. 判斷獲取的數字是否整數
          num = int(num)  # 沒有發?異常, 說明是整數,如果發?異常,說明不是整數
      except Exception as e:
          # 3. 如果不是整數, 提示輸?錯誤
          print("輸?錯誤", e)
      else:
          # 4. 如果是整數, 則進?步判斷是奇數還是偶數
          if num % 2 == 0:
              print('偶數')
          else:
              print('奇數')
      # 5. 最終提示: 程序運?結束
      finally:
          print('程序運?結束')
      
      # 1. 獲取?戶輸?的數字
      num = input('請輸?數字:')
      # 2. 判斷獲取的數字是否整數
      if num.isdigit():
          # 如果是 True, 表示是整數
          # 類型轉換
          num = int(num)
          # 4. 如果是整數, 則進?步判斷是奇數還是偶數
          if num % 2 == 0:
              print('偶數')
          else:
              print('奇數')
      # 3. 如果不是整數, 提示輸?錯誤
      else:
          print('輸?錯誤')
      # 5. 最終提示: 程序運?結束
      print('程序運?結束')
      

      .isdigit():判斷數字是否是純數字,是 純數字,返回

      "10".isdigit()
      -True
      "11.5".isdigit()
      -False
      "aaa".isdigit()
      -False

      異常傳遞

      1, 異常傳遞 是 Python 中已經實現好的功能, 不需要我們寫代碼實現
      2, 異常傳遞是指, 在函數的嵌套調?過程中,如果發?了異常,沒有進?捕獲,會將這個異常傳遞到函數調?的地?, 直到被捕獲為?, 如果?直沒有捕獲,才會報錯,終?執?
      

      拋出異常

      1, 在執?代碼的過程中,之所以會發?異常,終?代碼執?,是因為 代碼執? 遇到了 raise 關鍵字
      2, raise 關鍵字的作?, 就是來拋出異常,讓代碼終?執?
      3, 應?場景: ??書寫代碼模塊,讓別?使?,為了讓別?按照你的規定使?你的代碼,你就可以在他不滿?你條件的情況下,使?raise 拋出異常
      
      posted on 2024-07-29 19:13  xcq_cm  閱讀(31)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 亚洲色欲色欲天天天www| 日韩有码中文字幕第一页| 秋霞鲁丝片成人无码| 日韩一区二区在线观看视频 | 成人免费视频在线观看播放| 日本a在线播放| 亚洲色大成网站WWW久久| 潘金莲高清dvd碟片| 精品国产中文字幕懂色| 日韩av一区二区精品不卡| 久久亚洲欧美日本精品| 欧美熟妇xxxxx欧美老妇不卡| 久久精品无码一区二区小草| 色综合久久一区二区三区| 伊人春色激情综合激情网| 日韩精品一区二区三区不卡| 四虎www永久在线精品| 爱性久久久久久久久| 国产成人高清亚洲综合| av在线播放国产一区| 激情综合网五月婷婷| 国产精品视频全国免费观看| 亚洲欧美日韩国产精品一区二区| 在线精品视频一区二区三四| 新版天堂资源中文8在线| 久久毛片少妇高潮| 国产亚洲精品视频一二区| 性姿势真人免费视频放| 欧美不卡无线在线一二三区观| 国产亚洲精品久久久久久无亚洲| 在线A毛片免费视频观看| 乐山市| 国产麻豆成人传媒免费观看| 日韩亚洲精品中文字幕| 中文人妻AV高清一区二区| 美女又黄又免费的视频| 九九久久人妻精品一区色| 亚洲激情一区二区三区在线| 国产午夜亚洲精品国产成人| 亚洲精品入口一区二区乱| 91蜜臀国产自产在线观看|