在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python-模塊、包、異常

汽車電子技術 ? 來源:程序猿知秋 ? 作者: 程序猿知秋 ? 2023-02-16 15:40 ? 次閱讀

異常

概念

  • 程序運行時,如果Python 解釋器遇到了錯誤,會停止程序運行,并且提示錯誤信息,這就是異常
  • 程序停止執行并提示錯誤信息的動作,稱為 拋出異常

異常捕獲

  • **try: ** 里面的代碼,不確定是否能夠正常執行.
  • **except: ** 當try里面的代碼出現錯誤時,程序會跳到except 里執行
  • 對某些代碼的執行不確定是否正確,可以使用 try: except 來捕獲并處理異常

語法

try:
  嘗試執行代碼
 except:
   出現錯誤的處理

錯誤類型

  • 在Python中,程序執行時可能會遇到 不同類型的異常 ,并且需要針對不同類型的異常,做出不同的響應,這時就需要捕獲異常類型了
  • 當 Python解釋器 拋出異常時 ,最后一行錯誤信息的第一個單詞,就是錯誤類型
  • 如果希望 無論出現任何錯誤 ,都不會因為 Python 解釋器 拋出異常而被終止**,可以用 except Exception **

語法

try:
  嘗試執行的代碼
except 錯誤類型1:
  針對錯誤類型1,對應的處理代碼
except (錯誤類型2,錯誤類型3):
  針對錯誤類型23,對應的處理代碼
except Exception as e:
  未知錯誤處理

示例

try:
  # 除零異常 案例
  # num=10/0


  # 其它異常
  ss=int("df")


except ZeroDivisionError:
  print("這是除0異常")
except Exception as e:
  print("未知異常:",e)

輸出結果

圖片

異常的傳遞

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

主動拋出異常

  • 在開發中,除了 代碼執行出錯 Python ** 解釋器 拋出異常之外** ,還可以根據 應用程序特有的業務需求 ,主動拋出異常
  • Python 中提供了一個 Exception 異常類
  • 如果想要主動拋出異常
    • 創建一個 Exception 的對象
    • 使用 raise 關鍵字拋出異常

**示例

**

def input_pwd(pwdd):
  """ 校驗密碼,密碼長度只能是6位 """
  if len(pwdd)!=6:
    ex=Exception("主動拋出異常:密碼長度不符合規定!!")
    raise ex


  print("你輸入的密碼是:%s" %pwdd)


try:
  input_pwd("2332323232")
except Exception as e:
  print(e)

**輸出結果

**

圖片

模塊

概念

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

import 導入示例

# 方式一
import 模塊名1,模塊名2


# 方式二
import 模塊名1
import 模塊名2


# 方式三,導入后使用別名
import 模塊1 as 模塊別名

**導入后,通過模塊名. **使用 模塊提供的工具 (全局變量、函數、類)

from... import 導入

  • 如果希望 **從某一個模塊 **中,導入 部分 工具 就可以使用 from ... import 的方式
  • import 模塊名 **是一次性 把模塊中 所有工具全部導入, 并且通過 模塊名/別名 **訪問
  • 導入后不需要通過 ** 模塊名. ,** 可以直接使用** 模塊提供的工具 ——全局變量、函數、類**
  • 如果 兩個模塊, 存在同名的函數**,后導入的模塊會覆蓋先導入的模塊**
  • 一旦發生沖突,可以使用 as 關鍵字給其中一個工具起一個別名
# 從模塊中導入某個工具
form 模塊名1 import 工具名


# 導入所有工具(不推薦使用,出現同名工具不好查)
from 模塊名 import *

示例

import random as rd
from tqdm import tqdm


num=rd.randint(0,10)
print("生成的隨機數是:%d" %num)


# 生成進度條
for i in tqdm(range(10)):
  pass

輸出結果

圖片

原則

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

**name **屬性

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

**示例 **

cal.py 文件內容

name ="張三"


def add(a,b):
  return a+b


def reduce(a,b):
  return a-b


