列表生成式,生成器表達式,模塊的使用

三元表達式
無論條件成立與否都要返回一個值,
用于簡化僅有一個判斷的函數(或代碼塊)
遞歸
遞歸有循環調用的次數限制,調用函數時,函數相關數據要入棧,而棧區是有限的
二分查找法
匿名函數
僅能在定義時使用一次,定義完了就沒了
參數沒有括號,不能有return,會自動把函數體的執行結果當做返回值
函數體只能有一個表達式 且不能換行
內置函數
max min sorted map filter reduce


1.列表生成式
2.生成器表達式
3.模塊的使用*****
3.1 模塊的分類
3.2 自定義模塊
3.3 模塊的兩種方式
3.4 模塊的搜索順序

列表生成式
一個快速生產列表的表達式
語法[表達式 for in 遍歷]
語法[表達式 for in 遍歷 if 條件]
生成器表達式
生成數據的函數 函數體中yield關鍵字 yield 暫停函數的執行 還能返回一個值
可以使用一種快速創建生成器的表達式
語法(表達式 for in 循環 if 條件)
與列表生成式完全相同

目前使用函數來編寫代碼 雖然大幅度降低了代碼冗余,并且組織結構清晰多了
但是隨著項目功能的增加如果還將代碼全放一個文件中,將會出現以下問題
1.維護性差
2.函數太多結構也不清晰,可讀性差
3.對于相同功能的函數,如果在不同文件中都要使用,就只能復制粘貼 又出現了重復代碼


1.如何拆分文件
2.拆開后如何再使用文件中的內容
上述問題的解決方案就是拆分模塊

什么是模塊
模塊就是一堆功能的集合體,以py文件的形式存在
簡單的就是具備一堆函數的py文件
模塊的分類
1.自定義模塊(重點學習),包含第三方模塊(學習用法即可)
2.內置模塊 例如time os(主要學怎么使用)
3.經過編譯后的C或C++庫,以DLL形式存在(忽略)
4.包(本質就是一個文件夾,其中包含了一堆模塊)

import 用于導入一個模塊
會立即執行模塊中的代碼
導入模塊時發生了什么
1.創建了一個名稱空間
2.執行模塊中的代碼,將內部名稱與值的對應關系存儲到名稱空間中
3.在當前執行文件創建一個名字,該名字指向被導入模塊的名稱空間

注意:模塊之間的名稱空間是相互獨立的
模塊中的代碼僅在第一次被導入時執行

pycharm會自動幫你檢測 項目根目錄下的模塊
給以給你一些提示,但是對于不再根目錄下的,他可能會報錯
這是pycharm 的問題 不影響執行

給被導入的模塊取別名
import xxx as xx
print()

from導入模塊
使用from 導入時 會把import后的名字直接放入當前名稱空間
使用時可以不寫前綴
注意:可能會與當前名稱空間中的名字沖突
如果真的沖突了 會就近查找 誰最后定義我就用誰

*通配符 會將模塊中所有名字全部導入
極容易出現名稱沖突,要慎用

該特殊變量 用于指定哪些名字可以被*導入
__all__ = ['func']

執行文件的兩種方式:
__name__屬性可以獲取當前這個模塊的名字
當這個文件作為執行文件被執行時,__name__的值時__main__
當這個文件被導入執行時,__name__的值時模塊的名字


使用模塊時必須先找到對應的模塊文件,這就涉及到查找(搜索)路徑
1.查找內存中已存在的
2.內置的
3.sys.path
sys.modules 可以看到內存中已經加載的模塊
當你要使用的模塊不在執行文件同一級下時,就找不到
pycharm會自動把項目根目錄加入syspath
如果碰巧你要找的文件就在項目根目錄下,就能找到
但是如果你換了一個運行環境不在pycharm,就有可能找不到
所以為了保證你的項目在哪都能運行,我們需要自己將要使用的文件路徑添加到sys.path中
可以將sys.path理解為解釋器的環境變量
如果你的執行文件在根目錄下,就能夠訪問到當前項目中的所有文件,無須關心sys.path

