函數(shù)
函數(shù)是什么
函數(shù)就是一個(gè)功能的封裝,然后可以可以被多次調(diào)用的代碼塊
函數(shù)定義
-
函數(shù)定義需要
def關(guān)鍵字
,函數(shù)的參數(shù)不是必須的,返回值也是,要是有參數(shù)一定要傳參數(shù)
-
要是
return沒有返回值
,或者連return都沒有
的,返回的是None
值 -
完整的函數(shù)包括
函數(shù)名,參數(shù),以及函數(shù)的實(shí)現(xiàn)語句
,縮進(jìn)屬于函數(shù)體,返回值是用來保存計(jì)算結(jié)果的
函數(shù)定義的規(guī)則
-
函數(shù)代碼以
def開頭,后接函數(shù)名加上()
-
傳入的
參數(shù)和自變量必須放在圓括號中間
,自定義的參數(shù)也放在圓括號內(nèi)
-
函數(shù)的起始用
:
并且用縮進(jìn)
-
return[表達(dá)式]
用來返回給調(diào)用,不帶return的返回None給調(diào)用者
函數(shù)定義的調(diào)用
就是用函數(shù)名()來調(diào)用的,自定義函數(shù)需要自己來定義的,而內(nèi)置函數(shù)不需要自己定義直接使用就好
函數(shù)的參數(shù)
要是函數(shù)定義參數(shù)時(shí),函數(shù)有
無默認(rèn)參數(shù)和有默認(rèn)參數(shù)時(shí)
無默認(rèn)參數(shù)的寫的前面,后面寫默認(rèn)的參數(shù)
-
必須參數(shù):就是
傳入的參數(shù)與函數(shù)定義順序的一致
-
關(guān)鍵字參數(shù):可以確定傳入的參數(shù)值,
允許調(diào)用時(shí)和定義時(shí)的參數(shù)順序不一樣
-
默認(rèn)參數(shù):如果函數(shù)調(diào)用的時(shí)候
沒有傳入?yún)?shù)就會調(diào)用默認(rèn)的參數(shù)
,就是參數(shù)在定義的時(shí)候賦值
了 - 不定長參數(shù):就是一個(gè)可變參數(shù),函數(shù)定義的時(shí)候沒確定參數(shù)有多少,可變參數(shù)名前加*,參數(shù)會放在一個(gè)元組中,元組的名稱就是可變參數(shù)名
函數(shù)的返回值
函數(shù)返回值可以返回任意數(shù)據(jù)類型哦
函數(shù)可以處理數(shù)據(jù),并且返回給操作者,返回值可以是輸出語句和一個(gè)值或者一組值
變量的作用域
每執(zhí)行一個(gè)函數(shù)就會創(chuàng)建一個(gè)命名空間,這個(gè)命名空間就是局部作用域,如果同一個(gè)函數(shù)在不同時(shí)間運(yùn)行,作用域是獨(dú)立的,
不同的函數(shù)參數(shù)名稱可以一樣
,其作用域也是獨(dú)立的,函數(shù)內(nèi)命名的參數(shù)在外面也可使用。
- 局部作用域:定義在函數(shù)的內(nèi)部,只能由函數(shù)的內(nèi)部來調(diào)用
- 全局作用域:定義在函數(shù)的外部,可以被函數(shù)內(nèi)部使用
- 內(nèi)置作用域:python預(yù)先定義的作用域
使用匿名函數(shù)
就是使用lambda表達(dá)式,不使用def來定義的函數(shù)
- lambda是一個(gè)表達(dá)式,函數(shù)體比def簡單
- lambda主體是表達(dá)式不是代碼塊,只能封裝簡單的邏輯代碼
- lambda有自己的命名空間,只能使用自己的參數(shù)
函數(shù)和模塊開發(fā)
函數(shù)的優(yōu)點(diǎn)就是代碼塊與主程序分離,通過使用描述性語句可以讓主程序更好的理解
還可以將函數(shù)導(dǎo)入模塊中,再將模塊導(dǎo)入主程序中
可以使用import函數(shù)來導(dǎo)入模塊:
優(yōu)點(diǎn)1:可以隱藏代碼,讓代碼處于高等的邏輯上
優(yōu)點(diǎn)2:可以在不同地方重用到這個(gè)函數(shù)
導(dǎo)入模塊的方法
- 需要創(chuàng)建一個(gè)模塊,模塊的擴(kuò)展名為.py
導(dǎo)入一個(gè)函數(shù)名
from 模塊 import 函數(shù)名:從模塊中導(dǎo)入函數(shù)名,這個(gè)適用與模塊中函數(shù)過多你只需要一個(gè)函數(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元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
