定義函式
在python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。
自定義乙個求絕對值的my_abs函式:
def my_abs(x):函式體內部的語句執行時,一旦執行到return時,函式就執行完畢,並將結果返回。因此,函式內部通過條件判斷和迴圈可以實現非常複雜的邏輯。if x >= 0:
return x
else:
return -x
print(my_abs(-87))
如果沒有return語句,函式執行完畢後也會返回結果,只是結果為none。return none 可以簡寫為return。
def my_abs(x):把my_abs()的函式定義儲存為q3.py檔案。那麼,可以在該檔案的當前目錄下啟動python直譯器,用from q3 import my_abs來匯入,用from q3 inport my_abs來匯入my_abs()函式,q3 是檔名(不帶.py副檔名),my_abs是定義的函式名if x >= 0:
return x
else:
return -x
>>> from q3 import my_abs空函式 : pass 如果想定義乙個什麼也不做的空函式,可以用pass語句>>> my_abs(-99)
99>>> my_abs(-33)
33>>>
for letter in 'python':執行結果if letter == 'h':
pass
print ('這是 pass 塊')
print ('當前字母 :', letter)
print ("good bye")
d:\桌面\python練習》python q3.pypass 語句可以作為佔位符,比如現在還沒想好怎麼寫函式的**,就可以先放乙個pass,讓**能執行起來。當前字母 : p
當前字母 : y
當前字母 : t
這是 pass 塊
當前字母 : h
當前字母 : o
當前字母 : n
good bye
引數檢查
呼叫函式時,如果引數個數不對,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 mathimport math 語句表示匯入math包,並允許後續**引用math包裡的sin、cos等函式。def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
>>> from q3 import math但其實這只是一種假象,python函式返回的仍然是單一值:>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0
>>>
>>> r = move (100, 100, 60, math.pi / 6)原來返回值是乙個tuple!但是,在語法上,返回乙個tuple可以省略括號,而多個變數可以同時接收乙個tuple,按位置賦給對應的值,所以,python的函式返回多值其實就是返回乙個tuple,但寫起來更方便。>>> print(r)
(151.96152422706632, 70.0)
>>>
定義函式時,需要確定函式名和引數個數;
如果有必要,可以先對引數的資料型別做檢查;
函式體內部可以用return隨時返回函式結果;
函式執行完畢也沒有return語句時,自動return none
函式可以同時返回多個值,但其實就是乙個tuple(元組)
學python的遊戲app 學Python
基本內容 學python軟體中的python教學內容涵蓋基礎概念 控制結構 函式模組 檔案操作 面試物件 函式程式設計 異常處理 正規表示式。通過簡短的課程和有趣的小測驗進行python學習衝浪。在突破乙個個學習小關口,展示你的it程式設計技能。python教程,講解了python基礎知識,也介紹了...
手機學python好嗎 學Python怎麼樣?
第一,更高的工作效率 這兩年python在業內大火的原因除了雲計算幫python帶來的熱潮之外,更多的是本身的特性。目前網際網路創業熱情高漲,創業者和投資者都希望投資回報週期快。因此,一門開發效率極高的語言就此進入開發者眼簾,眾多創業公司 python做為開發語言,催生了python在國內大熱的現象...
女生學python 女生適合學Python嗎?
學習程式設計對於性別沒有什麼特別強制的要求,不管是男生還是女生,都是可以的。可能在圈外行業來說,從事it行業的似乎都是格仔襯衫,髮量少且髮際線高,駝背戴眼鏡,經常揹著雙肩包,中年油膩大叔,不懂浪漫沒有情調等等,這些都是程式設計師的標籤。對於圈外人來說,程式設計師可能是西裝革履,品質貓屎咖啡,喝著下午...