在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回,return满足条件就不再执行下面的语句,也可以用print输出。
1.定义函数
自定义一个年龄段的判断函数,当输入的年龄大于等于18返回’adult‘,如果输入的值是非×××则返回错误
#!/usr/bin/env python3 # -*- coding: utf-8 -*-#file:def_age def my_age(x): if not isinstance(x,(int)): raise TypeError('bad operand type') elif x>=18: return ('adult') elif x<7: return ('child') else: return ('young')
2.调用自定义函数
有三种调用自定义函数的方法
1.如果自定义函数已经保存成了文件,
>>> from def_age import my_age>>> my_age(20)'adult'>>>
在文件目录下打开编译器,由于自定义函数不是内部函数,需要先导入函数,注意def_age不需要带后缀.py
2.在代码内部给定值调用
#!/usr/bin/env python3 # -*- coding: utf-8 -*-#file:def_age def my_age(x): if not isinstance(x,(int)): raise TypeError('bad operand type') elif x>=18: return ('adult') elif x<7: return ('child') else: return ('young') print(my_age(22))
不需要先导入函数,直接执行文件即可,但是这种方法不够灵活。
3.在代码内部先定义变量再调用函数
#!/usr/bin/env python3 # -*- coding: utf-8 -*-#file:def_age def my_age(x): if not isinstance(x,(int)): raise TypeError('bad operand type') elif x>=18: return ('adult') elif x<7: return ('child') else: return ('young') age=22my_age(age)
同样这种方法不够灵活
3.创建空函数
空函数也就是函数不包含执行代码,用pass作为代码块,pass代码什么都不做;有时候某块代码还没想好怎么写有为了不影响整个代码的运行,可以先存pass让代码先跑起来。
def my_dinf(): pass
pass还可以放在其它代码中,比如:
#!/usr/bin/env python3 # -*- coding: utf-8 -*-#file:def_age def my_age(x): if not isinstance(x,(int)): raise TypeError('bad operand type') elif x>=18: pass elif x<7: return ('child') else: return ('young') age=22print (my_age(age))
还是刚才的年龄段判断函数,现在在elif x>=18:代码块下面使用pass,当满足该条件后什么都不做,整个代码正常执行。