print("計算結果是:%d" %add(1,2))

hello3.py 文件內容

import cal


num=cal.add(2,2)
print("num的值:%d" %num)

執行 hello3.py 的結果

圖片

如果不想執行 cal.py 模塊中打印的內容,可以加 if name ==" main "

name ="張三"


def add(a,b):
  return a+b


def reduce(a,b):
  return a-b


if __name__ == "__main__":
  print("計算結果是:%d" %add(1,2))

修改完 cal.py 后,再次執行 hello3.py 文件

圖片

概念

  • **包 是一個包含多個模塊的 特殊目錄 **
  • 目錄下有個特殊文件** init .py**
  • 包名的命名方式 和變量名一致,小寫字母 +_
  • 優點
    • 使用 import 包名,可以一次性導入包中所有模塊

** init .py 文件**

  • 要在外界使用** 包 **中的模塊,需要在 init .py 中指定 對外界提供的模塊列表
# 從當前目錄 導入模塊列表
from . import test1
from . import test2

示例

圖片

圖片

圖片

圖片

制作模塊

發布模塊

  • 如果希望自己的模塊,分享給其他人,可以按照以下步驟操作
    • 創建 setup.py
      • from distutils.core import setup
        setup(
            name="ani",#包名
            version="1.0", #版本
            description="say hello模塊", # 描述信息
            long_description="完成的 say hello 模塊", # 完事的描述信息
            author="zq", # 作者
            author_email="[email protected]", # 作者郵箱
            url="www.xxx.com", # 主頁
            py_modules=["ani.test1","ani.test2"] # 包中所有要分享的模塊
        )
        
    • 構建模塊
      • 命名行輸入: python setup.py build
    • 生成發布的壓縮包
      • 命名行輸入: python setup.py sdist

圖片

圖片

圖片

安裝模塊

  • 解壓 ani-1.0.tar.gz 壓縮包

  • 進入解壓后的目錄,命令行輸入:python setup.py install

    圖片

    圖片

卸載模塊

  • 直接從安裝目錄下,把安裝的模塊 目錄 刪除就可以了

**pip 安裝第三方模塊

**

  • pip 是一個現代的,通用的 Python 包管理工具
  • 提供了對 Python 包的查找、下載、安裝、卸載等功能
  • 安裝與制裁命令如下
    • pip install xxx
    • pip uninstall xxx

示例

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    117

    文章

    3816

    瀏覽量

    82111
  • python
    +關注

    關注

    56

    文章

    4821

    瀏覽量

    85776
  • 解釋器
    +關注

    關注

    0

    文章

    103

    瀏覽量

    6651
