測試基礎筆記第十五天

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 一、集合
    • 1.集合的定義
    • 二、使用集合列表去重
  • 導包
  • 二、函數
    • 1.函數介紹
    • 2.定義函數
    • 3.調用函數
    • 4.函數實現登錄案例
    • 5.函數的返回值
  • 三、模塊和包
    • 1.模塊的概念(Module)
    • 2.模塊的導入方式-import
    • 3.模塊的導入方式-from...import
    • 3.模塊的導入順序
    • 4.__name__ 屬性
    • 5.包(Package)
    • 6.包操作案例
    • 7.斷言
  • 四、異常
    • 1.捕獲異常
    • 2.捕獲特定異常類型
    • 3.捕獲未知類型異常
    • 4.異常捕獲完整語法
    • 5.拋出異常


一、集合

1.集合的定義

  • 說明:集合中的數據是沒有重復的, 主要應用列表中的數據去重
  • 在這里插入圖片描述

二、使用集合列表去重

  • 1.使用隨機數生成 10 個 1-20 之間的隨機數
  • 2.對列表中的數據進行去重

導包

import random
#實現
test_data = []
for i in range(11):
item = random.randint(1, 20)
test_data.append(item)
print(test_data)
print(set(test_data))

二、函數

1.函數介紹

  • 說明:把具有獨立功能的代碼塊組織為一個小模塊,在需要的時候調用
  • 在這里插入圖片描述
  • 作用:對具備相同邏輯的代碼進行封裝, 提高代碼的編寫效率, 實現對代碼的重用

2.定義函數

  • 語法:def 函數名(參數1, 參數2…):
    函數封裝的代碼,可以使用傳遞進來的參數
    pass
  • 說明:

1.def是英文define 的縮寫
2. 函數名最好能夠表達函數內部封裝的代碼的功能, 方便
后續的獲取調用[見名知意]
3. 函數名命名遵循標識符命名規則: 字母, 數字, 下劃線, 不
能以數字開頭, 不用使用系統關鍵字
4. 定義時候的參數稱為形式參數,簡稱形參

3.調用函數

  • 語法:函數名(參數1, 參數2…):
  • 說法:
  1. 只定義函數, 不調用函數, 函數永遠不會被執行
  2. 不能將 函數調用 放在 函數定義 的上方,否則將會出現錯誤
  3. 函數調用時的參數稱為實際參數,簡稱實參

4.函數實現登錄案例

  • 需求:當手機號為”13488888888”,輸出“賬號成功”;否則“賬號錯誤”
  • 在這里插入圖片描述

5.函數的返回值

  • 語法:def 函數名(參數…):

    return xxx
  • 說明:如果想在函數調用處獲取函數定義內部的某個數據, 需要使用 return 關鍵字返回結果
  • 錯誤樣例:沒有返回值的函數,在函數調用處獲取的結果都是None

def demo():
name = “admin”
print(name) # admin
result = demo()
print(result) # None

  • 注意事項:
    ? return 關鍵字可以將函數定義內部的任意數據, 返回給函數調用處
    ? return 關鍵字也可以單獨使用, 表示提前結束函數調用, 但不返回任何數據

def demo():
name = “admin”
return name
print(name) # 注意:return 表示返回,后續的代碼都不會被執行
result = demo()
print(result) # admin

三、模塊和包

1.模塊的概念(Module)

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

2.模塊的導入方式-import

  • 語法:

import 模塊名1, 模塊名2
建議:在導入模塊時,每個導入獨占一行
import 模塊名1
import 模塊名2
如果模塊的名字太長,可以使用 as 指定模塊的名稱,以方便在代碼中的使用
import 模塊名1 as 模塊別名

  • 使用方式:導入之后,通過 模塊名. 使用模塊提供的工具(全局變量、函數、類)
  • 注意:模塊別名應該符合大駝峰命名法

3.模塊的導入方式-from…import

  • 如果希望 從某一個模塊 中,導入 部分 工具,就可以使用 from … import 的方式
  • import 模塊名 是 一次性 把模塊中 所有工具全部導入,并且通過 模塊名/別名 訪問
  • 語法:

