python與C系列語言的差異總結(4)

如果具有傳統編譯型語言的經驗,大家可能會對是否使用字典而猶豫不決,擔心字典的效率比列表或數組低。事實上Python字典的執行速度已經相當快了。Python語言的許多內部特性都依賴于字典,為提高字典的效率已經投入了大量的心血。Python的所有數據結構都經過了高度優化,因此不應該花太多時間去考慮哪個更快,哪個效率更高。

pass語句也可在Python中需要語句的其他任何地方使用。pass語句用作語句的占位符,但是它不執行任何操作:

if x < 5:passelse:x = 5

Python沒有提供case(或switch)語句。閱讀工作中的代碼,可以發現Switch/case語句在實際開發中使用頻率確實很低。

與其他Python對象一樣,函數也可以被賦值。函數可以被放入列表、元組或字典中。這個特性和C系列語言的函數指針類似。不過用起來更加簡約。真正將函數做到了對象一樣。

在大多數其他語言采用case或switch語句的場合,Python可以用串聯的if…elif…elif…else結構來很好地應對。如果遇到極少數棘手的場合,通常可用函數字典來解決,如下所示:

def do_a_stuff():#process adef do_b_stuff():#process bdef do_c_stuff():#processfunc_dict ={'a':do_a_stuff,'b':do_b_stuff,'c':do_c_stuff }X = 'a'func dict[x]()#運行字典中的函數

在使用變量之前,用global語句對其進行聲明,可以顯式地使其成為全局(global)變量。函數可以訪問和修改全局變量。全局變量存在于函數之外,所有將其聲明為全局變量的其他函數,以及函數之外的代碼,也可以對其進行訪問和修改。以下示例演示了局部變量和全局變量的差異:

 def fun():global aa = 1b = 2

nonlocal語句與global語句類似,它會讓標識符引用最近的閉合作用域(enclosing scope)中已綁定的變量。

字符串的format函數可以實現類似C系列語言的格式化功能。

python的函數內部還可以定義函數。

g_var =0#inner_test 函數中的g_var 綁定為同名的頂級變量nl_var =0print("top level-> g_var: {0} nl_var: {1}".format(g_var, nl_var))def test():nl_var = 2#inner_test函數中的nl_var 綁定為 test 函數中的同名變量print("in test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))def inner_test():#inner_test g_var 綁定為同名的頂級變量global g_var#inner_test函數中的nl_var 綁定為test 函數中的同名變量nonlocal nl_varg_var =1nl_var =4print("inner_test-> g_var: {0} nl_var:{1}".format(g_var, nl_var))inner_test()print("in test->g_var: {0} nl_var:{1}".format(g_var, nl_var))test()print("top level-> g_var: {0} nl_var:{1}".format(g_var, nl_var))

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

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

相關文章

[Web 安全] 反序列化漏洞 - 學習筆記

關注這個專欄的其他相關筆記&#xff1a;[Web 安全] Web 安全攻防 - 學習手冊-CSDN博客 0x01&#xff1a;反序列化漏洞 — 漏洞介紹 反序列化漏洞是一種常見的安全漏洞&#xff0c;主要出現在應用程序將 序列化數據 重新轉換為對象&#xff08;即反序列化&#xff09;的過程中…

深入理解C語言中的位段

在C語言編程中&#xff0c;我們常常會遇到需要對內存進行精細控制的場景&#xff0c;位段&#xff08;bit - field&#xff09;便是C語言提供的一種強大工具&#xff0c;它允許我們在一個字節或多個字節內對數據進行按位的定義和操作&#xff0c;極大地提高了內存使用效率。 一…

實現使用RBF(徑向基函數)神經網絡模擬二階電機數學模型中的非線性干擾,以及使用WNN(小波神經網絡)預測模型中的非線性函數來抵消遲滯影響的功能

下面將詳細介紹如何實現使用RBF&#xff08;徑向基函數&#xff09;神經網絡模擬二階電機數學模型中的非線性干擾&#xff0c;以及使用WNN&#xff08;小波神經網絡&#xff09;預測模型中的非線性函數來抵消遲滯影響的功能。我們將按照以下步驟進行&#xff1a; 步驟1&#x…

Grouped-Query Attention(GQA)詳解: Pytorch實現

Grouped-Query Attention&#xff08;GQA&#xff09;詳解 Grouped-Query Attention&#xff08;GQA&#xff09; 是 Multi-Query Attention&#xff08;MQA&#xff09; 的改進版&#xff0c;它通過在 多個查詢頭&#xff08;Query Heads&#xff09;之間共享 Key 和 Value&am…

ReentrantLock 用法與源碼剖析筆記

&#x1f4d2; ReentrantLock 用法與源碼剖析筆記 &#x1f680; 一、ReentrantLock 核心特性 &#x1f504; 可重入性&#xff1a;同一線程可重復獲取鎖&#xff08;最大遞歸次數為 Integer.MAX_VALUE&#xff09;&#x1f527; 公平性&#xff1a;支持公平鎖&#xff08;按等…

基于GO語言的車牌識別api技術-港澳車牌文字識別

隨著科技的飛速發展&#xff0c;智能化管理逐漸滲透到我們生活的方方面面。車牌識別技術作為智能交通的重要組成部分&#xff0c;不僅極大提升了交通管理的效率&#xff0c;還為市民出行帶來了更多便利。而港澳地區的車牌識別技術&#xff0c;憑借其高效、精準、快速的特點&…

基于 DeepSeek LLM 本地知識庫搭建開源方案(AnythingLLM、Cherry、Ragflow、Dify)認知

