Python學習筆記__2.2章 定義函數
# 這是學習廖雪峰老師python教程的學習筆記
1、定義函數
定義一個函數需要有函數名、參數、函數體。函數體中最好還有 傳入的參數判斷
1.1、函數創建
定義一個函數用def,數據類型檢查用isinstance。例子如下:
def my_abs(x):
if not isinstance(x, (int, float)): # 判斷傳入的參數,是否是 ××× 或 浮點形
raise TypeError('bad operand type') # 拋出錯誤
if x >= 0:
return x
else:
return -x
1.2、空函數創建
如果想定義一個什麽事也不做的空函數,可以用pass語句
def nop():
pass
pass語句什麽都不做。在沒想好代碼怎麽寫時,用作占位符
1.3、函數的導入
用 import 可以從寫好的.py 腳本中導入函數,也可導入系統的自帶模塊,以使用該模塊裏的函數
導入系統模塊
import math
導入 math模塊後,我們就能用math.sqrt()函數
從.py腳本導入(文件名不寫後綴)
form test import quadratic
從test文件中,導入quadratic 函數
1.4、函數返回多個值
定義函數
import math
def move(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
解釋
>>>r = move(100, 100, 60, math.pi / 6)
>>>print(r)
(151.96152422706632, 70.0)
返回的多個函數值,其實是一個tuple,在語法上,返回一個tuple可以省略括號
1.5、總結
定義函數時,需要確定函數名和參數個數;
如果有必要,可以先對參數的數據類型做檢查;
函數體內部可以用return隨時返回函數結果;
函數執行完畢也沒有return語句時,自動return None。
函數可以同時返回多個值,但其實就是一個tuple。
2、例子
定義一個函數quadratic(a, b, c),接收3個參數,返回一元二次方程:
ax2 + bx + c = 0 的兩個解。
提示:計算平方根可以調用math.sqrt()函數:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
def quadratic(a,b,c):
n = b*b - 4*a*c # b*b == b**2。可類推 b**3,b**4 …..
if n<0:
print('無實解')
elif n==0:
x= -b/(2*a)
return x
else:
x1=(-b + math.sqrt(n))/(2*a)
x2=(-b - math.sqrt(n))/(2*a)
return x1,x2
Python學習筆記__2.2章 定義函數