函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。python
函數能提升應用的模塊性,和代碼的重複利用率。你已經知道Python提供了許多內建函數,好比print()。但你也能夠本身建立函數,這被叫作用戶自定義函數。面試
定義一個由本身想要功能的函數,如下是規則:編程
一、函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。編程語言
二、任何傳入參數和自變量必須放在圓括號中間,圓括號之間能夠用於定義參數。函數
三、函數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明。spa
四、函數內容以冒號起始,而且縮進。.net
五、return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。翻譯
一、python中定義函數所用的關鍵字是def, def 函數名() : 冒號代替其餘編程語言的大括號,而後換行縮進寫的代碼就是函數體。( ```是文檔註釋)code
def demo01(): ''' 打印一個簡單的函數 ''' print("Hello!") demo01()
二、函數也能夠嵌套。對象
def demo02(name): def demo03(name): print('字母:' + name) demo03(name) demo02('A')
三、python當中容許給函數的形參設置一個默認值,不傳參數調用的話,就會使用默認值。
def welcome(name = 'A'): print("Hello !" + name) welcome("B") welcome()
打印:
Hello !B
Hello !A
四、關鍵字參數讓你能夠不須要考慮函數的參數位置,只要以鍵值對形式指定參數的對應形參。
def welcome(name,address): print("你好 {name} , 歡迎來到 {address} !") welcome(address='這裏',name='aaa')
五、有時須要容許用戶提供任意數量的參數,函數的形參能夠帶個星號來接收,無論調用函數的時候傳遞了多少實參,都將被收集到形參這個變量當中,形參的類型是元組。
def welcome(*names): print(names) welcome('aaa','bbb','ccc','ddd')
還有一種就是帶兩個星號的形參,用於接收鍵值對形式的實參,導入到函數中的類型是字典。
def welcome(**names): print(names) welcome(name='aaa',age=20,sex='男')
六、分配參數是收集參數的相反操做,可以使得一個元組或字典變量自動分配給函數中的形參。
def welcome(name,address): print(f"你好 {name} , 歡迎來到 {address} !") a = ('aaa','這裏') welcome(*a)
七、全部的函數都是有返回值的,若是沒有指定返回值,那麼默認會返回None。對應其餘語言中的null。
八、匿名函數,區別與正常函數定義的流程,能夠直接定義一個簡單的函數並把函數自己賦值給一個變量,使得這個變量能夠像函數同樣被調用,在python中能夠用lambda關鍵字來申明定義一個匿名函數。
源碼編譯爲字節碼(.pyc) ——> Python虛擬機 ——> 執行編譯好的字節碼 ——> Python虛擬機將字節碼翻譯成相對應的機器指令(機器碼)。
程序運行時,先編譯字節碼並保存到內存中,當程序運行結束後,Python解釋器將內存中的字節碼對象寫到.pyc文件中。
第二次運行時,先從硬盤中尋找.pyc文件,若是找到,就直接載入,不然再次執行上面的過程。
Python經常使用數據類型:整型(int)、浮點型(float)、字符串(string)、空值(None)、布爾值(True和False)、複數、類、函數等。
Python中常量的命名規則,變量名全大寫爲常量。變量的命名遵循標識符的命名規則。
對象:建立數據對象時,內存中會保存對象的值,這個值就是對象本身;
引用:對象保存在內存空間,外部想要使用對象的值,就須要使用引用來操做對象。當對象的引用爲0時,對象會被回收。
一、可變數據對象:列表(list)和字典(dict)
二、不可變數據對象:整型(int)、浮點型(float)、字符串(string)和元組類型(tuple)
不可變數據類型:對象自己的值不可變,若是改變了變量的值,至關於新建了一個對象,而對於相同值的對象,在內存中只有一個對象。
可變數據類型:容許變量的值進行改變,對於變量給值的過程當中,只是改變了變量的值,而不會新建一個對象,因此可變數據類型的意思就是說對一個變量進行操做時,其值是可變的,值的變化並不會引發新建對象,即地址是不會變的,只是地址中的內容變化了或者地址獲得了擴充。,不過對於相同的值的不一樣對象,在內存中則會存在不一樣的對象,即每一個對象都有本身的地址,至關於內存中對於同值的對象保存了多份,這裏不存在引用計數,是實實在在的對象。
做爲自學過的人,我深深體會過沒人帶,沒人問的感受,因此我想把本身所學、實際工做中使用的技術、自學方法、心得、踩過的一些坑以及面試題都分享出來,羣175317069。已經有不少同行加入羣裏,平時會交流一些技術問題,也能夠互相介紹好的工做機會。