#從 模塊 導入 某一個工具
from 模塊名1 import 工具名

  • 使用方式:不需要通過 模塊名.調用,可以直接使用模塊提供的工具(全局變量、函數、類)
  • 注意事項:
  1. 允許一行導入多個工具名: from 模塊名 import 工具名1, 工具名2
  2. 如果兩個模塊, 存在同名的工具, 那么后導入模塊的工具, 會覆蓋掉先導入的工具

3.模塊的導入順序

  • Python 解釋器在導入模塊時的順序是:
  1. 查找當前目錄下指定模塊名的文件, 如果有就直接導入
  2. 當前目錄下如果沒有, 則再查找系統目錄下的模塊
  • 注意:給模塊名時, 務必不要和系統模塊重名, 否則會直接影響系統模塊的導入!

4.name 屬性

  • 語法:

#根據 name 判斷是否執行下方代碼
if name == “main”:
pass

  • 作用: 處于該條件下的代碼, 只有是在當前模塊內執行時, 才會被運行
  • 原理: Python 內置屬性 name 的主要作用是記錄一個字符串信息
    l 當被其他模塊導入后運行時, name 屬性值為模塊名
    l 當在模塊內運行時, name 屬性值為 _main
  • 注意:一般情況下, 都需要將模塊內的調試代碼置于該條件下, 以防止被其他模塊導入后, 調試代碼也參與執行

5.包(Package)

  • 說明:包:(Package)是一個包含多個模塊的特殊目錄
  • l 目錄下有一個特殊的文件 __init__.py
    l 包名 的命名方式和 變量名 一致
    l 作用:python文件較多時,方便分目錄管理維護
  • 提示:提示:在 PyCharm 中支持直接創建包, 工程根目錄上鼠標右鍵 -> New -> PythonPackage
  • 常用尋包方式在這里插入圖片描述

6.包操作案例

  • login.py

#/api/login.py
def login(phone):
if phone == “13488888888”:
return “賬號正確”
else:
return “賬號錯誤”

  • test_login.py

#導包
from api.login import login
#調用
print(login(“13488888888”))
#斷言 assert
assert “賬號正確666” == login(“13488888888”)
在這里插入圖片描述

7.斷言

  • 說明:斷言:自動判斷實際結果和預期結果
  • 用法:
    ① 斷言相等:assert 預期結果 == 實際結果
    ② 斷言包含:assert 預期結果 in 實際結果
  • 結果:
    通過PASS: 不顯示
    失敗FAIL: 報錯并提示“AssertionError”

四、異常

1.捕獲異常

  • 語法:

try:
#嘗試執行的代碼
except:
#出現異常時執行的代碼
基本語法格式

  • 說明:
    try:嘗試,下方編寫要嘗試代碼,不確定是否能夠正常執行的代碼
    lexcept:如果有異常捕獲,下方編寫捕獲到異常,處理失敗的代碼

2.捕獲特定異常類型

  • 語法:

try:
#嘗試執行的代碼
except 異常類型:
#出現異常時執行的代碼
語法格式

  • 注意:
  1. 捕獲特定異常類型, 能夠實現僅在特定異常類型出現時, 代碼再做
    對應的處理
  2. 具體的異常類型可以先行從代碼執行的報錯信息中獲取, 在設置捕獲異常操作
  • 在這里插入圖片描述

3.捕獲未知類型異常

  • 語法:

try:
#嘗試執行的代碼
except Exception as e:
#出現異常時執行的代碼
print(‘異常信息為: {}’.format(e))

  • 說明:
    l 如果希望程序無論出現任何錯誤,都不會因為Python解釋器拋出異
    常而被終止,可以捕獲 Exception
    l except Exception as e: e表示捕獲到的異常對象,記錄異常的錯
    誤信息,e為慣用變量名,可以自定義

4.異常捕獲完整語法

  • 語法:

try:
#嘗試執行的代碼
pass
except 錯誤類型1:
#針對錯誤類型1,對應的代碼處理
pass
except 錯誤類型2:
#針對錯誤類型2,對應的代碼處理
pass
except Exception as e:
#打印錯誤信息
print(e)
finally:
#無論是否有異常,都會執行的代碼
pass

  • 說明:finally: 無論是否出現異常都會執行

