分享

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

 孟溪ProbeT连山 2019-10-13

此系列文章收录在公众号(建议按顺序阅读本系列文章): 数据大宇宙 > Python入门必备 > 必备知识

转发本文并私信我'python',即可获得Python资料以及更多系列文章(持续更新的)

最近有许多小伙伴问我要入门 Python 的资料,还有小伙伴完全没有入门 Python 就直接购买了我的 pandas 专栏。因此我决定写几篇 Python 数据处理分析必备的入门知识系列文章,以帮助有需要的小伙伴们更好入门。

不拆分啥初级中级高级,一个专栏直接带你入门到高级应用,从数据处理到数据分析!!


前言

本节将学习基本的判断与遍历方式,立刻开始。


逻辑与布尔值

在实际生活中,我们经常根据条件判断进而作出不同的行为。

比如:'如果明天下雨,那么我就待在家里,否则我就出门'

编程语言中自然也需要提供这样的语法,进而描述出类似的语义

我们用文本内容表达环境情况,代码如下:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • 变量 env_tmr 保存一个文本(字符串),之后我们根据这个字符串内容做出判断,从而打印出不同的内容

如果对照中文意思,如图:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够


上面重点关注的是,怎么对比出来 变量 env_tmr 的内容是不是符合我们的要求。

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • env_tmr == '下雨' ,用 双等号 ,判断2边的值是否相等
  • 这里的语义是:'变量 env_tmr 等于 文本内容'下雨'',结果返回的 True,表示这描述是正确的。如果结果返回 False ,则表示其描述不正确
  • True 或 False 就是 bool 值

由于一个'等号'表示:把右边的值赋值给左边的变量,因此判断的逻辑只能使用'双等号'表示

因此,其实一开始的 if else 写法,if 只是根据后面的 bool 值做判断,然后调用不同行的代码而已:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • 如果直接在 if 后面写 True,那么代码总是会执行 if True : 下面的代码 —— print('待在家里')
  • 如果为 False,那么 Python 只是不执行其下方缩进的代码

if 与 else 不需要一起出现,实际上他们有各自表达的意思:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • 当 if 的代码区被执行时(上图总是True,因此总是被执行),else 的区域则不会被执行
  • 当 if 的代码区没有被执行(if 后面的 bool 值为 False),else 的区域才会被执行
  • else 必需配合 上方的 if ,else 不能单独出现。没有'如果',那么'否则'是没有任何意义的

if True : 下方有相同缩进的语句,会被归入 if 的代码区,else 同样如此

来看看如何表达:'如果下雨,我拿伞,然后出门':

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • 现在不需要表达'否则'的语义,因此不再需要 else

序列

在说遍历之前,要先知道序列这玩意。

我们之前有学过用变量表示一个值(可以是数值也可以是文本),但有时候我们希望表达一系列的值,比如:从0到10的10个数值

Python 中有许多不同类型的东西可以表达这语义,这里简单介绍列表:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • [1,2,3] ,生成了一个列表,列表中有3个数值
  • nums = [1,2,3] ,用变量 nums 表示第一步生成的列表(把等号右边的列表赋值给左边的变量)。此时,变量 nums 表示一个数值序列
  • nums[0] ,获取列表中第1个元素

更准确的描述是'把等号右边的列表的引用,赋给左边的变量' 本系列后续文章会详细讲解常用的序列类型,这里先点到即止


遍历与循环

如果我们需要从一个序列中获取每个值做处理,难道要一次次写 nums[0]、nums[1] 的代码吗?而且我还不一定知道这序列里面有多少个值

Python 提供了 for 语法自动遍历序列中的元素。

表达:'从变量 nums 中获取每个数值,然后打印出来' 的同语义代码如下:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • for n in nums: 表示'从变量 nums 中获取每个数值'。
  • 通常来说,你都需要获取当前处理的数值。因此,Python 会把当前的数值赋值给变量 n ,让你可以在 for 的代码区中通过变量 n 得到当前的数值

如下示意图,表示流程:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • for 的代码区被执行了3次,每次 Python 都会把序列中的数值付给变量 n

有时候我们只是想遍历指定次数,比如:'输出10次内容'test''。我们总不可能写代码定义一个有10个数值的列表吧。

Python 提供了一个快速输出序列的方法:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够

  • range(10) ,生成一个有10个元素的序列

range 得到的不是列表,而是生成器。具体内容,可以查看我的文章'Python进阶系列:Python遍历的秘密'

你可能注意到,我们上面的代码中的遍历 n 其实没有任何意义。 一般来说,在 Python 如果觉得某个返回值没有意义,我们会使用一个下划线表示:

带你入门Python的逻辑判断与循环遍历,数据领域入门这就足够


总结

  • if 表示'如果',else 表示'否则',eles 必需在配合 if 存在
  • for 可以遍历一个序列
  • range 可以快速生成有规律的序列

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多