日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

学习python第十天

發布時間:2024/4/17 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习python第十天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  這么算起來,學習 python 可不止用了十天,接下來還有 python 的高級部分,加油~


?1、異常(重點)

1.1  捕獲異常

簡單的捕獲異常語法

try:# 提示用戶輸入一個數字num = int(input("請輸入數字:")) except:print("請輸入正確的數字")
  • try嘗試,下方編寫要嘗試代碼,不確定是否能夠正常執行的代碼
  • except如果不是,下方編寫嘗試失敗的代碼

錯誤類型捕獲

在程序執行時,可能會遇到?不同類型的異常,并且需要?針對不同類型的異常,做出不同的響應,這個時候,就需要捕獲錯誤類型了

  • 當?Python?解釋器?拋出異常?時,最后一行錯誤信息的第一個單詞,就是錯誤類型
try:num = int(input("請輸入整數:"))result = 8 / numprint(result) except ValueError:print("請輸入正確的整數") except ZeroDivisionError:print("除 0 錯誤")

捕獲未知錯誤

  • 在開發時,要預判到所有可能出現的錯誤,還是有一定難度的
  • 如果希望程序?無論出現任何錯誤,都不會因為?Python?解釋器?拋出異常而被終止,可以再增加一個?except
except Exception as result:print("未知錯誤 %s" % result)

異常捕獲完整語法

  • else?只有在沒有異常時才會執行的代碼

  • finally?無論是否有異常,都會執行的代碼

try:num = int(input("請輸入整數:"))result = 8 / numprint(result) except ValueError:print("請輸入正確的整數") except ZeroDivisionError:print("除 0 錯誤") except Exception as result:print("未知錯誤 %s" % result) else:print("正常執行") finally:print("執行完成,但是不保證正確")

1.2  異常的傳遞

  • 異常的傳遞?—— 當?函數/方法?執行?出現異常,會?將異常傳遞?給 函數/方法 的?調用一方
  • 如果?傳遞到主程序,仍然?沒有異常處理,程序才會被終止

提示:(主函數調用其他函數,其他函數出現異常,只要在主函數中捕獲異樣就行)

  • 在開發中,可以在主函數中增加?異常捕獲
  • 而在主函數中調用的其他函數,只要出現異常,都會傳遞到主函數的?異常捕獲?中
  • 這樣就不需要在代碼中,增加大量的?異常捕獲,能夠保證代碼的整潔
def demo1():return int(input("請輸入一個整數:"))
def demo2():return demo1()try:print(demo2()) except ValueError:print("請輸入正確的整數") except Exception as result:print("未知錯誤 %s" % result)

1.3  拋出 raise 異常

應用場景

  • 在開發中,除了?代碼執行出錯?Python?解釋器會?拋出?異常之外
  • 還可以根據?應用程序?特有的業務需求?主動拋出異常

示例

  • 提示用戶?輸入密碼,如果?長度少于 8,拋出?異常

拋出異常

  • Python?中提供了一個?Exception?異常類
  • 在開發時,如果滿足?特定業務需求時,希望?拋出異常,可以:
  • 創建?一個?Exception?的?對象
  • 使用?raise?關鍵字?拋出?異常對象
def input_password():pwd = input("請輸入密碼:")if len(pwd) >= 8:return pwdex = Exception("密碼長度不夠")raise extry:user_pwd = input_password()print(user_pwd) except Exception as result:print("發現錯誤:%s" % result)

2、模塊

2.1  模塊的概念

模塊是 Python 程序架構的一個核心概念

  • 每一個以擴展名?py?結尾的?Python?源代碼文件都是一個?模塊
  • 模塊名?同樣也是一個?標識符,需要符合標識符的命名規則
  • 在模塊中定義的?全局變量?、函數?都是提供給外界直接使用的?工具
  • 模塊?就好比是?工具包,要想使用這個工具包中的工具,就需要先?導入?這個模塊

2.2  模塊的兩種導入方式

1)import 導入

  • 在導入模塊時,每個導入應該獨占一行
  • 導入之后,通過?模塊名.?使用?模塊提供的工具?——?全局變量函數
  • 如果模塊的名字太長,可以使用?as?指定模塊的名稱,以方便在代碼中的使用(別名符合大駝峰命名法)
import 模塊名1 as 模塊別名

