调用函数:
Python 内置了很多的函数
调用一个函数,必须要知道函数的名称和参数:
abs() 绝对值
cmp() 比较函数
数据类型的转换
函数的别名:
因为函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于你就是给这个函数起了一个别名
比如说:a = abs 变量a指向abs函数
调用Python的函数,需要根据函数定义,传入正确的参数。如果函数调用出错,一定要学会看错误
信息,所以英文很重要
函数的定义:
定义语法:
定义一个函数要使用def语句,依次写出函数名,括号,括号中的参数,然后还有一个冒号:,最后在缩进的模块中编写函数体,函数的返回值用return语句返回
def 函数名(参数):
空函数:
空函数的定义,可以使用pass语句
def nop():
pass
这个空函数的作用可以充当占位符,有时候这个pass是必不可少的,少了他程序就会出错
参数检查:
系统中的函数当我们调用的时候,如果说我们调用错误,或者是传入的参数不对的时候,他有一个参数检查,并且会返回一个TypeError,但是我们自定义的函数是没有这项功能的,所以需要
我们自己自定义一个参数检查
数据类型的检查我们可以使用系统内置的函数isinstance来实现
现在就拿我们自定义的绝对值函数来举个列子,这个绝对值函数的参数类型只能是整型或者是字符型,
下面的 raise 的作用就是当有异常的时候,可以用raise莱尔决定该做什么,即使没有异常,也可以使用raise来定义满足了特定的条件之后抛弃某某某异常
下面就是一个参数检查的实例:
def my_abs(x):
if not isinstance(x,(int ,float)):
raise TypeError('bad operand type')
if x < 0:
return -x
else:
return x
函数返回多个值:
[root@git python]# cat move.py
#!/usr/bin/env python
#Author:Big_Bao
x = int(input('input your x number:'))
y = int(input('input your y number:'))
step = int(input('input your step number:'))
#angle = float(input('input your angle number:'))
import math
def move(x,y,step,angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx,ny
print move(x,y,step,math.pi/6)
返回的其实就是一个元祖(tuple),语法山,返回一个元祖可以省略括号,而多个变量可以同时接收一个元祖(tuple),按位置赋值,所以python的函数返回多值就是返回一个元祖
注意:
(1)定义函数的时候,需要确定函数名和函数参数
(2)在定义函数的时候,如果有必要,可以先对函数的数据类型做检查
(3)定义函数的内部使用return返回函数的结果
(4)函数执行完毕没有return语句的时候,自动执行return None(也可以咋定义的时候写 return )
(5)函数可以同时返回多个值,但是它其实就是一个元祖(tuple)