寫在前面 博文內容涉及 基于 Deepseek LLM 的本地知識庫搭建使用 ollama 部署 Deepseek-R1 LLM知識庫能力通過 Ragflow、Dify 、AnythingLLM、Cherry 提供理解不足小伙伴幫忙指正 &#x1f603;,生活加油 我站在人潮中央&#xff0c;思考這日日重復的生活。我突然想&#xff0c…

PCB設計常用布局布線方法

PCB設計常用布局布線方法 **1.模塊化布局&#xff0c;**先放大器件再放小器件。 立創在原理圖框完后&#xff0c;在PCB快捷shiftp 2.布局對齊美觀 3.重要信號線優先處理 分類再畫 4.減少Stub布線&#xff1a;就是避免為連接的線段&#xff0c;防止產生“天線效應”&#xff…

Mac 版 本地部署deepseek ? RAGflow 知識庫搭建流程分享(附問題解決方法)

安裝&#xff1a; 1、首先按照此視頻的流程一步一步進行安裝&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知識庫搭建流程分享_嗶哩嗶哩_bilibili 2、RAGflow 官網文檔指南&#xff1a;https://ragflow.io 3、RAGflow 下載地址&#xff1a;https://github.com/infi…

娛閑放鬆篇2

最近看了好多動畫和以前的新聞&#xff0c;都挺有想法&#xff0c;可以了解一下 有些是N年前的&#xff0c;希望見怪莫怪 若說如何用最小作用量去理解世界觀的話&#xff0c;其實就是書&#xff0c;以動畫的角度來看&#xff0c;日本動畫足以 一.高達系列 一系列的利用巨大…

OpenIPC開源FPV之Adaptive-Link安裝

OpenIPC開源FPV之Adaptive-Link安裝 1. 源由2. 介紹2.1 天空端安裝2.2 地面端安裝 3. 問題匯總3.1 安裝腳本問題3.2 網絡安裝問題3.3 非SSC30KQ/SSC338Q硬件3.4 代碼疑問 4. 總結5. 后續 1. 源由 鑒于飛行過程&#xff0c;發現一些馬賽克現象&#xff0c;且60FPS桌面30FPS的錄…

解析第十一頁

多選707、如圖所示組網,SWA、SWB、SWC、SWD運行RSTP,則以下說法正確的是? A、可以在SWB的GE0/0/2端口開啟邊緣端口,讓連接終端的接口快速進入轉發狀態 B、邊緣端口收到BPDU之后會重新參與生成樹的計算 C、可以在SWC的GEO/0/2端口開啟邊緣端口,讓連接終端的接口快速進入轉…

禾邁電力電子嵌入式面經和參考答案

CMakeLists 怎么寫? CMakeLists.txt 是 CMake 構建系統的配置文件,用于描述項目的構建規則和依賴關系。以下是一個簡單的 CMakeLists.txt 示例及基本寫法說明。 首先,指定 CMake 的最低版本要求,例如cmake_minimum_required(VERSION 3.10)。 然后,定義項目名稱,如project…

我的AI工具箱Tauri版-FluxCharacterGeneration參考圖像生成人像手辦(Flux 版)

本教程基于自研的AI工具箱Tauri版進行ComfyUI工作流FluxCharacterGeneration參考圖像生成人像手辦&#xff08;Flux 版&#xff09;。 我的AI工具箱Tauri版 - FluxCharacterGeneration參考圖像生成人像手辦&#xff08;Flux版&#xff09; 基于先進的FLUX模型&#xff0c;通過…

什么是DrawCall?DrawCall為什么會影響游戲運行效率?如何減少DrawCall?

目錄 1 什么是DrawCall&#xff1f; 2 DrawCall為什么會影響游戲運行效率&#xff1f; 3 如何減少 DrawCall&#xff1f;&#xff08;結合性能分析工具&#xff09; 1 什么是DrawCall&#xff1f; DrawCall&#xff08;繪制調用&#xff09; 是 GPU 的一個指令&#xff0c…

深入解析提示詞:從基礎到結構化應用

在人工智能蓬勃發展的當下&#xff0c;提示詞&#xff08;Prompt&#xff09;扮演著至關重要的角色。無論是在與聊天機器人交流&#xff0c;還是驅動復雜智能體完成任務&#xff0c;精準且高效的提示詞都能起到事半功倍的效果。本文將帶你全面了解提示詞&#xff0c;深入探索結…

【前端基礎】Day 2 HTML

目錄 1.表格標簽 2.列表標簽 3.表單標簽 4.綜合案例 5.查閱文檔 1.表格標簽 <body><table align"center" border"1" cellpadding"0" cellspacing"0" width"500" height"100"><thead> …

R與RStudio簡介及安裝

目錄 一、R與RStudio關系 二、R簡介 2.1. 發展歷史 2.2. R語言特點 三、安裝指南 3.1 R安裝指南 3.2 R studio安裝指南 一、R與RStudio關系 R是統計領域廣泛使用的工具&#xff0c;屬于GNU系統的一個自由、免費、源代碼開放的軟件&#xff0c;是 用于統計計算和統計繪圖…

20分鐘 Bash 上手指南

文章目錄 bash 概念與學習目的第一個 bash 腳本bash 語法變量的使用位置參數管道符號&#xff08;過濾條件&#xff09;重定向符號條件測試命令條件語句case 條件分支Arrayfor 循環函數exit 關鍵字 bash 腳本記錄歷史命令查詢文件分發內容 bash 概念與學習目的 bash&#xff0…

django校園互助平臺~源碼

博主介紹&#xff1a;?程序猿徐師兄、8年大廠程序員經歷。全網粉絲15w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;…