7函数与抽象
简单定义一个函数
def function(x,y):
return x+y
a=function(2,4)
print(a)
-------------------------------------------------------------------------------------------
6
通过def语句来对一个期望函数进行定义,通过定义的函数名称来调用该函数。
关于函数的参数设置
1设置一个默认值参数
def greeting(n,gender='male'):
s='Mr' if gender=='male' else 'Miss'
sname=s+n
print('hi'+sname)
在定义函数的过程中,我们给了gender一个默认的参数male,如果用户没有输入参数的话,系统将按照默认的参数来执行。
2我们可以通过提供给函数一个非只读类型的参数,在函数内部进行外部数据的修改。(例如,字典,列表)当我们想确保参数是非只读类型的话,可以通过assert进行断言。
3通过使用关键字参数我们可以改变参数设置的顺序
def greeting(name,gender):
name=name.title()
s="Mr" if gender=='male' else 'Miss'
print('hi',s,name)
-------------------------------------------------------------------------------------------greeting(gender='male',name='henry')
4任意数量参数设置与参数分配
def myprint(title,*contents):
print(title,":")
for x in contents:
print(x)
该参数设置后contens可以吸收任意数量的参数并且将这些数据组成一个元组
当然我们也可以接受关键字参数
def myprint(name,**contents):
print(name,':')
for k,v in cotents:
print(k,v)
print(type(contens))
设置参数之后,contens单元变成一个字典形式,对其遍历可以获取该字典中的内容
当然在输入时可以用这种方法来分配参数
def myprint(name,age,gender,salary):
print(name,gender,age,salary)
s=dict(salary='5600',age='13',gender='male')
myprint('tom',**s)
函数内部的变量叫做局部变量,对局部变量的修改没法作用与全局变量,加入我们想要在函数内部进行对全局变量的修改,利用global
x=3
def func():
global x
x=77
func()
print(x)
-------------------------------------------------------------------------------------------
77
函数的特殊方法:递归
以阶乘为例
def function(n):
if n==1:
return 1
else:
s=n*function(n-1)
return s
通过函数内部的嵌套循环来实现运算