函數(shù)
函數(shù)是什么
函數(shù)就是一個功能的封裝,然后可以可以被多次調(diào)用的代碼塊
函數(shù)定義
-
函數(shù)定義需要
def關(guān)鍵字
,函數(shù)的參數(shù)不是必須的,返回值也是,要是有參數(shù)一定要傳參數(shù)
-
要是
return沒有返回值
,或者連return都沒有
的,返回的是None
值 -
完整的函數(shù)包括
函數(shù)名,參數(shù),以及函數(shù)的實現(xiàn)語句
,縮進屬于函數(shù)體,返回值是用來保存計算結(jié)果的
函數(shù)定義的規(guī)則
-
函數(shù)代碼以
def開頭,后接函數(shù)名加上()
-
傳入的
參數(shù)和自變量必須放在圓括號中間
,自定義的參數(shù)也放在圓括號內(nèi)
-
函數(shù)的起始用
:
并且用縮進
-
return[表達式]
用來返回給調(diào)用,不帶return的返回None給調(diào)用者
函數(shù)定義的調(diào)用
就是用函數(shù)名()來調(diào)用的,自定義函數(shù)需要自己來定義的,而內(nèi)置函數(shù)不需要自己定義直接使用就好
函數(shù)的參數(shù)
要是函數(shù)定義參數(shù)時,函數(shù)有
無默認(rèn)參數(shù)和有默認(rèn)參數(shù)時
無默認(rèn)參數(shù)的寫的前面,后面寫默認(rèn)的參數(shù)
-
必須參數(shù):就是
傳入的參數(shù)與函數(shù)定義順序的一致
-
關(guān)鍵字參數(shù):可以確定傳入的參數(shù)值,
允許調(diào)用時和定義時的參數(shù)順序不一樣
-
默認(rèn)參數(shù):如果函數(shù)調(diào)用的時候
沒有傳入?yún)?shù)就會調(diào)用默認(rèn)的參數(shù)
,就是參數(shù)在定義的時候賦值
了 - 不定長參數(shù):就是一個可變參數(shù),函數(shù)定義的時候沒確定參數(shù)有多少,可變參數(shù)名前加*,參數(shù)會放在一個元組中,元組的名稱就是可變參數(shù)名
函數(shù)的返回值
函數(shù)返回值可以返回任意數(shù)據(jù)類型哦
函數(shù)可以處理數(shù)據(jù),并且返回給操作者,返回值可以是輸出語句和一個值或者一組值
變量的作用域
每執(zhí)行一個函數(shù)就會創(chuàng)建一個命名空間,這個命名空間就是局部作用域,如果同一個函數(shù)在不同時間運行,作用域是獨立的,
不同的函數(shù)參數(shù)名稱可以一樣
,其作用域也是獨立的,函數(shù)內(nèi)命名的參數(shù)在外面也可使用。
- 局部作用域:定義在函數(shù)的內(nèi)部,只能由函數(shù)的內(nèi)部來調(diào)用
- 全局作用域:定義在函數(shù)的外部,可以被函數(shù)內(nèi)部使用
- 內(nèi)置作用域:python預(yù)先定義的作用域
使用匿名函數(shù)
就是使用lambda表達式,不使用def來定義的函數(shù)
- lambda是一個表達式,函數(shù)體比def簡單
- lambda主體是表達式不是代碼塊,只能封裝簡單的邏輯代碼
- lambda有自己的命名空間,只能使用自己的參數(shù)
函數(shù)和模塊開發(fā)
函數(shù)的優(yōu)點就是代碼塊與主程序分離,通過使用描述性語句可以讓主程序更好的理解
還可以將函數(shù)導(dǎo)入模塊中,再將模塊導(dǎo)入主程序中
可以使用import函數(shù)來導(dǎo)入模塊:
優(yōu)點1:可以隱藏代碼,讓代碼處于高等的邏輯上
優(yōu)點2:可以在不同地方重用到這個函數(shù)
導(dǎo)入模塊的方法
- 需要創(chuàng)建一個模塊,模塊的擴展名為.py
導(dǎo)入一個函數(shù)名
from 模塊 import 函數(shù)名:從模塊中導(dǎo)入函數(shù)名,這個適用與模塊中函數(shù)過多你只需要一個函數(shù)
導(dǎo)入全部函數(shù)名
from 模塊 import *:從模塊中導(dǎo)入全部的函數(shù)名
給函數(shù)用as起別名
導(dǎo)入的函數(shù)名過于復(fù)雜或者和本模塊的函數(shù)名稱一樣可以使用as來重命名
as的語法:
from 模塊 import 函數(shù)名 as 簡寫的函數(shù)名
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
