导览:

  • 函数
  • 集合
  • 迭代器与生成器
  • 模块

一、函数

只要学过其他编程语言应该对函数不太陌生,函数在面向过程的编程语言中占据了极重要的地位,可以说没有函数,就没有面向过程编程,而在面向对象语言中,对象的方法与函数类似,都是将某一计算过程封装起来,方便多次调用的一种手段。

编程中的函数与数学中的函数极其相似,类比数学中的函数f(x) = x^2,x(自变量)被称为参数,得到的f(x)称为返回值,而f(对应法则)被称为函数体,之前我们使用的print(),input()等函数就是如此,只不过在编程中有些函数可能没有返回值,函数的执行结果可能通过其他方式作用于程序。

在Python3中,我们这样来定义一个函数

  1. def 函数名(参数列表):
  2. 函数体

如果需要返回一个值,就使用return 返回值语句进行返回,需要注意的是,Python3支持返回多个值,而在调用函数时,往往需要与返回值相同个数的变量来接收。

对于一个y = x^2函数,在Python中可以这样实现:

  1. def Square(x):
  2. return x*x

当需要使用函数时,直接用函数名(参数)的形式调用:

  1. Square(15)

二、集合

Python3中支持集合数据类型,这里的集合与数学中的集合概念完全一样,这里只列出集合的三大特点,其余概念不再赘述。

  1. 无序性:集合中的元素是无序的。
  2. 互异性:集合中各个元素各不相同。
  3. 确定性:集合中元素均是确定的。

集合定义有两种方式:

  1. a = {value1,value2,...}
  2. 或者
  3. b = set(value)

定义空集合只能使用set()。

根据集合的特点,我们可以使用集合来轻易地获取字符串中出现的不重复字符。

三、迭代器与生成器

迭代器能够从集合的第一个元素开始逐个遍历,并且它能够记住上一次访问的位置,可以使用iter()来创建一个迭代器对象,用next()来访问。这样说起来很抽象,不如我们直接来试试。

在集合中能够迭代,在函数中同样能迭代,集合中,迭代器能记住当前访问的位置,在函数中也是这样,在函数中使用了yield关键字后,函数每次执行会将yield后的值返回,并且暂停当前函数,当下一次调用函数,函数会从这个地方继续运行,这样的函数返回值是一个迭代器,我们称这种函数为生成器。

四、模块

在实际的编程过程中,你会发现很多不同的程序会用到很多相同的功能,我们之前说过,当一个功能在一个程序中需要重复使用的时候,能把它封装成函数,方便重复调用,那么,在多个程序使用到相同的功能时,我们似乎可以通过“复制、粘贴”来实现函数的“移植”,但事实上,这种方法是不可靠的,可能会出现很多的问题,而且,我们又更方便的办法——模块。

我们可以把那些功能类似的函数放在一个文件中,封装成一个“模块”,这样,我们只需要在新的程序中导入这个模块,就能够使用他们了。比如:我们写了一套求正弦、余弦等三角函数的功能,我们现在把这些函数全部放到一个名字叫做"triangle.py"的文件中,当你在新程序中需要使用的时候,只要把triangle.py复制到新程序所在的文件夹,然后使用import triangle就能导入模块,如果需要调用模块中求正弦的函数,可以这样:

  1. import triangle
  2. print(triangle.sin(1.74))

如果我们只是需要用到某个模块的一个函数,还可以使用import triangle.sin来只导入sin函数,这时,调用只要用sin函数名即可。

  1. import triangle.sin
  2. print(sin(1.74))

五、练习

编写一个模块,用来处理字符串,需要包含功能:

  • 求任意一个字符串不重复的字符
  • 求两个字符串的相似度

Python入门(5)的更多相关文章

  1. python入门简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  2. python入门学习课程推荐

    最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化 ...

  3. Python运算符,python入门到精通[五]

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...

  4. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  5. Python基本语法,python入门到精通[二]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...

  6. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  7. python入门教程链接

    python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...

  8. Python学习【第二篇】Python入门

    Python入门 Hello World程序 在linux下创建一个叫hello.py,并输入 print("Hello World!") 然后执行命令:python hello. ...

  9. python入门练习题1

    常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...

  10. Python入门版

    一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...

随机推荐

  1. 数据库——MySQL——索引——索引原理及B+树

    索引原理 我们使用索引,就是为了提高查询的效率,如同查书一样,先找到章,再找到章中对于的小节,再找到具体的页码,再到我们需要的内容. 事实上索引的本质就是不断缩小获取数据的筛选范围,找出我们想要的结果 ...

  2. Java反射机制--是什么,为什么,怎么用。

    往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它.当你能够解决这些问题时,便意味着你已经对这项知识入门了. 一.是什么 Java R ...

  3. hibernate-笔记

    什么是 hibernate 框架 1.hibernate 框架应用在 javaee 三次结构中 dao 层框架 2.在dao 层里面对数据库做curd 操作, 使用hibernate 做crud 操作 ...

  4. Spring注解配置(1)——@Autowired

    @Autowired 注释,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作. 通过 @Autowired的使用来消除 set ,get方法.在使用@Autowired之前,我们对一个b ...

  5. Qt 项目主进程接收Alarm 后在GUI上显示,并且可以有选择性输出文件

    项目主进程接收报警后,将alarm msg 发送给代理, 并将其分发: else if (msg.name == "MesLCUalarmRep") { QString error ...

  6. 【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器

    类有多个可选参数的解决方案: 1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读. 2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用sett ...

  7. IO流,Properties基本功能和遍历

    import java.util.Enumeration; import java.util.Iterator; import java.util.Properties; import java.ut ...

  8. md5的理解

    md5之所以很难破解,是因为它是不可逆的(下面会解释),它是一种散列函数(哈希函数),并且是单向密码体制,即:从明文到密文的不可逆映射,只有加密过程没有解密过程. 为何说是不可逆映射呢?这是因为,md ...

  9. 本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等

    本人擅长Ai.Fw.Fl.Br.Ae.Pr.Id.Ps等软件的安装与卸载,精通CSS.JavaScript.PHP.ASP.C.C++.C#.Java.Ruby.Perl.Lisp.python.Ob ...

  10. 在 Ubuntu Linux 14.04 LTS 上安装php7

    首先添加php官方源 $ sudo add-apt-repository ppa:ondrej/php 然后更新源 $ sudo apt-get update 然后安装 $ sudo apt-get ...