Python小白零基础入门 —— 条件语句和循环语句

Python小白零基础入门 —— 条件语句和循环语句

点击上方“Python读数”,选择“星标”公众号
重磅干货,第一时间送达
Python零基础入门的第五篇文章,给大家介绍一下Python中的条件语句和循环语句。

条件语句

编程时经常需要检查一系列条件,并据此决定采取什么措施。比如说,判断一个用户是男性还是女性,判断一个用户所在的年龄区间。

在Python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施(和Excel中的条件语句是类似的)。条件语句的执行过程可以图解如下(以一个判断条件为例):
Python小白零基础入门 —— 条件语句和循环语句

Python中if语句的一般形式如下:

1if cond_1: 2 statement_block_1 3 4elif cond_2: 5 statement_block_2 6 7else: 8 statement_block_3
  • 当cond_1为True时,执行statement_block_1

  • 如果cond_1为False则不执行statement_block_1,进入cond_2的判断

  • 如果cond_2为True,执行statement_block_2,否则,执行statement_block_3
    举个小例子,判断一个用户的性别,如果gender为'male'则打印输出'男性',如果gender为'female'则打印输出'女性':

    In [1]: gender = 'male'

    In [2]: if gender == 'male': ...: print("男性") ...: ...: elif gender == 'female': ...: print("女性") 男性

相信整个if-else的过程并不难理解,大家可以尝试着写更复杂的条件语句。

循环语句

在Python中,循环语句可以分类两大类,一类是for循环,一类是while循环,下面就分别介绍一下这两种循环的使用方式。

for 循环
for循环可以遍历任何序列的项目,如一个列表或者一个字符串,遍历的意思就是把其中每个元素都过一遍。假如现在有一个需求,是打印列表[1,2,3,4,5]中的所有数字,这时便需要用到for循环,那么该怎么实现呢?

1In [3]: alist = [1,2,3,4,5] 2 ...: for number in alist: 3 ...: print(number) 41 52 63 74 85

为了让大家理解这过程中发生了什么,我特地制作了一个GIF,大家可以看看整个流程:
Python小白零基础入门 —— 条件语句和循环语句

在上面的for循环中,每一次循环从alist中按顺序取出一个数字,并将数值赋值给number这个变量,然后再执行for循环内的代码,这里是print出number。

当然,如果你纯粹的只想跑N次循环也是可以的,可以借助range()函数来实现。range(n)会生成一个0到n-1的序列,如下所示:

1In [5]: list(range(5)) 2Out[5]: [0, 1, 2, 3, 4]

所以,当你有一段代码需要重复N次时(下面假设打印N次'Python'),可以这么写:

1for i in range(N): 2 print("Python")

for循环内可以实现的功能还有很多,就需要你结合自身的需求进行探索啦!

while循环

与for循环遍历完一个序列不同,while循环不断地运行(条件为True时),直到指定的条件不满足为止(条件转为False)。先来看看如何定义一个while循环:

1while 判断条件(condition): 2 执行语句(statements)

还是以一个例子来引入,现在生成一个变量a,使用循环每次给a加上2,直到a >= 10,实现的代码如下:

1In [6]: a = 1 2 ...: while a < 10: 3 ...: print(a) 4 ...: a = a + 2 51 63 75 87 99

上述代码执行流程是这样子的:
Python小白零基础入门 —— 条件语句和循环语句

可以看到,当a为1,3,5,7,9时,while循环一直在执行,当a加到11时,a<10的结果为False,循环终止。

有的小伙伴可能会问,如果在执行循环的过程中,让程序实现达到某个条件时中断该怎么操作,这时便需要关键字break和continue出马了。

break和continue

break:退出循环,往下执行相关代码

continue:返回循环的开头,判断是否继续执行循环

还是刚才的while循环,我们做个变体,令a=5时跳出循环

1In [8]: a = 1 2 ...: while a < 10: 3 ...: print(a) 4 ...: a = a + 2 5 ...: if a == 5: 6 ...: break 71 83

可以看到,当a=5时,循环终止了。把上述代码中的break再换成continue又会发生什么呢?

1In [9]: a = 1 2 ...: while a < 10: 3 ...: print(a) 4 ...: a = a + 2 5 ...: if a == 5: 6 ...: continue 7 ...: 81 93 105 117 129

好像和不加continue之前的结果是一样的,这是因为,当a=5时,执行了continue,则循环回到了开头while a <10:,此时a<10返回的结果是True,故而while循环继续运行。break和continue的运行图示如下:
Python小白零基础入门 —— 条件语句和循环语句

break.png
其实不论条件语句if-else,还是循环语句for和while理解起来都不是很难,相信大家都能够轻松搞定,下面也是准备了一些练习题以巩固练手。

练习题

1.使用for循环从1-100中筛选出奇数,并打印
2.使用for循环从1-100中筛选出质数,并打印
3.使用while循环从列表[1,2,3,4,1,2,1,1,1,1]中删除所有的1

往期精彩回顾

Python小白零基础入门 —— 变量及简单的数据类型

Python小白零基础入门 —— 列表和元组

Python小白零基础入门 —— 字典

Python小白零基础入门 —— 集合(set)

关注我
Python小白零基础入门 —— 条件语句和循环语句
1529321439513643.jpg
公众号:Python读数

一个记录成长的公众号
原创不易,如果觉得有点用,希望可以随手转发或者 ”在看“ ,拜谢各位老铁。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''