2)from...import 導入

  • 如果希望?從某一個模塊?中,導入?部分?工具,就可以使用?from ... import?的方式
  • import 模塊名?是?一次性?把模塊中?所有工具全部導入,并且通過?模塊名/別名?訪問
  • 導入之后,不需要?通過?模塊名,可以直接使用?模塊提供的工具?——?全局變量函數
# 從 模塊 導入 部分工具 form 模塊名1 import 某個工具 # 從 模塊 導入 所有工具使用*(這種方式不推薦使用,因為函數重名并沒有任何的提示,出現問題不好排查) from 模塊名2 import *

3)特別注意!!

如果?兩個模塊,存在?同名的函數,那么?后導入模塊的函數,會?覆蓋掉先導入的函數

  • 開發時?import?代碼應該統一寫在?代碼的頂部,更容易及時發現沖突
  • 一旦發現沖突,可以使用?as?關鍵字?給其中一個工具起一個別名

2.3  模塊的搜索順序 [擴展]

Python?的解釋器在?導入模塊?時,會:

  • 搜索?當前目錄?指定模塊名的文件,如果有就直接導入
  • 如果沒有,再搜索?系統目錄
  • 在開發時,給文件起名,不要和?系統的模塊文件?重名
  • Python?中每一個模塊都有一個內置屬性?__file__?可以?查看模塊?的?完整路徑
  • print(__file__)

    2.4  原則 —— 每一個文件都應該是可以被導入的

    • 一個?獨立的?Python?文件?就是一個?模塊
    • 在導入文件時,文件中?所有沒有任何縮進的代碼?都會被執行一遍!

    實際開發場景

    • 在實際開發中,每一個模塊都是獨立開發的,大多都有專人負責
    • 開發人員?通常會在?模塊下方增加一些測試代碼
      • 僅在模塊內使用,而被導入到其他文件中不需要執行

    __name__?屬性

    • __name__?屬性可以做到,測試模塊的代碼?只在測試情況下被運行,而在?被導入時不會被執行
    • __name__?是?Python?的一個內置屬性,記錄著一個?字符串
    • 如果?是被其他文件導入的,__name__?就是?模塊名
    • 如果?是當前執行的程序?__name__?是?__main__

    在很多?Python?文件中都會看到以下格式的代碼

    # 在代碼的最下方 def main():# ...pass# 根據 __name__ 判斷是否執行下方代碼 if __name__ == "__main__":main()

    3、包(Package)

    3.1  概念

    • ?是一個?包含多個模塊?的?特殊目錄
    • 目錄下有一個?特殊的文件?__init__.py(即只有是源文件夾才能被導入)
    • 包名的?命名方式?和變量名一致,小寫字母?+?_

    3.2  好處

    • 使用?import 包名?可以一次性導入??中?所有的模塊
    # 從 當前目錄 導入 模塊列表 from . import send_message from . import receive_message

    ?4、文件

    4.1  文件的基本操作

    在?計算機?中要操作文件的套路非常固定,一共包含三個步驟

  • 打開文件
  • 讀、寫文件
    • ?將文件內容讀入內存
    • ?將內存內容寫入文件
  • 關閉文件
  • 1)操作文件的函數/方法

    • 在?Python?中要操作文件需要記住 1 個函數和 3 個方法
    序號函數/方法說明
    01open打開文件,并且返回文件操作對象
    02read將文件內容讀取到內存
    03write將指定內容寫入文件
    04close關閉文件
    • open?函數負責打開文件,并且返回文件對象
    • read/write/close?三個方法都需要通過?文件對象?來調用

    2)read 方法 —— 讀取文件

    • open?函數的第一個參數是要打開的文件名(文件名區分大小寫)
      • 如果文件?存在,返回?文件操作對象
      • 如果文件?不存在,會?拋出異常
    • read?方法可以一次性?讀入?并?返回?文件的?所有內容
    • close?方法負責?關閉文件
      • 如果?忘記關閉文件會造成系統資源消耗,而且會影響到后續對文件的訪問
    • 注意:read?方法執行后,會把?文件指針?移動到?文件的末尾
    # 1. 打開 - 文件名需要注意大小寫 file = open("README")# 2. 讀取 text = file.read() print(text)# 3. 關閉 file.close()
    • 在開發中,通常會先編寫?打開?和?關閉?的代碼,再編寫中間針對文件的?讀/寫?操作!

    3)文件指針(知道)

    • 文件指針?標記?從哪個位置開始讀取數據
    • 第一次打開?文件時,通常?文件指針會指向文件的開始位置
    • 當執行了?read?方法后,文件指針?會移動到?讀取內容的末尾
      • 默認情況下會移動到?文件末尾
    • 如果執行了一次?read?方法,讀取了所有內容,那么再次調用?read?方法,不能再讀取內容了(文件指針指向了末尾)

    4)打開文件的方式

    • open?函數默認以?只讀方式?打開文件,并且返回文件對象
    • 頻繁的移動文件指針,會影響文件的讀寫效率,開發中更多的時候會以?只讀只寫?的方式來操作文件
    訪問方式說明
    r只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。如果文件不存在,拋出異常
    w只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件
    a追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入
    r+讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常
    w+讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件
    a+讀寫方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入


    #
    打開文件 f = open("README", "w")f.write("hello python!\n") f.write("今天天氣真好")# 關閉文件 f.close()

    ?5)按行讀取文件內容

    • read?方法默認會把文件的?所有內容一次性讀取到內存
    • 如果文件太大,對內存的占用會非常嚴重

    讀取大文件的正確姿勢

    # 打開文件 file = open("README")while True:# 一次讀取一行內容text = file.readline()# 判斷是否讀到內容if not text:break# 每讀取一行的末尾已經有了一個 `\n`print(text, end="")# 關閉文件 file.close()

    6)文件讀寫案例 —— 復制文件

    # 一次性全部讀取(適合復制小文件) def test01():# 1. 打開文件file_read = open("README")file_write = open("README[復件]", "w")# 2. 讀取并寫入文件text = file_read.read()file_write.write(text)# 3. 關閉文件 file_read.close()file_write.close()
    # 一行一行讀取(適合復制大文件) def test02():# 1. 打開文件file_read = open("README")file_write = open("README[復件]", "w")# 2. 讀取并寫入文件while True:# 每次讀取一行text = file_read.readline()# 判斷是否讀取到內容if not text:breakfile_write.write(text)# 3. 關閉文件 file_read.close()file_write.close()

    4.2  文件/目錄的常用管理操作

    • 在?終端?/?文件瀏覽器、 中可以執行常規的?文件?/?目錄?管理操作,例如:
      • 創建、重命名、刪除、改變路徑、查看目錄內容、……
    • 在?Python?中,如果希望通過程序實現上述功能,需要導入?os?模塊

    文件操作

    序號方法名說明示例
    01rename重命名文件os.rename(源文件名, 目標文件名)
    02remove刪除文件os.remove(文件名)

    目錄操作

    ?

    序號方法名說明示例
    01listdir目錄列表os.listdir(目錄名)
    02mkdir創建目錄os.mkdir(目錄名)
    03rmdir刪除目錄os.rmdir(目錄名)
    04getcwd獲取當前目錄os.getcwd()
    05chdir修改工作目錄os.chdir(目標目錄)
    06path.isdir判斷是否是文件os.path.isdir(文件路徑)

    4.3  文本文件的編碼格式(科普)

    ASCII?編碼

    • 計算機中只有?256?個?ASCII?字符
    • 一個?ASCII?在內存中占用?1 個字節?的空間
      • 8?個?0/1?的排列組合方式一共有?256?種,也就是?2 ** 8

    ?

    UTF-8?編碼格式

    • 計算機中使用?1~6 個字節?來表示一個?UTF-8?字符,涵蓋了?地球上幾乎所有地區的文字
    • 大多數漢字會使用?3 個字節?表示
    • UTF-8?是?UNICODE?編碼的一種編碼格式

    ?Ptyhon 2.x 中如何使用中文

    • Python 2.x 默認使用?ASCII?編碼格式
    • Python 3.x 默認使用?UTF-8?編碼格式
    • 在 Python 2.x 文件的?第一行?增加以下代碼,解釋器會以?utf-8?編碼來處理 python 文件
    # 官方推薦的格式 # *-* coding:utf8 *-*# 我們也可以使用 # coding=utf8

    unicode 字符串(注意注意!!!)

    • 在?Python 2.x?中,即使指定了文件使用?UTF-8?的編碼格式,但是在遍歷字符串時,仍然會?以字節為單位遍歷?字符串
    • 要能夠?正確的遍歷字符串,在定義字符串時,需要?在字符串的引號前,增加一個小寫字母?u,告訴解釋器這是一個?unicode?字符串(使用?UTF-8?編碼格式的字符串)
    # *-* coding:utf8 *-*# 在字符串前,增加一個 `u` 表示這個字符串是一個 utf8 字符串 hello_str = u"你好世界"print(hello_str)for c in hello_str:print(c)

    5、eval?函數

    eval()?函數十分強大 ——?將字符串?當成?有效的表達式?來求值 并?返回計算結果

    # 基本的數學計算 In [1]: eval("1 + 1") Out[1]: 2# 字符串重復 In [2]: eval("'*' * 10") Out[2]: '**********'# 將字符串轉換成列表 In [3]: type(eval("[1, 2, 3, 4, 5]")) Out[3]: list# 將字符串轉換成字典 In [4]: type(eval("{'name': 'xiaoming', 'age': 18}")) Out[4]: dict

    5.1  案例 - 計算器

    input_str = input("請輸入一個算術題:")print(eval(input_str))

    5.2  不要濫用?eval

    在開發時千萬不要使用?eval?直接轉換?input?的結果

    __import__('os').system('ls')
    • 等價代碼
    import os os.system("終端命令")
    • 執行成功,返回 0
    • 執行失敗,返回錯誤信息

    如果濫用eval(),輸入__import__('os').system('ls'),會顯示當前系統文件,那么如果我是刪除系統文件呢,不安全咯!

    input_str = input("請輸入str:") print(eval(input_str))

    ?

    轉載于:https://www.cnblogs.com/tangxlblog/p/9879419.html

    總結

    以上是生活随笔為你收集整理的学习python第十天的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美精品一区二区免费 | 亚州欧美 | 国产欧美日韩综合精品一区 | 成人免费午夜视频 | 私库av在线 | 国产黄色网络 | 日韩色在线观看 | 日韩成人一区二区 | 国产伦精品一区三区精东 | 国产免费片| 中文字幕人妻精品一区 | 免费在线日韩 | 日韩伦理一区二区三区 | 亚洲乱码av| 久草免费在线视频观看 | 免费看三级黄色片 | 91成年版| 日韩成人高清视频 | 第一章婶婶的性事 | 朝桐光在线观看 | 色噜噜狠狠成人中文 | 色综合成人 | 国产精品色哟哟 | 操操日日 | 神马一区二区三区 | 天天干天天爱天天操 | 精品国产网| 牛人盗摄一区二区三区视频 | 婷婷色中文字幕 | 青青草在线观看视频 | 久久成 | 免费精品在线观看 | 免费在线观看污网站 | 激情伊人五月天 | 污污在线看 | 午夜精品久久久久 | 午夜精品福利一区二区 | 欧美黄色小说 | www.色啪啪.com | 午夜免费在线观看 | 欧美成人a | 一级黄色a | 国产又粗又猛又色又 | 亚洲爆爽av | 久久丫精品 | 日韩电影一区 | 深夜激情影院 | 日本美女黄网站 | 五月天一区二区三区 | 国产美女自慰在线观看 | 国产亚洲欧美精品久久久久久 | 中国在线观看免费视频 | 草莓视频一区二区三区 | www.色在线 | 日韩美女黄色片 | 亚洲成人av电影 | 国产精品mv | 久草在在线视频 | 成人免费毛片免费 | 日韩欧美国产一区二区 | 一区二区三区四区国产 | 五月天堂婷婷 | 九九人人 | 欧美亚洲国产一区 | 漂亮人妻洗澡被公强 日日躁 | www亚洲天堂 | 亚洲怡红院av | 福利网址在线 | 久久久国产打桩机 | 香蕉私人影院 | 我要看免费的毛片 | 污视频免费在线 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 在线免费中文字幕 | 中文字幕人成乱码熟女香港 | 久久精品免费av | 日日干日日插 | 国产欧美日韩高清 | 中文字幕综合网 | 蜜臀国产AV天堂久久无码蜜臀 | 黄色免费在线观看网站 | 亚洲a级在线观看 | 精品66| 两根大肉大捧一进一出好爽视频 | 美女网站在线 | 国产夫绿帽单男3p精品视频 | 青青草综合 | 国产午夜激情视频 | 成人短视频在线免费观看 | 欧美一区二区三区在线免费观看 | 黄色1级视频 | 18禁肉肉无遮挡无码网站 | www.三级| 狠狠干影视| 亚洲五月综合 | 五月情网 | 亚洲综合图色40p | 中国极品少妇videossexhd 就要干就要操 | 日本三区视频 |