20201021 Python學習筆記9 2

2022-08-11 11:12:10 字數 3140 閱讀 4079

定義函式

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

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

def my_abs(x):

if x >= 0:

return x

else:

return -x

print(my_abs(-87))

函式體內部的語句執行時,一旦執行到return時,函式就執行完畢,並將結果返回。因此,函式內部通過條件判斷和迴圈可以實現非常複雜的邏輯。

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

def my_abs(x):

if x >= 0:

return x

else:

return -x

把my_abs()的函式定義儲存為q3.py檔案。那麼,可以在該檔案的當前目錄下啟動python直譯器,用from q3 import my_abs來匯入,用from q3 inport my_abs來匯入my_abs()函式,q3 是檔名(不帶.py副檔名),my_abs是定義的函式名

>>> from q3 import my_abs

>>> my_abs(-99)

99>>> my_abs(-33)

33>>>

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

for letter in 'python':

if letter == 'h':

pass

print ('這是 pass 塊')

print ('當前字母 :', letter)

print ("good bye")

執行結果

d:\桌面\python練習》python q3.py

當前字母 : p

當前字母 : y

當前字母 : t

這是 pass 塊

當前字母 : h

當前字母 : o

當前字母 : n

good bye

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

引數檢查

呼叫函式時,如果引數個數不對,python直譯器會自動檢查出來,並給typeerror

如果引數型別不對,python直譯器就無法幫我們檢查

當傳入了不恰當的引數時,內建函式abs會檢查出引數錯誤,而我們定義的my_abs沒有引數檢查,會導致if語句出錯,出錯資訊和abs不一樣。所以,這個函式定義不夠完善。

修改一下my_abs的定義,對引數型別做檢查,只允許整數和浮點數型別的引數。資料型別檢查可以用內建函式isinstance()實現:

def my_abs(x):

if not isinstance(x,(int,float)):

raise typeerror('bad operand type')

if x >= 0:

return x

else:

return -x

上面為**,下面為**報錯示例

>>> from q3 import my_abs

>>> my_abs(-222)

222>>> my_abs(-21,-33)

traceback (most recent call last):

file "", line 1, in typeerror: my_abs() takes 1 positional argument but 2 were given

>>> my_abs('qqq')

traceback (most recent call last):

file "", line 1, in file "d:\桌面\python練習\q3.py", line 21, in my_abs

raise typeerror('bad operand type')

typeerror: bad operand type

>>>

返回多個值

在遊戲中經常需要從乙個點移動到另乙個點,給出座標、位移和角度,就可以計算出新的座標:

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 語句表示匯入math包,並允許後續**引用math包裡的sin、cos等函式。

>>> from q3 import math

>>> 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,按位置賦給對應的值,所以,python的函式返回多值其實就是返回乙個tuple,但寫起來更方便。

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

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

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

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

函式可以同時返回多個值,但其實就是乙個tuple(元組)

學python的遊戲app 學Python

基本內容 學python軟體中的python教學內容涵蓋基礎概念 控制結構 函式模組 檔案操作 面試物件 函式程式設計 異常處理 正規表示式。通過簡短的課程和有趣的小測驗進行python學習衝浪。在突破乙個個學習小關口,展示你的it程式設計技能。python教程,講解了python基礎知識,也介紹了...

手機學python好嗎 學Python怎麼樣?

第一,更高的工作效率 這兩年python在業內大火的原因除了雲計算幫python帶來的熱潮之外,更多的是本身的特性。目前網際網路創業熱情高漲,創業者和投資者都希望投資回報週期快。因此,一門開發效率極高的語言就此進入開發者眼簾,眾多創業公司 python做為開發語言,催生了python在國內大熱的現象...

女生學python 女生適合學Python嗎?

學習程式設計對於性別沒有什麼特別強制的要求,不管是男生還是女生,都是可以的。可能在圈外行業來說,從事it行業的似乎都是格仔襯衫,髮量少且髮際線高,駝背戴眼鏡,經常揹著雙肩包,中年油膩大叔,不懂浪漫沒有情調等等,這些都是程式設計師的標籤。對於圈外人來說,程式設計師可能是西裝革履,品質貓屎咖啡,喝著下午...