python基礎(chǔ)教程之自定義函數(shù)介紹
函數(shù)最重要的目的是方便我們重復(fù)使用相同的一段程序。
將一些操作隸屬于一個(gè)函數(shù),以后你想實(shí)現(xiàn)相同的操作的時(shí)候,只用調(diào)用函數(shù)名就可以,而不需要重復(fù)敲所有的語(yǔ)句。
函數(shù)的定義
首先,我們要定義一個(gè)函數(shù), 以說(shuō)明這個(gè)函數(shù)的功能。
def square_sum(a,b):
c = a**2 + b**2
return c
這個(gè)函數(shù)的功能是求兩個(gè)數(shù)的平方和。
首先,def,這個(gè)關(guān)鍵字通知python:我在定義一個(gè)函數(shù)。square_sum是函數(shù)名。
括號(hào)中的a, b是函數(shù)的參數(shù),是對(duì)函數(shù)的輸入。參數(shù)可以有多個(gè),也可以完全沒(méi)有(但括號(hào)要保留)。
我們已經(jīng)在循環(huán)和選擇中見過(guò)冒號(hào)和縮進(jìn)來(lái)表示的隸屬關(guān)系。
c = a**2 + b**2 # 這一句是函數(shù)內(nèi)部進(jìn)行的運(yùn)算
return c # 返回c的值,也就是輸出的功能。Python的函數(shù)允許不返回值,也就是不用return。
return可以返回多個(gè)值,以逗號(hào)分隔。相當(dāng)于返回一個(gè)tuple(定值表)。
return a,b,c # 相當(dāng)于 return (a,b,c)
在Python中,當(dāng)程序執(zhí)行到return的時(shí)候,程序?qū)⑼V箞?zhí)行函數(shù)內(nèi)余下的語(yǔ)句。return并不是必須的,當(dāng)沒(méi)有return, 或者return后面沒(méi)有返回值時(shí),函數(shù)將自動(dòng)返回None。None是Python中的一個(gè)特別的數(shù)據(jù)類型,用來(lái)表示什么都沒(méi)有,相當(dāng)于C中的NULL。None多用于關(guān)鍵字參數(shù)傳遞的默認(rèn)值。
函數(shù)調(diào)用和參數(shù)傳遞
定義過(guò)函數(shù)后,就可以在后面程序中使用這一函數(shù)
print square_sum(3,4)
Python通過(guò)位置,知道3對(duì)應(yīng)的是函數(shù)定義中的第一個(gè)參數(shù)a, 4對(duì)應(yīng)第二個(gè)參數(shù)b,然后把參數(shù)傳遞給函數(shù)square_sum。
(Python有豐富的參數(shù)傳遞方式,還有關(guān)鍵字傳遞、表傳遞、字典傳遞等,基礎(chǔ)教程將只涉及位置傳遞)
函數(shù)經(jīng)過(guò)運(yùn)算,返回值25, 這個(gè)25被print打印出來(lái)。
我們?cè)倏聪旅鎯蓚€(gè)例子
a = 1
def change_integer(a):
a = a + 1
return a
print change_integer(a)
print a
#===(Python中 "#" 后面跟的內(nèi)容是注釋,不執(zhí)行 )
b = [1,2,3]
def change_list(b):
b[0] = b[0] + 1
return b
print change_list(b)
print b
第一個(gè)例子,我們將一個(gè)整數(shù)變量傳遞給函數(shù),函數(shù)對(duì)它進(jìn)行操作,但原整數(shù)變量a不發(fā)生變化。
第二個(gè)例子,我們將一個(gè)表傳遞給函數(shù),函數(shù)進(jìn)行操作,原來(lái)的表b發(fā)生變化。
對(duì)于基本數(shù)據(jù)類型的變量,變量傳遞給函數(shù)后,函數(shù)會(huì)在內(nèi)存中復(fù)制一個(gè)新的變量,從而不影響原來(lái)的變量。(我們稱此為值傳遞)
但是對(duì)于表來(lái)說(shuō),表傳遞給函數(shù)的是一個(gè)指針,指針指向序列在內(nèi)存中的位置,在函數(shù)中對(duì)表的操作將在原有內(nèi)存中進(jìn)行,從而影響原有變量。 (我們稱此為指針傳遞)
總結(jié)
def function_name(a,b,c):
statement
return something # return不是必須的
函數(shù)的目的: 提高程序的重復(fù)可用性。
return None
通過(guò)位置,傳遞參數(shù)。
基本數(shù)據(jù)類型的參數(shù):值傳遞
表作為參數(shù):指針傳遞
練習(xí):
寫一個(gè)判斷閏年的函數(shù),參數(shù)為年、月、日。若是是閏年,返回True
相關(guān)文章
Python實(shí)現(xiàn)匯率轉(zhuǎn)換操作
這篇文章主要介紹了Python實(shí)現(xiàn)匯率轉(zhuǎn)換操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Python獲取運(yùn)行目錄與當(dāng)前腳本目錄的方法
這篇文章主要介紹了Python獲取運(yùn)行目錄與當(dāng)前腳本目錄的方法,涉及Python目錄操作與系統(tǒng)相關(guān)變量的獲取技巧,需要的朋友可以參考下2015-06-06
ERLANG和PYTHON互通實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了ERLANG和PYTHON互通過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
python 疊加等邊三角形的繪制的實(shí)現(xiàn)
這篇文章主要介紹了python 疊加等邊三角形的繪制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python使用requests庫(kù)進(jìn)行請(qǐng)求重試
在進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),由于網(wǎng)絡(luò)波動(dòng)、服務(wù)器繁忙等原因,可能會(huì)出現(xiàn)請(qǐng)求失敗的情況,為了提高請(qǐng)求的成功率,我們可以使用請(qǐng)求重試機(jī)制,本文就來(lái)講講如何在 Python 中使用 requests 庫(kù)進(jìn)行請(qǐng)求重試吧2023-06-06
pandas實(shí)現(xiàn)to_sql將DataFrame保存到數(shù)據(jù)庫(kù)中
這篇文章主要介紹了pandas實(shí)現(xiàn)to_sql將DataFrame保存到數(shù)據(jù)庫(kù)中,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07

