Python3函数

3人阅读 评论(0) 收藏 举报
分类:

面向对象--》类--》class

面向过程--》过程--》def

函数式编程--》函数--》def

使用这些方法具有可提高代码的复用性和可扩展性,面向对象过程编程可以理解为 没有返回值的函数式编程


函数式编程中:函数返回值数 = 0   返回None

                                           =1    返回object(即序列就是序列,字符串就是字符串)

                                           >1    返回元组


参数组:例如 fun(*args) 接收N个位置参数 如(1,2,3,4,5)

                    fun(**args)接收N个关键字参数 如 字典

实例如下:

def fun1(*args):
    print(args)
      
def fun2(**kwargs):
    print(kwargs)
    
fun1(*[1,2,3])      
fun2(name='123')
输出为:
(1, 2, 3)
{'name': '123'}

局部变量与全局变量:

    局部变量一般存在于函数内部,

    全局变量一般 定义在第一级,

    在函数内部修改全局变量需要添加global申明,但是尽量不要在函数内部修改全局变量,也不要在函数内定义全局变量


函数内部可修改 定义的全局list变量等较复杂变量  ,但不能修改字符串和整数变量

如:

list1 = [1,2]
num = 10
str1 = "hclln"


def fun():
    list1[0] = 999
    num = 5
    str1 = "1234"
fun()
print(list1)
print(num)
print(str1)
输出为:
[999, 2]
10
hclln


递归函数:

    特性:1)必须要有一个明确的退出条件

              2)每次进入更深一层递归时,问题规模比上次递归应有所减少

              3)递归效率不高,递归层次过多会导致栈溢出(一般只允许递归999次)


如:

def fun(n):
    
    print(fun(n+1))

fun(0)
错误如下:
Traceback (most recent call last):
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 9, in <module>
    fun(0)
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  [Previous line repeated 995 more times]
RecursionError: maximum recursion depth exceeded


高阶函数:

    变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

如:

def add(x,y,f):
    return f(x)+f(y)

res = add(3,-6,abs)
print(res)
输出为:
9

查看评论

Python3学习笔记4-函数,全局变量&局部变量,内置函数

Python学习笔记,函数,全局变量&局部变量,内置函数
  • sinat_36651044
  • sinat_36651044
  • 2017-07-01 20:54:11
  • 470

python3的函数调用

python定义一个函数 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文...
  • nuli888
  • nuli888
  • 2016-07-19 19:26:04
  • 2785

python3 自带常用函数

import sys #每导入一次执行一次 #reload(sys) 再三里面被干掉了 py2里面可以这样玩 def foo(x,y): ''' 自动实现 点击 ctrl+q ...
  • w739639550
  • w739639550
  • 2017-07-24 18:42:29
  • 363

Python3 基础教程(廖雪峰)

  • 2018年01月05日 17:34
  • 5.15MB
  • 下载

Python函数的参数传递(3)

def printAll(**kargs): for k in kargs: print k, ':', kargs[k] printAll(a=1,...
  • u010273362
  • u010273362
  • 2016-08-10 16:47:29
  • 406

Python3函数传参和函数形参定义方式

1、函数调用时的参数传递方式:(调用函数)     传递方式有以下四种:     位置传参     序列传参     关键字传参     字典关键字传参 (1)位置传参: ...
  • zyz1431
  • zyz1431
  • 2018-01-20 11:00:10
  • 208

python3中sum函数大全

sum(iterable, start) iterable:可迭代对象(如列表,元组,集合) start:指定相加的参数,如果没有设置这个值,默认为0 返回一个指定相加的参数即stardt...
  • jimmy_gyn
  • jimmy_gyn
  • 2017-12-28 19:57:46
  • 71

Python3 函数

Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你...
  • fly_yr
  • fly_yr
  • 2016-05-25 21:07:20
  • 1855

Python3 lambda函数的深入浅出

我们常常看到一个这样的表达式  A=lambda x:x+1 可能会一头雾水不知道怎么计算 最基本的理解就是 def A(x): return x+1 但是理解程序不会将一个表达式在转为...
  • qq_24753293
  • qq_24753293
  • 2017-10-25 10:01:38
  • 1411

python3函数传值的一些建议

python3函数传值的注意点 为什么不能使用可变类型作为默认参数? 例:现在要求传入1到2个参数(一个值或是传入一个值和列表),都可以返回一个添加了这个值的列表。 1 def function(va...
  • qq_38165374
  • qq_38165374
  • 2017-04-09 09:02:48
  • 1037
    个人资料
    等级:
    访问量: 0
    积分: 210
    排名: 0
    文章存档