jamchen

导航

 

当大量的代码重复使用的时候,可以使用函数

函数的作用:提升了代码的简洁性、对功能 代码进行封装,提升了代码的重用性以及可可读性

例如定义一个函数:

def show()

```

def 这个关键字,python解释器遇到这一行就默认不执行,只是把这个函数放在内容里面,名字就是函数名show。只用调用的时候才执行。

show()-->调用函数

f = show  #将show赋值给f,f的指向的地址和show相同,所以可以直接调用f来执行show函数

f()  <==>show()

 

函数的返回值:

return;

注意:

1.如果函数中没有注明return,函数依旧有返回值,返回值为None

2.函数中遇到return,就自动终止函数,不执行return后面的代码语句

函数的参数:

形式参数与实际参数

形式参数:定义函数的时候定义的参数;def show(user):#user就是形式参数

实际参数:执行函数的时候传入的实际参数,show(‘jam’)#jam就是实际参数,对应的是定义函数时候的user

1.函数的普通参数

#一个参数:def show(arg):--->show('ss')
#两个参数:def show(arg,xxx):--->show('ss','c')

2.函数的默认参数

默认参数必须放在背后
def show(arg,arg2=None):

 

3.函数的动态参数

带一个*的,接收参数返回元组的类型

带两个*的,接受参数返回字典的类型

def show(*args,**kwargs):接收什么都能执行。注意:*的参数必须放在前面,**的参数放在后面。实参传入方式也一样

def show(*args,**kwargs):
print (args,type(args))
print (kwargs,type(kwargs))
show(11,22,3,n1 = 15,n2='adf')
(11, 22, 3) <class 'tuple'>
{'n1': 15, 'n2': 'adf'} <class 'dict'>
如果想要列表和字典分别传入,前面加*,必然后默认为*args传入的参数。
def show(*args,**kwargs):
print (args,type(args))
print (kwargs,type(kwargs))
l = [11,33,44]
d = {'n1':1,'n2':26}
show(l,d)
show(*l,**d)
 
 
案例:使用动态参数进行字符串的格式化
format()方法
s1 = '{0} and {1}'
l = ['jam','nina']
#result = s1.format('jam','nina')
result = s1.format(*l)
print(result)
输出:jam and nina
s2 = '{name} is {sex}'
d ={'name':'jam','sex':'m'}
#re1 = s2.format(name='jam',sex='M')
re1 = s2.format(**d)
print (re1)
输出:jam is m

 

 简单函数:lambda表达式

对于简单的函数一行代码就可以执行

例:

func = lambda a:a+1
print (func(99))
输出:100
 
lambda表达式执行了那些内容:
1.创建形式参数a
2.自动把函数体结果return。
 
python内置函数
 
map与filter:
1.map:遍历序列,对序列中的每个元素进行操作,最终获取新的序列
例:li = [11,22,33,44]#让里面的每个元素都加100
new_li = map(lambda x:x+100,li) 
l = list(new_li)
 
 
2.filter:
对于序列中元素进行筛选,然后获取符合条件的序列
例:
def func(i):
  if i>33:
    return True
  else:
    return False
li = [11,22,33,44,55,66]
filter(func,li)#不需要加括号执行
 
open函数
 
注意:
seek方法是寻找文件的指针位置
tell方法是 返回指针的位置。
tell和seek是按照字节的形式来执行的
read是按照字符的形式来执行的。
posted on 2017-02-20 23:38  jamchen  阅读(792)  评论(0编辑  收藏  举报