学习完python的基础与数据后,我们就可以编写一些简单的命令了。但这时我们发现,目前位置写出来的程序都是自上而下顺序地执行的。要想程序改变这种自上而下的流程多一点变化,我们就要学习三种程序中的语句。而程序执行命令的顺序就叫作程序的控制流。

一、if语句(条件选择)

if语句主要由if关键词、条件表达式、执行代码组成,它可以让程序根据条件选择不同的执行代码。

1、语法:if...elif...else

2、三元操作符:如果我们的if代码段的逻辑是十分简单的,这时候我们就可以考虑使用python中的三元操作符。三元操作符可以让我们用一行来完成if代码段的条件判断与赋值操作。

三元操作符语法:X if Y else Z

示例:

以上代码可以改成三元操作符表示:

二、while语句(条件循环)

while语句是python循环语句的一种,主要由while关键字、条件表达式、执行代码组成。while语句是根据条件来判断是否循环,while会执行代码块直到条件不为真为止。

while循环一般有两种用法:

(1)计数循环:

示例:

计数循环一般在开始循环前有一个计数器,每一次循环后都会对计数器进行一次运算,而且条件表达式也是与计数器的比较,为了达到相应条件的时候可以退出循环。

2、无限循环

当while循环中的条件表达式永远为真的时候,这个while循环就变成一个无限循环了。

示例:

ctrl + c可以引发KeyboardInterrupt异常来中止循环。我们常见的服务器就是用无限循环来监听客户端的请求的,当有请求来的时候就接受请求开始服务,否则会一直监听相应端口。

三、for语句(迭代循环)

for循环是一种强大且常用的循环语句,它主要用来遍历一个可迭代的对象的所有成员。for循环是while计数循环的升级版,一般需要用计数循环的地方先考虑用for循环。

1、语法:for item in iterable:

  code block

2、可迭代对象(iterable)与迭代器(iterator)

iterable包括但不限于iterator。

iterable最大的特征是可以用for循环迭代。

iterator一个最大的特征是它有一个next()方法,用来不断返回下一条目,直到返回最后一个成员后抛出StopInteration异常为止。iterator一个最大的作用就是节省内存空间,如果一个列表有10万个元素,它在内存中占的空间就很大,如果把它变成一个iterator,在用时才去迭代,这样会很节省内存空间。

两者的关系:

当有需要时可用iter()函数转换成iterator。

四、range()函数

说到for循环,就不得不提range()函数。

1、语法:range(start,end,step=1),range()可以生成一个数字组成的列表,里面的数字是:从start到end但不包括end,每step取一个。它与切片类似,可以正向取数和反向取数。

示例:

同样,取数方向与step正负不一致会导致生成空列表,

示例:

五、break:用于循环语句中,用来中断并退出循环,常搭配if使用。

六、continue:用于循环语句中,用来中断并退出这一轮的循环,常搭配if使用。

——————本篇完!

9、python中的控制流的更多相关文章

  1. 归纳整理Python中的控制流语句的知识点

    归纳整理Python中的控制流语句的知识点 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句.例如,清单 1 展示了几个简单的语句.当把它们键 ...

  2. python中的控制流

    ifpython条件语句是通过一条或多条语句的执行结果(True或false)来决定执行的代码块 if语句用于控制程序的执行,基本形式为:if 判断条件:执行语句....elif判断语句:执行语句.. ...

  3. Python基础之控制流

    介绍一些Python的基本的东西,你会发现,Python真的很简单.我也尽可能说得简单一些,因为我理解的也很简单. 在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序 ...

  4. 《python解释器源码剖析》第11章--python虚拟机中的控制流

    11.0 序 在上一章中,我们剖析了python虚拟机中的一般表达式的实现.在剖析一遍表达式是我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化.但是显然这是不够的,因为怎么能没有流程控制呢 ...

  5. Python中的并发编程

    简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态.打开文件列表.追踪指令执行情况的程序指针以及一个保存局部变量的调用栈.通常情况下,一个进程依照一个单序列控制流顺序执 ...

  6. 可爱的 Python : Python中函数式编程,第一部分

    英文原文:Charming Python: Functional programming in Python, Part 1 摘要:虽然人们总把Python当作过程化的,面向对象的语言,但是他实际上包 ...

  7. python中的协程及实现

    1.协程的概念: 协程是一种用户态的轻量级线程.协程拥有自己的寄存器上下文和栈. 协程调度切换时,将寄存器上下文和栈保存到其他地方,在切换回来的时候,恢复先前保存的寄存器上下文和栈. 因此,协程能保留 ...

  8. 协程及Python中的协程

    1 协程 1.1协程的概念 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.(其实并没有说明白~) 我觉得单说协程,比较抽象,如果对线程有一定了解 ...

  9. 【python中调用shell命令使用PIPE】使用PIPE作为stdout出现假卡死的情况——将stdout重定向为输出到临时文件

    在Python中,调用:subprocess.Popen(cmd, stdout = PIPE, stderr = PIPE, shell= true)的时候,如果调用的shell命令本身在执行之后会 ...

随机推荐

  1. vulhub-php/php_inclusion_getshell

    注:本地测试php文件包含+phpinfo泄露导致getshell,此漏洞与php版本无关 使用vulhub环境进行复现: 项目地址:https://github.com/vulhub/vulhub/ ...

  2. webpack.config.js====配置babel

    参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 ...

  3. 阿里云部署安装redis无法访问

    ps:我在linux上安装redis后发现一直端口不通连接不上,折腾一晚上.后来在阿里云官方回复(机器人)中看到下面的回复:       2019/02/28 22:50 自己一试,过完是端口监听是本 ...

  4. 浅谈.htaccess文件--避免滥用.htaccess文件

    .htaccess文件提供了一种目录级别的修改配置的方式. NOTE: 如果你拥有修改apache配置文件的权限,那么完全没有必要使用.htaccess文件.使用.htaccess文件会拖慢apach ...

  5. Vue-watch选项

    Vue ----watch 选项 用于 监听数据变化: <!DOCTYPE html> <html lang="en"> <head> < ...

  6. 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强

    本文转自:http://www.trinea.cn/android/preloaddatacache/ 本文主要介绍一个支持自动向前或向后获取新数据的缓存的使用及功能.Android图片内存缓存可见I ...

  7. 编译安装PHP-7.1.8

    安装依赖包: 1.安装yasm cd /usr/local/src tar zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make make ins ...

  8. PHP线程安全和非线程安全有什么区别

    我们先来看一段PHP官网的原话: Which version do I choose? IIS If you are using PHP as FastCGI with IIS you should ...

  9. python3基础04(requests常见请求)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import requestsimport jsonimport reimport urllib3from ur ...

  10. 写在Github被微软收购之际 - Github的那些另类用法

    这几天朋友圈被微软75亿美元收购Github的新闻刷屏了.Jerry也来贡献一篇和Github相关的文章. 这篇文章包含了Jerry平时对于Github的一些另类用法.目录如下: 1. 部署HTML应 ...