1. 程式人生 > >Python的函式與模組介紹之“養豬猿”

Python的函式與模組介紹之“養豬猿”

這一次我們來講python的函式和模組!

那什麼是函式呢?

這個問題先放一放,我們來回憶一個場景,是不是經常聽到程式猿的夥伴或大佬說這個包,那個包之類的,但自己就是不知道是啥?難道是LV?程式大大都是這麼有錢麼?

看下面這個圖:
在這裡插入圖片描述
這就是包,模組,類和函式之間的關係,當然這個類是什麼,你可以先放一邊等下一篇文章再瞭解,這次我們主要是關注函式和模組。

舉個“”python形成”的栗子:

函式+類->模組 模組+模組->包 函式+類+模組+包=Python

python的程式由包(package)、模組(module)和函式組成。模組是處理某一類問題的集合,模組由函式和類組成。包是由一系列模組組成的集合。
包就是一個完成特定任務的工具箱,python提供了許多有用的工具包,如字串處理、圖形使用者介面、Web應用、圖形影象處理等。使用自帶的這些工具包,可以提高程式設計師的開發效率,減少程式設計的複雜度,達到程式碼重用的效果。這些自帶的工具包和模組安裝在Python的安裝目錄下的lib子目錄中。

例如,lib目錄中的xml資料夾。xml資料夾就是一個包,這個包用於完成XML的應用開發。xml包中有幾個子包:dom、sax、etree和parsers。檔案__init__.py是xml包的註冊檔案,如果沒有該檔案,Python將不能識別xml包。在系統字典表中定義了xml包。

注意:包必須至少含有一個__init__.py檔案。init.py檔案的內容可以為空,它用於識別當前資料夾是一個包。

上面算是一個只是擴充吧,我們還是回到正題上來,python的函式與模組!

1.python的函式介紹

先背一段書:

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。

函式能提高應用的模組性,和程式碼的重複利用率。你已經知道Python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式。

函式中重要理解的概念是內建函式,自定義函式,匿名函式(lambda),函式呼叫,引數傳遞,全域性變數(global),區域性變數(local),return語句,這些一定要清楚的知道概念。

提供了個理解方法!定義函式就像是小學上課一樣,老師說我們假設一個一元二次函式 y = 2x**2(平方)+ 3x + 2,定義域x是多少,值域y是多少,把y匯入到另外兩個函式z = y + 3, g = Y +4 中使用,在z中y可以用,在g中y不可以用這種概念很像,自己頭腦中要有清晰的思路,當然有些概念是你之前沒理解的,多去吃些“栗子”就“飽”了。

主要架構,個人整理如下:
在這裡插入圖片描述
函式這關不會很難過,專心理解重要概念基本沒問題!

2.Python的模組

模組是python中重要的概念,python的程式是由一個個模組組成的。前面已經接觸到了模組,一個python檔案就是一個模組。

模組把一組相關的函式或程式碼組織到一個檔案中。一個檔案即是一個模組。模組由程式碼、函式或類組成。加入建立一個名為myModule.py的檔案,即定義了一個名為myModule的模組。在myModule模組中定義一個函式func()和一個類(暫時記住)MyClass 。MyClass類中定義一個方法myFun(),這些就組成了myModule這個模組。

大概意思是,把模組比喻成一個一個的豬圈(juan)(想象成那種大一點的,裡面一個隔間一個間隔de,然後有東南西北4個區域的那種),比較通俗易懂,豬仔仔們稱為函式,隔間就好比類,裡面的各種比如飼料,水,盆等雜物稱為編碼,粑粑為bug。(不想陷入無窮無盡的鏟粑粑(bug)中T_T)

要成為一個豬圈(juan),你至少得有pig,那就是函式,那有太多了不好管理,就分成隔間,這個隔間成為類,當然有些豬豬比較高貴也就自己在一個區域,這就是模組中的函式的概念,為什麼模組中可以有函式,因為這個pig比較重要,有著它無與倫比的作用!其他就是各種雜物堆積擺放,然後整體構成了模組。

然後模組就構成了我們這個養豬場(python)(偷笑),原來我們是養豬猿!

下面是模組的主要架構了:
在這裡插入圖片描述

Python有很多內建的庫也就是所謂的模組,最常用到的見到的是sys,os,math,re(正則表示式),random,threading,Json,XML,datetime等,具體的就是不多介紹,想知道里面都是有什麼,有什麼作用,使用圖片中所說的print(dir( )),當然要先import(模組),或者from (模組) import (方法)了,記得!少年,切記!切記!

說了這麼多,對於python主要架構的方面,後面還會介紹面向物件的程式設計,然後就不再對python做過多介紹了,後面如果大家有需求,或者遇到了比較有意義,會針對個別的函式用法或者概念進行詳細介紹。

因為要回到我的正題了,人工智了個能吶!不能懈怠,你想看到電腦程式識別圖片麼?生成圖片?識別語音?文字翻譯?

當然這些都是可以實現的,不過得慢慢的深入。

人生苦短,不如先學python!

我是極客Array,一個愛好python和深度學習的養豬猿!喜歡我就請關注我,期待與你分享更好的資訊!