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 ...
随机推荐
- 课时46.label标签(掌握)
我们点击QQ注册页面,发现了一个问题,当我们点击密码两个字的时候,输入框聚焦了,而点击确认密码的时候,输入框也聚焦了,而我们上节课做的页面,这么点击,并不聚焦 1.默认情况下文字和输入框是没有关联关系 ...
- 内网最小化安装CentOS后,想安装ISO文件中的包怎么办呢?
昨日公司测试人员需要升级公司服务器Python,发现公司服务器上缺失了各种各样的包.比如open-ssl,python-deve等 1.查看你的Centos版本 lsb_release -a 2.上传 ...
- LeetCode 中级 -二叉树的层次遍历(102)
题目描述: 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 ...
- lower_case_table_name
linux上是区分表名大小写的,但是可以通过 my.cnf文件中设置不区分! 1.找到my.cnf文件的所在地. find / -name my.cnf 找到这个文件的位置.我服务器上的位置是 /us ...
- mongo配置项说明
mongo configure 配置文件 storage: dbPath: mongod实例存储其数据的目录. indexBuildRetry: 指定是否mongod在下次启动时重 ...
- Redis服务端和客户端的命令
服务器端 服务器端的命令为redis-server 可以使⽤help查看帮助⽂档 redis-server --help 个人习惯 ps aux | grep redis 查看redis服务器进程su ...
- WEB中需求分析应该考虑的问题
一. 针对用户群体要考虑因素 1.用户年龄 2.选择素材 3.网站布局 4.颜色搭配 5. 用户体验及动效 6.功能便捷 用户需求.用户兴趣爱好.性格.职业.教育水平高低.消费观念.PC端和移动端哪一 ...
- Linux上搭建svn资源库
一.安装 centos上安装 使用命令svn --version查看是否安装过svn: 如果出现 bash: svn: command not found 则显示没有安装 可以使用 yum in ...
- hadoop生态搭建(3节点)-08.kafka配置
如果之前没有安装jdk和zookeeper,安装了的请直接跳过 # https://www.oracle.com/technetwork/java/javase/downloads/java-arch ...
- Python读取 csv文件中文乱码处理
需求:按行解析读取csv文件存入关系型数据库——主要是中文字体解析:遇到的问题:直接解析出来的数据为list形式,而且编码格式为unicode;解决问题:前提了解: 中文编码的规则 —— GB2312 ...