日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python调用函数怎么表示_Python---7函数(调用定义函数)

發(fā)布時間:2024/7/23 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用函数怎么表示_Python---7函数(调用定义函数) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

函數(shù)

Python內(nèi)置了很多有用的函數(shù),我們可以直接調(diào)用。

要調(diào)用一個函數(shù),需要知道函數(shù)的名稱和參數(shù),比如求絕對值的函數(shù)abs(),只有一個參數(shù)。可以直接從Python的官方網(wǎng)站查看文檔:

也可以在交互式命令行通過help(abs)查看abs函數(shù)的幫助信息。

調(diào)用方法一:直接使用,填寫參數(shù)

調(diào)用abs函數(shù):

>>> abs(100)

100

>>> abs(-20)

20

>>> abs(12.34)

12.34

調(diào)用函數(shù)的時候,如果傳入的參數(shù)數(shù)量不對,會報TypeError的錯誤,并且Python會明確地告訴你:abs()有且僅有1個參數(shù),但給出了兩個:

>>> abs(1, 2)

Traceback (most recent call last):

File "", line 1, in

TypeError: abs() takes exactly one argument (2 given)

如果傳入的參數(shù)數(shù)量是對的,但參數(shù)類型不能被函數(shù)所接受,也會報TypeError的錯誤,并且給出錯誤信息:str是錯誤的參數(shù)類型:

>>> abs('a')

Traceback (most recent call last):

File "", line 1, in

TypeError: bad operand type for abs(): 'str'

而max函數(shù)max()可以接收任意多個參數(shù),并返回最大的那個:

>>> max(1, 2)

2

>>> max(2, 3, 1, -5)

3

數(shù)據(jù)類型轉(zhuǎn)換

Python內(nèi)置的常用函數(shù)還包括數(shù)據(jù)類型轉(zhuǎn)換函數(shù),比如int()函數(shù)可以把其他數(shù)據(jù)類型轉(zhuǎn)換為整數(shù):

>>> 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

調(diào)用方法二:函數(shù)對象引用,賦值變量,變量中寫參數(shù)

函數(shù)名其實就是指向一個函數(shù)對象的引用,完全可以把函數(shù)名賦給一個變量,相當(dāng)于給這個函數(shù)起了一個“別名”:

>>> a = abs # 變量a指向abs函數(shù)

>>> a(-1) # 所以也可以通過a調(diào)用abs函數(shù)

1

二、定義函數(shù)

在Python中,定義一個函數(shù)要使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回。

我們以自定義一個求絕對值的my_abs函數(shù)為例:

請注意,函數(shù)體內(nèi)部的語句在執(zhí)行時,一旦執(zhí)行到return時,函數(shù)就執(zhí)行完畢,并將結(jié)果返回。因此,函數(shù)內(nèi)部通過條件判斷和循環(huán)可以實現(xiàn)非常復(fù)雜的邏輯。

如果沒有return語句,函數(shù)執(zhí)行完畢后也會返回結(jié)果,只是結(jié)果為None。return None可以簡寫為return。

在Python交互環(huán)境中定義函數(shù)時,注意Python會出現(xiàn)...的提示。函數(shù)定義結(jié)束后需要按兩次回車重新回到>>>提示符下:

┌────────────────────────────────────────────────────────┐

│Command Prompt - python - □ x │

├────────────────────────────────────────────────────────┤

│>>> def my_abs(x): │

│... if x >= 0: │

│... return x │

│... else: │

│... return -x │

│... │

│>>> my_abs(-9) │

│9 │

│>>> _ │

│ │

│ │

└────────────────────────────────────────────────────────┘

把my_abs()的函數(shù)定義保存為abstest.py文件了,那么,可以在該文件的當(dāng)前目錄下啟動Python解釋器,

用from abstest import my_abs來導(dǎo)入my_abs()函數(shù),注意abstest是文件名(不含.py擴展名):

┌────────────────────────────────────────────────────────┐

│Command Prompt - python - □ x │

├────────────────────────────────────────────────────────┤

│>>> from abstest import my_abs │

│>>> my_abs(-9) │

│9 │

│>>> _ │

│ │

└────────────────────────────────────────────────────────┘

空函數(shù)

如果想定義一個什么事也不做的空函數(shù),可以用pass語句:

def nop():

pass

pass語句什么都不做,那有什么用?實際上pass可以用來作為占位符,比如現(xiàn)在還沒想好怎么寫函數(shù)的代碼,就可以先放一個pass,讓代碼能運行起來。

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

if age >= 18:

pass

缺少了pass,代碼運行就會有語法錯誤。

錯誤輸入:

    輸出:

正確輸入:

    輸出:

錯誤輸入:

    輸出:

參數(shù)檢查

調(diào)用函數(shù)時,如果參數(shù)個數(shù)不對,Python解釋器會自動檢查出來,并拋出TypeError:

>>> my_abs(1, 2)

Traceback (most recent call last):

File "", line 1, in

TypeError: my_abs() takes 1 positional argument but 2 were given

但是如果參數(shù)類型不對,Python解釋器就無法幫我們檢查。試試my_abs和內(nèi)置函數(shù)abs的差別:

>>> my_abs('A')

Traceback (most recent call last):

File "", line 1, in

File "", line 2, in my_abs

TypeError: unorderable types: str() >= int()

>>> abs('A')

Traceback (most recent call last):

File "", line 1, in

TypeError: bad operand type for abs(): 'str'

當(dāng)傳入了不恰當(dāng)?shù)膮?shù)時,內(nèi)置函數(shù)abs會檢查出參數(shù)錯誤,而我們定義的my_abs沒有參數(shù)檢查,會導(dǎo)致if語句出錯,出錯信息和abs不一樣。所以,這個函數(shù)定義不夠完善。

讓我們修改一下my_abs的定義,對參數(shù)類型做檢查,只允許整數(shù)和浮點數(shù)類型的參數(shù)。

數(shù)據(jù)類型檢查可以用內(nèi)置函數(shù)isinstance()實現(xiàn):

添加了參數(shù)檢查后,如果傳入錯誤的參數(shù)類型,函數(shù)就可以拋出一個錯誤:

輸入:

  輸出:

返回多個值

函數(shù)可以返回多個值嗎?答案是肯定的。

比如在游戲中經(jīng)常需要從一個點移動到另一個點,給出坐標(biāo)、位移和角度,就可以計算出新的新的坐標(biāo):

import math

def move(x, y, step, angle=0):

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

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

return nx, ny

import math語句表示導(dǎo)入math包,并允許后續(xù)代碼引用math包里的sin、cos等函數(shù)。

然后,我們就可以同時獲得返回值:

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

>>> print(x, y)

151.96152422706632 70.0

輸入:

  輸出:

但其實這只是一種假象,Python函數(shù)返回的仍然是單一值:

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

>>> print(r)

(151.96152422706632, 70.0)

原來返回值是一個tuple!但是,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應(yīng)的值,所以,Python的函數(shù)返回多值其實就是返回一個tuple,但寫起來更方便。

總結(jié)

以上是生活随笔為你收集整理的python调用函数怎么表示_Python---7函数(调用定义函数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。