1. 程式人生 > >Python學習筆記__2.2章 定義函數

Python學習筆記__2.2章 定義函數

編程語言 Python

# 這是學習廖雪峰老師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章 定義函數