好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python基础 4.函数

4.1 函数的定义

函数的定义:

def 函数名(参数): pass return 表达式

函数名命名规则: 字母、数字和下划线组成,和变量命名规则一致 pass在这里表示什么都没有,不执行任何操作 return 后面可以返回任意表达式,但不能是赋值语句

函数调用:

函数名(参数)

return 和 print 的区别:

return没有写返回值的话,默认None

return是函数的返回值,返回值可以赋值给变量,而print只是打印出来

4.2 函数参数

必备参数:

def func(x): print(x)

func(1)

默认参数:

def func(x, y=None): print(x) print(y)

func(1) func(1, 2)

注意:默认参数要位于必备参数列表的后面

不定长参数:

def func(*args, **kwargs): print(args) print(kwargs)

args: 参数包装成一个元组 kwargs: 参数包装成字典

调用1:func(1, 2, 3, a=4, b=5, c=6)

调用2:func(*(1, 2, 3), **{‘a‘: 4, ‘b‘: 5, ‘c‘: 6})

print (func()): 函数返回值

print (func) : 函数本身

?  def func(a,b,c):     print(a)     print(b)     print(c)  my_list=[1,5,2]  func(*my_list)     #一个 * 解包列表等     两个解字典 ? ?

4.3 Python中简单内置函数

内置对象查看:

dir( builtins )

常见函数:

len 求长度 min 求最小值 max 求最大值 sorted 排序 reversed 反向 sum 求和

进制转换函数:

bin 转换为二进制 oct 转换为八进制 hex 转换为十六进制 ord 字符转ASCII码 chr ASCII码转字符

4.4 Python中高级内置函数

返回一个可以枚举的对象

enumerate

取出字符串中的内容

将字符串str当成有效的表达式来求指并返回计算结果

eval

执行字符串编译过的字符串 不返回结果

exec

过滤器

filter

对于参数中的每个元素都应用函数中,并将结果作为列表返回

map()

将对象逐一与()中的方法配对

zip

 

   my_list=[1,2,5,6,9,8,7,4,5,66,55,54,444,]  def sorted_func(data,my_order):     if my_order is True:         result=sorted(data,reverse=False)         return result     elif my_order is False:         result = sorted(data, reverse=True)         return result     else:         print(‘youwenti‘)    print(sorted_func(my_list,True)) ? #########                         zip ?  my_dict={‘a‘:100,‘b‘:200,‘c‘:300}  my_tuple=(400,500,‘haha‘)    def exchange_list (my_dict,my_tuple):     new_dict= dict(zip(my_dict.keys(),my_tuple))     new_tuple= tuple(my_dict.values())     return new_dict,new_tuple    new_dict,new_tuple = exchange_list (my_dict,my_tuple)  print(new_tuple)  print(new_dict) ? #############                     map  ?  a=[1,2,3,4]  def func (args):     return args*100  result=list(map(func,a))  print(result) ? ############                     enumerate ?  a=[22,66,77,99,656]  for i in enumerate(a):     print(i) ? ################                 filter    a=[1,2,3,4]  def func(args):     if args>2:         return  True     else:         return False  result=list(filter(func,a))  print(result) ?

 

4.5 匿名函数

4.6 函数作用域

外部不能访问函数内部变量: 数内部能够访问函数外部变量 函数里面不能修改函数外部变量

global(全局变量): 最外层

x = 123 def fun1(): global x x += 1 return x

nonlocal(局部变量): 上一层变量

def fun2(): x = 123 def fun3(): nonlocal x x += 1 return x return fun3()

4.7嵌套函数 闭包

嵌套函数

def func_out(): def func_int(): print(‘nei ‘) return func_int result=func_out() result()

闭包:

闭包是函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包。

闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用,闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁

def fx(x):          x += 1          def fy(y):                  return x*y          return fy
?  def func_out(times):     def func_int(num):         return times*num     return func_int    time_5=func_out(5)  print(time_5(100))    time_8=func_out(8)  print(time_8(100)) ?

4.8递归和回调函数 (要有递归的终止条件)

1.递归:
函数自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件 ? def factorial(num):    if num ==1:        return num    return factorial(num-1)*num ? print(factorial(6))
2.回调函数:
自身是一个函数,只是被传入到另一个函数当中,供其调用 ? 回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定
?  def add (x,y):     return x+y  def multipy(x,y):     return x*y  def use(func,num1,num2):     return func(num1,num2)    a=10  b=20  print(use(add,a,b)) ?

4.9 肥波数列

def feib(num):    a=0    b=1    while b <num:        print(b)        a,b=b,a+b ? feib(10)
def feib(num):    if num==1 or num==2:        return 1    return feib(num-1)+feib(num-2) ? print(feib(5))

查看更多关于Python基础 4.函数的详细内容...

  阅读:17次