Python(八)之函数
Python函数
函数作用:
(1)代码重用
(2)一种设计工具,分解复杂问题
(3)将相关功能打包并参数化
函数种类:
全局函数:定义在模块中
局部函数:嵌套在其他函数中
lambda函数:表达式
方法:与特定数据类型关联的函数,并且只能与数据类型关联一起使用(定义在类中的函数)
内置函数
Python闭包:
可变参数解包:个数必须要匹配
lambda表达式
函数式编程
filter内置函数
reduce实现折叠
Python闭包:闭包叫lexical closure(词法闭包),外层给内层函数提供一个运行环境
yield生成器
函数中谁用yeild,会返回一个生成器对象。
装饰器:实现函数代码重用
1、 本身是一个函数,用于装饰其他函数;
2、 功能:增强被装饰函数的功能;
装饰器一般接受一个函数对象作为参数,以对其进行增强
递归:函数调用自身
递归需要边界条件,递归前进段和递归返回段
函数的设计规范:
耦合性:
(1) 通过参数接收输入,通过return产生输出以及保证函数的独立性
(2) 尽量减少使用去哪聚变量进行函数间通信
(3) 不在函数中修改可变类型的参数;
(4) 避免直接改变定义在另外一个模块中的变量;
聚合性:
(1) 每个函数都应该有一个单一的、统一的目标;
(2) 每个函数的功能都应该相对简单
练习1:将/etc/passwd文件中的每一行都分割为一个列表
练习2:将任意文件按用户指定的分隔符把每一行都分割为一个列表
练习3:用折叠的方式(reduce)求阶乘
练习4:返回/etc/passwd中包含了/bin/bash字符串的所有用户名列表
1、记得关闭:f1.close()
2、记得关闭:f1.close()
3、
4、
或者使用filter:
Python(八)之函数的更多相关文章
- 八. Python基础(8)--函数
八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x): ' ...
- Python之路(第八篇)Python内置函数、zip()、max()、min()
一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...
- 第七篇 python基础之函数,递归,内置函数
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- python中format函数
python中format函数用于字符串的格式化 通过关键字 1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 2 grade = {'nam ...
- Python(八) 正则表达式与JSON
一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配 快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 impor ...
- python中format函数用于字符串的格式化
python中format函数用于字符串的格式化 通过关键字 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 grade = {'name' : ...
- python基础之函数,递归,内置函数
一.数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- python基础之函数详解
Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...
- Python 动态创建函数【转】
知乎上也有相似的问题 偶然碰到一个问题,初想是通过动态创建Python函数的方式来解决,于是调研了动态创建Python函数的方法. 定义lambda函数 在Python中定义lambda函数的写法很简 ...
- python中的函数
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
随机推荐
- Zabbix Trigger表达式实例
Zabbix提供强大的触发器(Trigger)函数以方便进行更为灵活的报警及后续动作,具体触发器函数可以访问https://www.zabbix.com/documentation/2.0/manua ...
- Python学习笔记(六)—— 条件判断
一.语法 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> e ...
- php加密总结
1.md5加密,加密之后是32位的字符串 2.sha1加密, 加密之后是40位的字符串 3.crypt加密, 加密之后是13位的字符串 上面是不可逆的 可逆的如下urlencode --> ur ...
- Xcode command line tools
1.Xcode command line tools 安装 如果你不是一名 iOS 或 OS X 开发者,可以跳过安装 XCode 的过程,直接安装 Xcode command line tools. ...
- 【AaronYang风格】第一篇 CodeFirst 初恋
原著:Prorgamming Entity Framework Entitywork Code First 大家好! 我是AaronYang,这本书我也挺喜欢的,看了一半了,今晚也没 ...
- 【转】我的第一次和最后一次 Hackathon 经历
我的第一次和最后一次 Hackathon 经历 在旧金山地区经常有一些叫做“Hackathon”的活动,吸引挺多人参加.我一直听说这个名字,可是一直不知道它到底是什么.我从来对竞赛式的活动不感兴趣,我 ...
- 跟我学SharePoint 2013视频培训课程—— 版本控制以及内容审批(14)
课程简介 第14天,怎样在SharePoint 2013中启用版本控制以及内容审批 视频 SharePoint 2013 交流群 41032413
- C#基础第六天-作业-利用面向对象的思想去实现名片
1.利用面向对象的思想去实现: (增加,修改,删除,查询,查询全部)需求:根据人名去(删除/查询).指定列:姓名,年龄,性别,爱好,电话. 本系列教程: C#基础总结之八面向对象知识点总结-继承与多态 ...
- 【解决】网站运行一段时间后就无法访问,重启Tomcat才能恢复
[背景]重新部署了网站,运行环境是Linux(centOS6.5)+Tomcat7+mysql5,作了相关安全配置和系统优化工作: [问题]运行几天后,出现了网站无法访问的现象,具体是进入网站首页时页 ...
- Google Protocol Buffers介绍
简要介绍和总结protobuf的一些关键点,从我之前做的ppt里摘录而成,希望能节省protobuf初学者的入门时间.这是一个简单的Demo. Protobuf 简介 Protobuf全称Google ...