內置函數
abs 絕對值
all 如果所有元素都為True 結果為True
any 任意一個元素為True 結果為True
ascii 將參數轉為asc 如果asc不支持這個字符就轉unicode
bin 轉為二進制
oct 轉為八進制
hex 轉為十六進制
bytearray 字節數組
bytes 轉為字節
callable 是否可調用
chr 數字轉asc對應的字符
ord 按照asc字符轉數字
compile 把對象轉為指定的字節碼
complex 轉為復數形式
dir 查看該對象中所有可用的名字(函數和變量)
divmod 得到商和余數
enumerate 枚舉 把一個值和數字對應
eval 可以幫你把一個字符串的內容轉換成python數據類型 但是這并不是他的本職工作
frozenset 凍結一個集合
globals 查看全局名稱空間中的所有名字
locals 查看局部名稱空間中的所有迷你工資 在全局位置調該函數 看到也是全局
hash 可以校驗一個數據是不是可變
可hash的都是不可變的 不可hash都是可變的

轉載于:https://www.cnblogs.com/gengbinjia/p/10288522.html

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

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

相關文章

C#怎么用代碼模擬手機去訪問手機網站抓取數據

WebClient client new WebClient ();client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");更改user-agent為手機瀏覽器的。模擬谷歌Android:user-agent"Mozilla/5.0 (Linux; …

angular6 iframe應用

問題一、 iframe如何自適應屏幕高度 解決思路&#xff1a;通過設置iframe外層父元素高度等于window高度&#xff0c;再相對于父元素定位iframe元素&#xff1b;案例如下&#xff1a; 第一步: 模板文件中使用iframe // demo.component.html <div style"position: relati…

jquery下載地址:https://code.jquery.com/jquery/ 影響范圍: 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷,可能導致LOCA

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min…

Myeclipse常用快捷鍵

2019獨角獸企業重金招聘Python工程師標準>>> Ctrl1 快速修復 CtrlD: 刪除當前行 CtrlQ 定位到最后編輯的地方 CtrlL 定位在某行 CtrlO 快速顯示 OutLine CtrlT 快速顯示當前類的繼承結構 CtrlW 關閉當前Editer CtrlK 快速定位到下一個 CtrlE 快速顯示當前Edi…

數字三角形

問題描述 &#xff08;圖&#xff13;.&#xff11;&#xff0d;&#xff11;&#xff09;示出了一個數字三角形。 請編一個程序計算從頂至底的某處的一條路徑&#xff0c;使該路徑所經過的數字的總和最大。●每一步可沿左斜線向下或右斜線向下走&#xff1b;●1&#xff1c;三…

版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min.…

RabbitMQ學習總結(6)——消息的路由分發機制詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、Routing(路由) (using the Java client)在前面的學習中&#xff0c;構建了一個簡單的日志記錄系統&#xff0c;能夠廣播所有的日志給多個接收者&#xff0c;在該部分學習中&#xff0c;將添加一個新的特點&#xff0…

Kaggle爆文:一個框架解決幾乎所有機器學習問題

上周一個叫 Abhishek Thakur 的數據科學家&#xff0c;在他的 Linkedin 發表了一篇文章 Approaching (Almost) Any Machine Learning Problem&#xff0c;介紹他建立的一個自動的機器學習框架&#xff0c;幾乎可以解決任何機器學習問題&#xff0c;項目很快也會發布出來。 這篇…

C# HttpWebRequest GET HTTP HTTPS 請求

這個需求來自于我最近練手的一個項目&#xff0c;在項目中我需要將一些自己發表的和收藏整理的網文集中到一個地方存放&#xff0c;如果全部采用手工操作工作量大而且繁瑣&#xff0c;因此周公決定利用C#來實現。在很多地方都需要驗證用戶身份才可以進行下一步操作&#xff0c;…

HttpStatusCode

https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?viewnetframework-4.7.2 422 UnprocessableEntity What HTTP status response code should I use if the request is missing a required parameter? Status 422 seems most appropiate based on the…

numpy 和tensorflow 中的乘法

矩陣乘法&#xff1a;tf.matmul() np.dot() &#xff0c; 逐元素乘法&#xff1a;tf.multiply() np.multiply()轉載于:https://www.cnblogs.com/lizhiqing/p/10307760.html

啟用了不安全的HTTP方法

安全風險&#xff1a;可能會在Web 服務器上上載、修改或刪除Web 頁面、腳本和文件。可能原因&#xff1a;Web 服務器或應用程序服務器是以不安全的方式配置的。修訂建議&#xff1a;如果服務器不需要支持WebDAV&#xff0c;請務必禁用它&#xff0c;或禁止不必要的HTTP 方法。方…

Mysql學習總結(4)——MySql基礎知識、存儲引擎與常用數據類型

2019獨角獸企業重金招聘Python工程師標準>>> 1、基礎知識 1.1、數據庫概述 簡單地說&#xff1a;數據庫&#xff08;Database或DB&#xff09;是存儲、管理數據的容器&#xff1b;嚴格地說&#xff1a;數據庫是“按照某種數據結構對數據進行組織、存儲和管理的容器”…

django權限二(多級菜單的設計以及展示)

多級權限菜單設計級標題欄 我們現在只有數據展示,要進入其他url還需要手動的輸入路徑,非常的麻煩,所以我們要設計 一個導航欄以及側邊多級菜單欄,這個展示是通過stark組件的設計的增刪改查頁面,而 每一個 頁面我們都需要有導航欄和側邊的權限菜單欄,所以把這個公共的部分提起到…

6.17 dokcer(一)Compose 簡介

Compose 簡介 Compose 項目是 Docker 官方的開源項目&#xff0c;負責實現對 Docker 容器集群的快速編排。從功能上看&#xff0c;跟 OpenStack 中的 Heat 十分類似。 其代碼目前在 https://github.com/docker/compose 上開源。 Compose 定位是 「定義和運行多個 Docker 容器的…

【系統架構理論】一篇文章精通:Spring Cloud Netflix Eureka

是官方文檔的總結 http://spring.io/projects/spring-cloud-netflix#overview 講解基于2.0.2版本官方文檔 https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html Netflix提供了以下功能&#xff1a; 服務發現&am…

Flink DataStream 編程入門

流處理是 Flink 的核心&#xff0c;流處理的數據集用 DataStream 表示。數據流從可以從各種各樣的數據源中創建&#xff08;消息隊列、Socket 和 文件等&#xff09;&#xff0c;經過 DataStream 的各種 transform 操作&#xff0c;最終輸出文件或者標準輸出。這個過程跟之前文…

騰訊手游如何提早揭露游戲外掛風險?

目前騰訊SR手游安全測試限期開放免費專家預約&#xff01;點擊鏈接&#xff1a;手游安全測試立即預約&#xff01; 作者&#xff1a;sheldon&#xff0c;騰訊高級安全工程師 商業轉載請聯系騰訊WeTest獲得授權&#xff0c;非商業轉載請注明出處。 文中動圖無法顯示&#xff0c…

基于ARM Cortex-M0+ 的Bootloader 參考

源&#xff1a; 基于ARM Cortex-M0內核的bootloader程序升級原理及代碼解析轉載于:https://www.cnblogs.com/LittleTiger/p/10312784.html

小猿圈web前端之網站性能優化方案

現在前端不僅要能做出一個網站頁面&#xff0c;還要把這個頁面做的炫酷&#xff0c;那需要很大程度的優化&#xff0c;那么怎么優化才更好呢&#xff1f;小猿圈總結了一下自己優化的方案&#xff0c;感興趣的朋友可以看一下。一般網站優化都是優化后臺&#xff0c;如接口的響應…