5.拋出異常

  • 語法:

#創建異常對象
ex = Exception(“異常描述信息”)
#拋出異常對象
raise ex

  • Python 中提供了一個 Exception 異常類
  • 在開發時,如果滿足特定業務需求時希望拋出異常,可以:
  1. 創建 一個 Exception類 的 對象
  2. 使用 raise 關鍵字 拋出 異常對象

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78831.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78831.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78831.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux中的shell腳本練習

1.判斷字符串是否為空 #!/usr/bin/bash while : #:默認值為真 do read -p "請輸入你的密碼: " a pass123456 if [ -z $a ];thenecho "您輸入的密碼不能為空"exit 1 elseif [ $a $pass ];thenecho "登錄成功"breakelseecho "您的密碼輸入有…

使用命令關閉Redis服務端

使用命令關閉Redis服務端。 命令 redis-cli -a 111111 -p 6379 shutdown 有些人redis的端口不是6379,那就自己查一下 參數解釋: -a:Redis密碼 -p:Redis端口 shutdown:關閉命令

嵌入式RTOS實戰:uC/OS-III最新版移植指南(附項目源碼)

文章目錄 前言一、uC/OS簡介二、工程移植2.1 下載ucos源碼2.2 創建空白工程2.3 拷貝ucosiii源碼文件2.3.1 UC-CONFIG2.3.2 UC-CPU2.3.3 UC-LIB2.3.4 UC-OS3 2.3 添加工程文件分組及路徑2.4 代碼首次編譯2.5 源碼修改2.5.1 cpu_cfg.h2.5.2 os_cpu_c.c2.5.3 lib_cfg.h2.5.4 sys.h…

TypeScript中的函數類型定義與類型約束

函數類型定義與類型約束 一、核心概念:類型別名與函數類型 1. 類型別名(Type Alias) 定義 類型別名使用 type 關鍵字為現有類型創建一個新名稱,可以用于: 基礎類型(如 string、number)&…

相機DreamCamera2錄像模式適配尺寸

在開發中遇到 一個問題,相機切換視頻模式時,預覽時,界面不能充滿屏幕兩側有黑邊,客戶要求修改,在此記錄 一問題現象: 系統相機在視頻模式下預覽時如下現象如圖1,期望現象如圖2: 圖1 …

SpringCloud組件——Gateway

一.網關 1.問題提出 我們通過Eureka,Nacos解決了服務注冊,服務發現的問題,使用SpringCloud LoadBalance解決了負載均衡的問題,使用OpenFeign解決了遠程調用的問題。 但是當前所有微服務的接口都是直接對外暴露的,可…

C#中構造器及屬性的加載順序

一.基本原則: 先加載靜態構造函數和靜態字段,后加載普通構造函數和普通字段;先加載基類再加載子類; 二.具體的加載順序: 父類靜態字段--->父類靜態構造函數--->子類靜態字段--->子類靜態構造函數--->父類實例字段---> 父類實例構造函數--->子類實例字段-…

Python面試問題

一、Python 基礎 1. Python 的特點 動態類型:變量無需聲明類型。解釋型語言:逐行解釋執行。支持多種編程范式(面向對象、函數式、過程式)。 2. 列表(List)與元組(Tuple)的區別 特…

計算機視覺進化論:YOLOv12、YOLOv11與Darknet系YOLOv7的微調實戰對比

摘要 YOLO系列作為實時目標檢測領域的重要里程碑,持續引領速度與精度的平衡發展。本文圍繞YOLOv7(基于Darknet框架)、YOLOv11及YOLOv12,系統、深入地對比了三款模型的架構創新、微調策略、核心技術及應用場景。我們詳細解析了三者…

SQL Server 存儲過程開發規范

