1.函数
1.1介绍
函数名其实就是指向一个函数对象的引用(地址),完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:
a=abs
print(a(-12))
1.2自定义一个函数
格式:def 函数名(参数名列表):
def myMax(a, b):
if not isinstance(a, (int, float)):
raise TypeError('bad operand type')
if not isinstance(b, (int, float)):
raise TypeError('bad operand type')
if a>b:
return a
else:
return b
print(myMax(121,16))
1.3 调用其他文件里的函数
如果你已经把my_abs()的函数定义保存为abstest.py文件了,
那么,可以在该文件的当前目录下启动Python解释器,
用from abstest import my_abs来导入my_abs()函数,
注意abstest是文件名(不含.py扩展名):
from MYFunction import myPrint
myPrint(12)
1.4 空函数
如果想定义一个什么事也不做的空函数,可以用pass语句:
实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。
pass还可以用在其他语句里,比如:
age=12
if age >= 18:
pass
定义函数的时候,并没有指明参数的类型,因此, 调用函数时,如果参数个数不对,Python解释器会自动检查出来
但是如果参数类型不对,Python解释器就无法帮我们检查
这个时候,我们需要对参数的类型进行判断让我们修改一下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
1.5返回多个值
Python 函数可以返回多个值吗?答案是肯定的。
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:
import math
def move(x, y, step, angle=0):