一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python-模塊、包、異常

汽車電子技術(shù) ? 來源:程序猿知秋 ? 作者: 程序猿知秋 ? 2023-02-16 15:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

異常

概念

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

異常捕獲

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

語法

try:
  嘗試執(zhí)行代碼
 except:
   出現(xiàn)錯誤的處理

錯誤類型

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

語法

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

示例

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


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


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

輸出結(jié)果

圖片

異常的傳遞

  • 當(dāng)函數(shù)/方法 執(zhí)行出現(xiàn)異常,會將異常傳遞給 函數(shù)/方法 的調(diào)用一方
  • 如果 傳遞到主程序 ,仍然 ** 沒有異常處理** ,程序才會被終止

主動拋出異常

  • 在開發(fā)中,除了 代碼執(zhí)行出錯 Python ** 解釋器 拋出異常之外** ,還可以根據(jù) 應(yīng)用程序特有的業(yè)務(wù)需求 ,主動拋出異常
  • Python 中提供了一個 Exception 異常類
  • 如果想要主動拋出異常
    • 創(chuàng)建一個 Exception 的對象
    • 使用 raise 關(guān)鍵字拋出異常

**示例

**

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


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


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

**輸出結(jié)果

**

圖片

模塊

概念

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

import 導(dǎo)入示例

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


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


# 方式三,導(dǎo)入后使用別名
import 模塊1 as 模塊別名

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

from... import 導(dǎo)入

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


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

示例

import random as rd
from tqdm import tqdm


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


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

輸出結(jié)果

圖片

原則

  • 每一個文件都應(yīng)該是可以被導(dǎo)入的
  • 一個獨(dú)立的 Python 文件就是一個** 模塊**
  • 在導(dǎo)入文件時,文件中** 所有沒有任何縮進(jìn)的代碼** 都會被執(zhí)行一遍

**name **屬性

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

**示例 **

cal.py 文件內(nèi)容

name ="張三"


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


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


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

hello3.py 文件內(nèi)容

import cal


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

執(zhí)行 hello3.py 的結(jié)果

圖片

如果不想執(zhí)行 cal.py 模塊中打印的內(nèi)容,可以加 if name ==" main "

name ="張三"


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


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


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

修改完 cal.py 后,再次執(zhí)行 hello3.py 文件

圖片

概念

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

** init .py 文件**

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

示例

圖片

圖片

圖片

圖片

制作模塊

發(fā)布模塊

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

圖片

圖片

圖片

安裝模塊

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

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

    圖片

    圖片

卸載模塊

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

**pip 安裝第三方模塊

**

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

示例

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3825

    瀏覽量

    82739
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4826

    瀏覽量

    86518
  • 解釋器
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    6739
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問python-樹莓派如何通過按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)?

    步進(jìn)電機(jī)驅(qū)動原理是什么?python-樹莓派如何通過按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)?
    發(fā)表于 10-09 08:45

    python常見異常類型

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

    什么是python、模塊和庫?

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

    python常規(guī)與命名空間

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

    python-控制khr3hv-master機(jī)器人

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

    python-速成指南

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

    在Anaconda中安裝pythonseaborn

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

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

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

    python、模塊和庫是什么

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

    詳解python常規(guī)與命名空間

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

    Python-模塊

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

    python模塊相對導(dǎo)入from和import介紹1

    文件**init**.py下,python通過import module導(dǎo)入模塊時,先搜索程序運(yùn)行主目錄。 程序運(yùn)行主目錄為運(yùn)行的py文件所在目錄,而不是執(zhí)行python.e
    的頭像 發(fā)表于 02-21 14:15 ?1218次閱讀

    python模塊相對導(dǎo)入from和import介紹2

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

    簡述python模塊import和from及all

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

    Python SDK的使用

    Shodan Web端非常好用,但如果我們有從 Python 搜索的需求怎么辦? 沒關(guān)系,Shodan 官方也提供了 Python SDK ,下面就來講講這個 SDK 的使用。 1
    的頭像 發(fā)表于 10-30 15:51 ?1018次閱讀
    <b class='flag-5'>Python</b> SDK<b class='flag-5'>包</b>的使用