SQL Server 存儲過程開發規范(高級版) 1. 總則 1.1 目標 本規范旨在: 提高存儲過程的事務一致性、異常可追蹤性、錯誤透明度。 統一日志記錄、錯誤碼管理、鏈路追蹤(Trace ID)。 支持復雜事務場景(嵌套…

opendds的配置

配置的使用 文檔中說明有4種使用配置的方式: 環境變量 命令行參數(將覆蓋環境變量中的配置) 配置文件(不會覆蓋環境變量或命令行參數中的配置) 用戶調用的 API(將覆蓋現有配置) 這里對開發…

(Go Gin)上手Go Gin 基于Go語言開發的Web框架,本文介紹了各種路由的配置信息;包含各場景下請求參數的基本傳入接收

1. 路由 gin 框架中采用的路優酷是基于httprouter做的 HttpRouter 是一個高性能的 HTTP 請求路由器,適用于 Go 語言。它的設計目標是提供高效的路由匹配和低內存占用,特別適合需要高性能和簡單路由的應用場景。 主要特點 顯式匹配:與其他路由…

Marin說PCB之----板材的替換注意事項

由于最近很多武林上的主流門派都需要采用將的本方案,小編所在的宗門古族也是不例外了,宗門大長老韓立現在想把之前一直在用的板材EM370Z替換成生益的Autolad3,讓我去拿資料分析一下是否可以替換。下圖所示是就是小編我做的一個表格關于兩家板…

4月28日信息差全景:國際局勢、科技突破與市場震蕩一、國際政治與安全:俄烏沖突關鍵轉折

一、國際政治與安全:俄烏沖突關鍵轉折 1. 烏克蘭反攻進展與情報差異 前線動態: 俄國防部稱在頓涅茨克擊退烏軍三次進攻,摧毀12輛坦克;烏方則宣布在巴赫穆特南部推進2公里,雙方戰報存在顯著差異。 信息差根源:戰場信息管控導致西方媒體與俄媒報道截然不同。 國際援助: 美…

關系數據的可視化

目錄 【實驗目的】 【實驗原理】 【實驗環境】 【實驗步驟】 一、安裝Python所需要的第三方模塊 二、實驗 【實驗總結】 【實驗目的】 1.掌握關系數據在大數據中的應用 2.掌握關系數據可視化方法 3. python 程序實現圖表 【實驗原理】 在傳統的觀念里面&#xff0…

夏季道路安全的AI革命:節省人力、提升效率

AI夏季道路安全:用智能算法守護每一條街道 背景:夏季道路安全的挑戰與機遇 夏季是道路安全事件的高發期。高溫天氣容易導致駕駛員疲勞、行人行為異常(如跌倒或中暑),同時,車流量增加、夜間活動頻繁…

HTML標記語言_@拉鉤教育【筆記】

目錄 1.文本標簽 2.格式化標簽 3.圖片標簽 4.超鏈接標簽 5.表格標簽 6表單標簽 6.1 6.2 6.3 7.行內框架(超鏈接內套一個頁面) 8.多媒體標簽(音/視頻) 1.文本標簽 2.格式化標簽 3.圖片標簽 4.超鏈接標簽 5.表格標簽 6表單標簽 6.1 6.2 6.3 7.行內框架(超鏈接內套一個…

Python 中調用方法內部定義的類詳解(類在方法中的各種操作)

更多內容請見: python3案例和總結-專欄介紹和目錄 文章目錄 一、基本概念1.1 方法內部定義類概述1.2 方法內部定義類的特點1.3 替代方案二、基本使用2.1 直接在方法內部使用2.2 返回類定義供外部使用2.3 返回類的實例2.4 作為閉包使用(訪問外部變量)三、高級用法3.1 動態類創…

第36課 常用快捷操作——用“鼠標右鍵”退出當前命令

概述 在AD 20軟件中,很多的命令都是可以一直連續下去的,比方說放置一個元器件符號,如果你當中不取消的話,那就可以一直執行下去,放完一個接著放下一個,放完一個接著放下一個…… 想要退出這種連續進行的命…

FFTW3.3.10庫與QT結合的使用

FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT, 實測計算長度為10000的double數組, 單次運行時間在2ms左右。為了詳細了解FFTW以及為編程方便,特將用戶手冊看了一下,并結合手冊制作了以下…