收藏 人收藏

    評論

    相關推薦

    請問python-樹莓派如何通過按鍵控制步進電機正反轉?

    步進電機驅動原理是什么?python-樹莓派如何通過按鍵控制步進電機正反轉?
    發表于 10-09 08:45

    python常見異常類型

    ,我們統稱為異常。正常情況下,異常都不會被程序處理,而是以錯誤信息的形式展現出來。異常有很多種類型,Python內置了幾十種常見的異常,就在
    發表于 03-04 16:59

    什么是python模塊和庫?

    1. 模塊以 .py 為后綴的文件,我們稱之為 模塊,英文名 Module。模塊讓你能夠有邏輯地組織你的 Python 代碼段,把相關的代碼分配到一個
    發表于 03-09 16:48

    python常規與命名空間

    python常規與命名空間1. 常規包在 Python 3.3 之前或者說 Python 2 中,一個
    發表于 03-11 15:46

    python-控制khr3hv-master機器人

    python-控制khr3hv機器人,感興趣的小伙伴們可以瞧一瞧。
    發表于 11-22 15:40 ?2次下載

    python-速成指南

    python 提供好用的兩個容器:list 和 dict。插句題外話,其實最好用的容器還是 PHP 提供的關聯數組,一個數組就包括了 python 中 list 和 dict 的全部功能,實在是很贊。
    發表于 03-28 16:32 ?9次下載

    在Anaconda中安裝pythonseaborn

    在Anaconda中安裝pythonseaborn(現代電源技術題庫)-在Anaconda中安裝pythonseaborn? ? ? ? ? ? ?
    發表于 09-18 15:01 ?5次下載
    在Anaconda中安裝<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn

    python如何捕獲異常和主動拋出異常

    python如何主動拋出異常和捕獲異常 1. 如何拋出異常異常的產生有兩種來源: 一種是程序自動拋出,比如 1/0 會自動拋出 Zero
    的頭像 發表于 03-04 17:09 ?1w次閱讀

    python模塊和庫是什么

    1. 模塊 以 .py 為后綴的文件,我們稱之為 模塊,英文名 Module。 模塊讓你能夠有邏輯地組織你的 Python 代碼段,把相關的代碼分配到一個
    的頭像 發表于 03-09 16:47 ?2441次閱讀

    詳解python常規與命名空間

    python常規與命名空間 1. 常規Python 3.3 之前或者說 Python
    的頭像 發表于 03-11 15:46 ?3569次閱讀

    Python-模塊

    模塊Python 程序架構的一個核心概念
    的頭像 發表于 02-16 14:55 ?900次閱讀
    <b class='flag-5'>Python-</b><b class='flag-5'>模塊</b>與<b class='flag-5'>包</b>

    python模塊相對導入from和import介紹1

    文件**init**.py下,python通過import module導入模塊時,先搜索程序運行主目錄。 程序運行主目錄為運行的py文件所在目錄,而不是執行python.e
    的頭像 發表于 02-21 14:15 ?1136次閱讀

    python模塊相對導入from和import介紹2

    python2.7先搜索當前目錄,再搜索sys.path模塊搜索路徑。即先相對再絕對。 本示例在交互模式執行,非文件模式執行。
    的頭像 發表于 02-21 14:17 ?801次閱讀

    簡述python模塊import和from及all

    python指定導入目錄路徑,稱為導入。 通過import和from導入模塊。 通過**all**指定導入的模塊和導入的
    的頭像 發表于 02-21 14:20 ?1380次閱讀

    Python SDK的使用

    Shodan Web端非常好用,但如果我們有從 Python 搜索的需求怎么辦? 沒關系,Shodan 官方也提供了 Python SDK ,下面就來講講這個 SDK 的使用。 1
    的頭像 發表于 10-30 15:51 ?900次閱讀
    <b class='flag-5'>Python</b> SDK<b class='flag-5'>包</b>的使用
    主站蜘蛛池模板: 美女被猛男躁免费视频网站 | 又粗又大撑满了好爽 | 日日操夜夜爱 | 欧美视频三区 | 曰本又色又爽又黄三级视频 | 免费在线视频你懂的 | 2022国产情侣真实露脸在线 | 免费理论片在线观看播放 | 最新人妖shemaletube人妖 最新日本免费一区二区三区中文 | 黄网址免费 | 国产播放啪视频免费视频 | 91高清在线成人免费观看 | 电影天堂在线观看三级 | 成年啪啪网站免费播放看 | 欧美精品影院 | 人人爽天天爽夜夜爽曰 | 嫩草影院网站入口 | 亚洲视频三区 | 手机看片日韩福利 | 久久青草精品一区二区三区 | 日日操夜夜操免费视频 | 五月天婷亚洲 | 天天草天天草 | 亚洲国产人成在线观看 | 日本韩国做暖暖小视频 | 国产大毛片 | 天堂网2021天堂手机版丶 | 萌白酱一线天粉嫩喷水在线观看 | 天天搞夜夜操 | 久久伊人成人网 | 天堂网a | 亚洲午夜在线视频 | 中文天堂最新版www官网在线 | 免费看黄色网页 | 美女扒开尿口让男生添 漫画 | 午夜看片影院在线观看 | 永久免费看片 | 国内在线观看精品免费视频 | 一区二区不卡在线观看 | 亚欧成人中文字幕一区 | 91桃色国产线观看免费 |