7 函式 呼叫及定義函式

2021-09-29 17:44:38 字數 2828 閱讀 5411

資料型別轉換

python內建的常用函式還包括資料型別轉換函式,比如int()函式可以把其他資料型別轉換為整數:

>>

>

int(

'123'

)123

>>

>

int(

12.34)12

>>

>

float

('12.34'

)12.34

>>

>

str(

1.23

)'1.23'

>>

>

str(

100)

'100'

>>

>

bool(1

)true

>>

>

bool(''

)false

函式名其實就是指向乙個函式物件的引用,完全可以把函式名賦給乙個變數,相當於給這個函式起了乙個「別名」

>>

> a =

abs# 變數a指向abs函式

>>

> a(-1

)# 所以也可以通過a呼叫abs函式

1

定義函式

python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回

例如,自定義乙個求絕對值的my_abs函式:

def

my_abs

(x):

if x >=0:

return x

else

:return

-x

ps:如果沒有return語句,函式執行完畢後也會返回結果,只是結果為nonereturn none可以簡寫為return

空函式

想定義乙個什麼事也不做的空函式,可以用pass語句:

def

nop():

pass

實際上pass可以用來作為佔位符,比如現在還沒想好怎麼寫函式的**,就可以先放乙個pass,讓**能執行起來。

pass還可以用在其他語句裡,比如:

if age >=18:

pass

缺少了pass,**執行就會有語法錯誤。

資料型別檢查

資料型別檢查可以用內建函式isinstance()實現:

def

my_abs

(x):

ifnot

isinstance

(x,(

int,

float))

:raise typeerror(

'bad operand type'

)if x >=0:

return x

else

:return

-x

返回多個值

python的函式返回多值其實就是返回乙個tuple。

import math

defmove

(x, y, step, angle=0)

: nx = x + step * math.cos(angle)

ny = y - step * math.sin(angle)

return nx, ny

>>> x, y = move(100, 100, 60, math.pi / 6)

>>> print(x, y)

151.96152422706632 70.0

但其實這只是一種假象,python函式返回的仍然是單一值:

>>> r = move(100, 100, 60, math.pi / 6)

>>> print(r)

(151.96152422706632, 70.0)

原來返回值是乙個tuple!但是,在語法上,返回乙個tuple可以省略括號,而多個變數可以同時接收乙個tuple,按位置賦給對應的值,例如:

x, y, z =(1

,2,3

)print

(x, y, z)

#輸出結果:1 2 3

所以,python的函式返回多值其實就是返回乙個tuple。

小結

定義函式時,需要確定函式名和引數個數;

如果有必要,可以先對引數的資料型別做檢查;

函式體內部可以用return隨時返回函式結果;

函式執行完畢也沒有return語句時,自動return none

函式可以同時返回多個值,但其實就是乙個tuple。

09 函式定義及呼叫

makefile 中支援函式的概念 自定義函式示例 define func1 echo my name is 0 endef define func2 echo my name is 0 echo param one is 1 echo param one is 2 endef test call ...

自定義函式及函式呼叫

在論壇中,發現有的道友對自定義函式的呼叫存在這以下問題 1 自定義函式宣告 函式呼叫 函式實現概念混淆 2 形參和實參混淆 3 自定義函式引數的傳值方式混淆 傳來傳去都不知道傳的到底是什麼?接下來,我就重點圍繞道友們常見的問題,說一說 1 自定義函式宣告 函式呼叫 函式實現 比如 交換兩個數的值的自...

C 函式指標定義及呼叫

今天在一問一答審核題目的時候發現乙個題目的題幹是錯的,主要意思就是定義乙個函式指標,現在將修改後的結果放上來,給出定義函式指標的方法 日期 2013.5.8 功能 定義函式指標,並且呼叫 includeusing namespace std int max int a,int b 返回二者之中較大者...