python学习之路 五:函数式编程

本节重点

  • 掌握函数的作用、语法
  • 掌握作用域、全局变量与局部变量知识

一.函数编程基础知识

1.基本定义

函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名即可。

2.特性

?(1)减少重复代码

?(2)使程序变得可扩展

?(3)使程序变得易维护

3.语法定义

def sayhi():  # 函数名
    print("Hello,i‘m nobody!")

二.函数参数

1.形参变量

只有在被调用时才分配内存单元,在调用结束时,即可释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。

def stu_register(name,age,course,country)
    pass

2.实参

可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传给形参。因此应预先用赋值,输入等方法使参数获得确定值。

stu_register(‘宋江‘,30,‘计算机‘,‘CN‘)

3.默认参数

?    ?定义函数形参时,可以给形参一个默认值,这种参数就叫默认参数。规定默认参数必须在位置参数之后。

def stu_register(name,age,course,country="CN")
    pass

4.关键参数

?正常情况下,给函数传参数要按顺序,不想按顺序就可以使用关键参数,只需指定参数名即可(指定了参数名的实参就是关键参数),但记住一个要求就是,关键参数必须放在位置参数(一位置顺序确定对应关系的参数)之后。

stu_register(‘宋江‘,30,country=‘CN‘,course=‘计算机‘)

5.非固定参数

?若你的函数在定义时不确定用户相传多少个参数,就可以使用非固定参数。

def stu_register(name,age,*args):  # *args以元组形式传入
    pass
def stu_register(name,age,*args,**kwargs):  # *kwargs以字典形式传入
    pass

三.返回值

?函数外部的代码要想获取函数的执行结构,就可以在函数里使用return语句把结果返回。

def stu_register(name,age,course=‘PY‘,country=‘CN‘):
    # 注册代码
    if 注册成功:
        return True
    else:
        return False

?返回多个值时可以使用元组类型

def stu_register(name,age,course=‘PY‘,country=‘CN‘):
    # 注册代码
    if 注册成功:
        return (True,s_id)
    else:
        return (False,失败信息)

四.全局与局部变量

  • 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
  • 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。
  • 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其他地方全局变量起作用。

作用域

程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效 /可用的,而限定这个名字可用性的代    ?    ?码?范围就是这个名字的作用域。

五.嵌套函数

函数定义在另一个函数体内,就叫嵌套函数。

name = ‘Alex‘
def change_name():
    name = ‘Alex2‘
    def change_name2():
        name = ‘Alex3‘
        print("第三层打印",name)
    change_name2()  # 调用内层函数
    print("第二层打印",name)

change_name()
print("最外层打印",name)

六.匿名函数

?    ?匿名函数就是不需要显示的指定函数名

calc = lambda x,y:x**y

七.高阶函数

?变量可以执行函数,函数的参数能接受变量,name一个函数就可以接受另一个函数作为参数,这种函数就称之为高阶函数。

?只需满足一下任意一个条件,即时高阶函数

  • 接受一个或多个函数作为输入
  • return 返回另一个函数
def add(x,y,f):
    return f(x) + f(y)

res = add(3,-6,abs)
print(res())

原文地址:https://www.cnblogs.com/LTEF/p/9400265.html

时间: 2024-10-12 08:16:08

python学习之路 五:函数式编程的相关文章

Python学习之路:函数式编程介绍&高阶函数

函数式编程:一种抽象程度很高的范式,重要特点:输入是确定的,输出就是确定的: Python对函数式编程,部分支持: 高阶函数: def add(x,y,f):#函数本身传给函数,就是高阶函数 return f(x)+f(y) res = add(3,-6,abs) print(res)

python学习09-函数和函数式编程

函数和函数式编程 函数会向调用者返回一个值, 而实际编程中大偏函数更接近过程,不显示地返回任何东西.把过程看待成函数的语言通常对于"什么都不返回"的函数设定了特殊的类型或者值的名字.这些函数在 c 中默认为"void"的返回类型,意思是没有值返回. 在 python 中, 对应的返回对象类型是none. 简而言之,当没有显式地返回元素或者如果返回 None 时, python 会返回一个 None.那么调用者接收的就是 python 返回的那个对象,且对象的类型仍然

Python学习总结之五 -- 入门函数式编程

函数式编程 最近对Python的学习有些怠慢,最近的学习态度和学习效率确实很不好,目前这种病况正在好转. 今天,我把之前学过的Python中函数式编程简单总结一下,分享给大家,也欢迎并感谢大家提出意见. 首先,我们学习函数式编程时,需要知道一个概念:高阶函数.那么到底什么是高阶函数呢?把函数作为参数传入,这样的函数就称为高阶函数.而函数式编程就是指这种高度抽象的编程范式. 正文 接下来,我简单介绍以下四种函数的用法:map/reduce   filter   sorted   lambda 在这

python学习第十一天 -- 函数式编程

在介绍函数式编程之前,先介绍几个概念性的东西. 什么是函数式编程? 函数式编程的特点: 1.把计算视为函数而非指令; 2.纯函数式编程:不需要变量,没有副作用,测试简单; 3.支持高阶函数,代码简洁. 什么是高阶函数? 能接收函数做参数的函数,称为高阶函数. 高阶函数的特点: 1.变量可以指向函数 2.函数的参数可以接收变量 3.一个函数可以接收另一个函数作为参数 Python支持的函数式编程? 1.不是纯函数式编程:允许有变量 2.支持高阶函数:函数也可以作为变量传入 3.支持闭包:有了闭包就

【Python学习之旅】---函数式编程(函数尾调用、map函数、filter函数、reduce函数)

执行结果: 执行结果: 执行结果: 执行结果: 原文地址:https://www.cnblogs.com/chenyuxia/p/11980040.html

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu

Python学习之路——强力推荐的Python学习资料

资料一:程序媛想事儿(Alexia)总结 Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务. Python上手虽然容易,但与其它任何语言一样要学好Python并非一日之功.我的Pyth

Python学习之路 001

Python学习之路 从今天起开始写Python学习的经历了,哈哈. 了解Python是在我想入坑Linux运维这条路开始的. 我是计算机出身有着一定编程的功底,刚开始接触Python的时候觉得Python我学习过的c,c++特性完全不一样.觉得为什么这东西会这么智能 就拿Hello World来说 C: 1 #include<stdio.h> 2 3 void main() 4 { 5 printf("Hello World"); 6 } C++: 1 #include&