1. 程式人生 > >python函式之函式的定義

python函式之函式的定義

全部測試程式碼

#!/usr/bin/env python3
#_*_ coding:utf-8 _*_

#函式的定義
#def 方法名(引數列表):下一行縮排編寫方法體,返回值使用return,返回空可直接寫return
#將函式定義在py檔案中需要在python直譯器中使用from filename import  函式名  來匯入方法
#def my_abs(x):
#	if x >=0:
#		return x
#	else:
#		return -x

#print(my_abs(-100))


#空函式 pass 語句,一個方法裡面什麼都不做,定義一個空函式可以使用pass,pass相當於java中的todo
#pass用來佔位,現在不知道如何實現,先定義好這個方法,用pass佔位,等想好了思路再來寫具體的方法

#if age > 10:
#    pass
	
	
#引數檢查
	#1.函式中定義了一個引數,呼叫的時候傳了兩個,則會報型別錯誤
	#2.函式內部使用的int值,傳入的是str的時候,也會報型別錯誤
	#3.對輸入的型別進行判斷
#def my_abs(x):

#	if not isinstance(x,(int,float)):              #isinstance()接收兩個引數,引數1:判斷的物件,引數2,被判斷的物件或者物件集合
#		raise TypeError('bad operand type')
#	if x >= 0:
#		return x
#	else:
#		return -x
		
#		print('做了引數型別判斷後的--->',my_abs('a'))	
		
#返回多個值
import math

def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
	
r=move(100,100,60,math.pi/6)

print(r)
	

1.函式的定義

def 方法名(引數列表):下一行縮排編寫方法體,返回值使用return,返回空可直接寫return
def my_abs(x):
if x >=0:
	return x
else:
	return -x
print(my_abs(-100))

執行結果

在這裡插入圖片描述

2.空函式 pass

#一個方法裡面什麼都不做,定義一個空函式可以使用pass,pass相當於java中的todo
#pass用來佔位,現在不知道如何實現,先定義好這個方法,用pass佔位,等想好了思路再來寫具體的方法
if age > 10:
    pass

3.引數檢查

如果在第一段程式碼中,輸入str或者除int和float之外的型別,則會報型別錯誤,所以很有必要在變數使用之前作型別判斷

if not isinstance(x,(int,float)):              #isinstance()接收兩個引數,引數1:判斷的物件,引數2,被判斷的物件或者物件集合
		raise TypeError('bad operand type')
	if x >= 0:
		return x
	else:
		return -x

在這裡插入圖片描述

4.返回多個值

python支援返回一個或多個值,一個不可變的tuple

import math

def move(x, y, step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny
	
r=move(100,100,60,math.pi/6)

print(r)

執行結果

在這裡插入圖片描述

總結:
1,定義函式確定函式名和引數列表
2.引數傳入函式後,先對引數進行容錯處理,新增型別判斷
3.函式體內,使用return返回結果,不寫則表示return None;
4.函式可以return 一個或多個值,多個值時,是一個不可變的tuple

參考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431679203477b5b364aeba8c4e05a9bd4ec1b32911e2000