函数
定义一个函数
#格式:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
定义一个功能为最大值的函数
def max(num1,num2):
if num1>num2:
return num1
else:
return num2
print(max(55,77))
77
在函数中可以进行类型判断处理,如果类型不合法则可以抛出错误
def sum(num1,num2):
if not (isinstance(num1,(int,float)) and isinstance(num1,(float,int))):
raise TypeError('参数类型错误')
return num1+num2
sum(3,5)
8
sum(3.5,2.2)
5.7
sum(2,'a')
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-32eeadf29e36> in <module>
----> 1 sum(2,'a')
<ipython-input-7-e8060baa8200> in sum(num1, num2)
2 if not (isinstance(num1,(int,float)) and isinstance(num1,(float,int))):
3 raise TypeError('参数类型错误')
----> 4 return num1+num2
TypeError: unsupported operand type(s) for +: 'int' and 'str'
返回值
函数可以返回多个值,具体如下:
# 定义一个函数可以返回两数进行运算之后的商和余数
def division(num1,num2):
yushu = num1%num2
shang = (num1-yushu)/num2
return shang,yushu
a,b = division(10,3)
a
3.0
b
1
当只有一个变量接受多个返回值的时候,那么这个变量就是元组
tuple = division(10,3)
tuple
(3.0, 1)
函数的参数
默认参数
在编写函数的时候,可以对某些参数进行设置默认值,那么在调用这个函数的时候,可以不传入该值而在调用过程中该值就是默认值
def personInfo(name, age, sex = '男'):
print('姓名:{}'.format(name),end = ' ')
print('年龄:{}'.format(age),end = ' ')
print('性别:{}'.format(sex),end = ' ')
personInfo('李明',22)
姓名:李明 年龄:22 性别:男
personInfo('黄丽', 25, '女')
姓名:黄丽 年龄:25 性别:女
关键字参数
在 Python 中,可以通过参数名来给函数传递参数,而不用关心参数列表定义时的顺序,这被称之为关键字参数
personInfo(name = '黄丽', sex = '女', age = 44)
姓名:黄丽 年龄:44 性别:女
不定长参数
在设计函数的时候,我们有时候无法确定传入的参数个数。
那么我们就可以使用不定长参数。
Python 提供了一种元组的方式来接受没有直接定义的参数。这种方式在参数前边加星号 * 。
def personInfo(name, age, sex = '男', * hobby):
print('姓名:{}'.format(name),end = ' ')
print('年龄:{}'.format(age),end = ' ')
print('性别:{}'.format(sex),end = ' ')
print('爱好:{}'.format(hobby),end = '')
personInfo('黄丽', 44,'女', '篮球','射箭','跑步')
姓名:黄丽 年龄:44 性别:女 爱好:('篮球', '射箭', '跑步')
如果是字典来表示,则可以表示为 **hobby
def personInfo(name, age, sex = '男', ** other):
print('姓名:{}'.format(name),end = ' ')
print('年龄:{}'.format(age),end = ' ')
print('性别:{}'.format(sex),end = ' ')
print('其他:{}'.format(other),end = '')
personInfo('黄丽', 44,'女', hobby = ('篮球','射箭','跑步'), university = ('深圳大学'))
姓名:黄丽 年龄:44 性别:女 其他:{'hobby': ('篮球', '射箭', '跑步'), 'university': '深圳大学'}