Python入门(5)
导览:
- 函数
- 集合
- 迭代器与生成器
- 模块
一、函数
只要学过其他编程语言应该对函数不太陌生,函数在面向过程的编程语言中占据了极重要的地位,可以说没有函数,就没有面向过程编程,而在面向对象语言中,对象的方法与函数类似,都是将某一计算过程封装起来,方便多次调用的一种手段。
编程中的函数与数学中的函数极其相似,类比数学中的函数f(x) = x^2,x(自变量)被称为参数,得到的f(x)称为返回值,而f(对应法则)被称为函数体,之前我们使用的print(),input()等函数就是如此,只不过在编程中有些函数可能没有返回值,函数的执行结果可能通过其他方式作用于程序。
在Python3中,我们这样来定义一个函数
def 函数名(参数列表):
函数体
如果需要返回一个值,就使用return 返回值语句进行返回,需要注意的是,Python3支持返回多个值,而在调用函数时,往往需要与返回值相同个数的变量来接收。
对于一个y = x^2函数,在Python中可以这样实现:
def Square(x):
return x*x
当需要使用函数时,直接用函数名(参数)的形式调用:
Square(15)
二、集合
Python3中支持集合数据类型,这里的集合与数学中的集合概念完全一样,这里只列出集合的三大特点,其余概念不再赘述。
- 无序性:集合中的元素是无序的。
- 互异性:集合中各个元素各不相同。
- 确定性:集合中元素均是确定的。
集合定义有两种方式:
a = {value1,value2,...}
或者
b = set(value)
定义空集合只能使用set()。
根据集合的特点,我们可以使用集合来轻易地获取字符串中出现的不重复字符。
三、迭代器与生成器
迭代器能够从集合的第一个元素开始逐个遍历,并且它能够记住上一次访问的位置,可以使用iter()来创建一个迭代器对象,用next()来访问。这样说起来很抽象,不如我们直接来试试。
在集合中能够迭代,在函数中同样能迭代,集合中,迭代器能记住当前访问的位置,在函数中也是这样,在函数中使用了yield关键字后,函数每次执行会将yield后的值返回,并且暂停当前函数,当下一次调用函数,函数会从这个地方继续运行,这样的函数返回值是一个迭代器,我们称这种函数为生成器。
四、模块
在实际的编程过程中,你会发现很多不同的程序会用到很多相同的功能,我们之前说过,当一个功能在一个程序中需要重复使用的时候,能把它封装成函数,方便重复调用,那么,在多个程序使用到相同的功能时,我们似乎可以通过“复制、粘贴”来实现函数的“移植”,但事实上,这种方法是不可靠的,可能会出现很多的问题,而且,我们又更方便的办法——模块。
我们可以把那些功能类似的函数放在一个文件中,封装成一个“模块”,这样,我们只需要在新的程序中导入这个模块,就能够使用他们了。比如:我们写了一套求正弦、余弦等三角函数的功能,我们现在把这些函数全部放到一个名字叫做"triangle.py"的文件中,当你在新程序中需要使用的时候,只要把triangle.py复制到新程序所在的文件夹,然后使用import triangle就能导入模块,如果需要调用模块中求正弦的函数,可以这样:
import triangle
print(triangle.sin(1.74))
如果我们只是需要用到某个模块的一个函数,还可以使用import triangle.sin来只导入sin函数,这时,调用只要用sin函数名即可。
import triangle.sin
print(sin(1.74))
五、练习
编写一个模块,用来处理字符串,需要包含功能:
- 求任意一个字符串不重复的字符
- 求两个字符串的相似度
Python入门(5)的更多相关文章
- python入门简介
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- python入门学习课程推荐
最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化 ...
- Python运算符,python入门到精通[五]
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- Python基本语法,python入门到精通[二]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...
- visual studio 2015 搭建python开发环境,python入门到精通[三]
在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...
- python入门教程链接
python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...
- Python学习【第二篇】Python入门
Python入门 Hello World程序 在linux下创建一个叫hello.py,并输入 print("Hello World!") 然后执行命令:python hello. ...
- python入门练习题1
常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...
- Python入门版
一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...
随机推荐
- Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)
简单网络管理协议SNMP服务起着代理的作用,它会收集可以向SNMP管理站或控制台报告的信息.您可以使用SNMP服务来收集数据,并且在整个公司网络范围内管理基于Windows Server 2003.M ...
- File常见操作函数
String Name = File.getName(); //获得文件或文件夹的名称: String parentPath = File.getParent(); //获得文件或文件夹的父目录 ...
- mount/umount命令
挂载及卸载指定的文件系统 mount [选项] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [挂载点] umount [挂载点] -a ...
- MySQL学习之事务安全
事务安全 事务概念 事务(transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务通常由高级数据操纵语言或编程语言 书写的用户程序的执行所引起.事务有事务开始(b ...
- percona数据库监控工具的安装部署
Percona Monitoring and Management 安装 PMM是一个开源,免费的mysql管理监控平台,他可以用来分析mysql,mariadb和mongodb的服务器性能. 安装步 ...
- Java中connection的常用方法及其描述是什么
1. close(), 关闭该数据库连接2. commit(), 提交所有更改内容并释放该Connection对象锁定的资源3. createStatement(), 基于本Connection对象, ...
- 30行代码实现js原生三级联动菜单
var oneArr=[['00','成都'],['01','绵阳'],['02','南充']] var towArr={ '00':[['000','武侯区'],['002','锦江区']], '0 ...
- PHP服务端支持跨域
跨域 由于浏览器的同源策略,导致浏览器页面访问非同源(协议.域名.端口任一不同)服务器产生跨域问题! PHP服务端配置支持跨域: // 指定允许其他域名访问, * 表示全部域名 header('Acc ...
- 006---Linux用户、群组和权限
用户.组.权限管理 用户管理 增 语法:useradd -c '添加用户1' user1 选项和参数: -c:用户的备注信息 -d:用户的家目录 -g:指定用户所属的用户组(gid) -s:指定用户登 ...
- [HDU6321]Dynamic Graph Matching(DP)
题意:给定一个n个点的无向图,开始没有边,然后m个操作,每次加边或者删边,每次操作后输出正好k个边的匹配数k=1,2,3,...n/2,n<=10,m<=30000 可以发现,n<= ...