首页 > 编程语言 >Python程序流程控制

Python程序流程控制

时间:2022-11-12 21:36:28浏览次数:70  
标签:语句 控制 Python 代码 程序流程 else 循环 赋值

Python程序流程控制

1.* 程序流程概述

在现实生活中,我们看到的流程是多种多样的,如汽车在道路上行驶,要顺序地沿道路前进,碰到交叉路口时,驾驶员就需要判断是转弯还是直行,在环路上是继续前进还是从一个出口出去等。在编程的世界里遇到这些状况时,可以改变程序的执行流程,即用流程控制和流程控制语句。

语句是构造程序的基本单位,程序运行的过程就是执行程序语句的过程。程序语句执行的次序称之为流程控制(控制流程)。

流程控制的结构有顺序结构、选择结构和循环结构三种。例如,生产线上零件的流动过程,应该顺序地从一个工序流向下一个工序,这就是顺序结构。但当检测不合格时,就需要从这道工序中退出,或者继续在这道工序中再加工直到检测通过为止,这就是选择结构和循环结构。

1.* 基本处理流程

对数据结构的处理流程称为基本处理流程。在Python中,基本处理流程包含三种结构,即顺序结构、选择结构和循环结构。顺序结构是Python脚本程序中基本的结构,它按照语句出现的先后顺序依次执行,如图所示:

image

选择结构按照给定的逻辑条件来决定执行顺序,有单向选择、双向选择和多向选择之分,但程序在执行过程中只执行其中一条分支。单向选择和双向选择结构如图所示:

image

循环结构即根据代码的逻辑条件来判断是否重复执行某一段程序,若逻辑条件为True,则进入循环重复执行,否则结束循环。循环结构可分为条件循环和计数循环,如图所示:

image

一般在Python语言中,程序总体是按照顺序结构执行的,而在顺序结构中可以包含选择结构和循环结构。

1.* 多样的赋值语句

赋值语句是Python程序中常用的语句。因为经常需要大量的变量存储程序中用到的数据,所以用来对变量进行赋值的赋值语句也会在程序中大量出现。

1.*.& 基本赋值

赋值的作用是赋予变量的值,使之能够参与运算。比如x只是一个字母(变量),不能进行加、减、乘、除的运算,如果给它赋予100的值,就可以参与运算了。

赋值语句的语法格式如下:

点击查看代码
变量名 = 表达式

其中,“=”为赋值号,编程中的等于号为“==”。

Python中的变量不需要声明。每个变量在使用之前都必须赋值,赋值后该变量才会被创建。在Python中,变量没有类型,所说的“类型”是指内存中对象的类型。

注意:赋值不是直接将一个值赋给一个变量,对象是通过引用传递的。不管变量是新创建的、还是已经存在的,都是将该对象的引用赋值给变量。

C语言中,把赋值语句当作一个表达式,可以返回值。但在Python中,赋值语句不会返回值。

提示:经常有人将==符号误写成==是赋值运算符,==是关系运算符的“等于号”,两者是不同的,千万不能混淆。

1.*.& 序列解包

由于赋值运算符的结合性是由右至左,因此在Python语言中,可以一次性给多个变量同时赋值。

当遇到多个变量赋值时,就不需要逐次对每个变量进行赋值了,用一条语句就可以解决。

点击查看代码
>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
>>>

在Python中,上述代码就是序列解包,即先将多个值的序列解开,然后放到变量序列中。从上面的结果看,列表解包后,变量获得了对应的值。

需要特别注意的是,解包序列中的元素数量必须与放置在赋值符号左边的数量完全一致,否则会在赋值时引发异常。

1.*.& 链式赋值

链式赋值是将同一个值赋给多个变量,即可以一次性为不同的变量赋予同一个值。

1.*.& 其他赋值方式

赋值运算符也可以是一些复合的赋值运算符,如加赋值运算符+=、减赋值运算符-=、乘赋值运算符*=、除赋值运算符/=等。

下表中左侧的表达式等价于右边的表达式:

表达式 等价于
n+=25 n=n+25
n-=25 n=n-25
n*=25 n=n*25
n/=25 n=n/25

查看代码

1.* 顺序结构

顺序结构的程序是指程序中的所有语句都是按照书写顺序逐一执行的,只是顺序结构的程序其功能有限。

下面是一个包含顺序结构的程序示例:

查看代码

该程序是一个顺序结构的程序,首先定义radius和area两个变量,在屏幕上输出“请输入半径值:”的提示语句,再通过键盘输入获取数据复制给变量radius,然后为变量area赋值,最后输出area的值。程序的执行过程是按照书写语句一步步地顺序执行的,直至程序结束。

因为input()函数输入的是字符串格式,所以在键盘输入的浮点数并不是真正的浮点数,而是字符串形式。因为radius是字符串形式,不可以相乘,所以在执行语句area = 3.1416 * radius * radius时会报错。这里使用float()函数强制将输入的半径转换为浮点数。

如果不使用float()函数,在进行乘法运算时就会报错。

1.* 布尔表达式

布尔表达式是值为True或False的一种Python表达式。

例如,使用“==”双等于操作符来比较两个操作对象是否相等,若相等,则返回结果True,否则返回False。

这里的真值(True)和假值(False)是Python基础数据类型中bool的两个特殊值,它们不是字符串。

使用bool()函数可以将其他值转换为布尔类型。

查看代码

查看代码

1.* 选择结构与语句

条件判断语句就是对语句中不同条件的值进行判断,进而根据不同的条件执行不同的语句。

1.*.& 选择结构

选择结构也称为分支结构,用于处理在程序中出现两条或更多执行路径可供选择的情况。选择结构可以用分支语句来实现。分支语句主要为if语句。

先来看一个具有选择结构的程序示例:

查看代码

该程序是一个选择结构的程序,在执行过程中会按照键盘输入值的大小顺序选择不同的语句执行。若“a > b”,则执行“print("它们的差值:", a - b)”;若“a <= b”,则执行“print("它们的差值:", b - a)”。

1.*.& if语句

if语句是使用非常普遍的条件选择语句,每一种编程语言都有一种或多种形式的if语句,在编程中它是经常被用到的。

if语句的格式如下:

点击查看代码
if 表达式1:
    语句1
elif 表达式2:
    语句2
...
else:
    语句n

若表达式1为真,则Python运行语句1,反之则向下运行。如果没有条件为真,就运行else内的语句。elif与else语句都是可以省略的。可以在语句内使用pass语句,表示不运行任何动作。

注意以下问题:

  1. 每个条件后面要使用冒号:,表示接下来是满足条件后要执行的语句块。
  2. 使用缩进划分语句块,相同缩进数的语句在一起组成一个语句块。
  3. 在Python中没有switch...case语句。

以下为if中常用的操作运算符:

  • <:小于。
  • <=:小于或等于。
  • >:大于。
  • >=:大于或等于。
  • ==:等于,比较对象是否相等。
  • !=:不等于。

查看代码

1.*.& if嵌套

在嵌套if语句中,可以把if...elif...else结构放在另外一个if...elif...else结构中。该语法格式如下:

点击查看代码
if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else
        语句
elif 表达式4:
    语句
else:
    语句

查看代码

1.*.& 多重条件判断

在Python编程中,经常会遇到多重条件比较的情况。在多重条件比较时,需要用到and或or运算符。其中,and运算符用于多个条件同时满足的情况;or运算符用于只有一个条件满足即可。

查看代码

1.* 循环控制语句

循环语句主要是在满足条件的情况下反复执行某一个操作。循环控制语句主要包括while语句和for语句。

1.*.& while语句

while语句是循环语句,也是条件判断语句。

while语句语法格式如下:

点击查看代码
while 判断条件:
    语句

这里同样需要注意冒号和缩进。

下面通过一个示例计算1~20的总和:

查看代码

注意:如果在这里遗漏代码行b += 1,程序就会进入无限循环中。因为变量b的初始值为1,但并且会发生变化,所以b <= a始终为True,导致while循环不会停止。

要避免无限循环的问题,就必须对每个while循环进行测试,确保其会按预期的那样结束。如果希望程序在用户输入特定值时结束,那么可运行程序并输入这样的值;如果在这种情况下程序没有结束,那么请检查程序处理这个值的方式,确认程序至少有一个这样的地方能让循环条件变为False,或者让break语句得以执行。

如果条件表达式一直为True,while循环就会进入无限循环中。无限循环应用也比较广泛,如在服务器上处理客户端的实时请求时就非常有用。

while无限循环中的应用案例如下:

查看代码

如果用户想退出无限循环,可以按Ctrl+C组合键。

当while循环体中只有一条语句时,可以将该语句与while写在同一行中。例如:

查看代码

while语句可以和else配合使用,表示当while语句的条件表达式为False时,执行else的语句块,如下案例所示:

查看代码

1.*.& for语句

for语句通常条件控制和循环由两部分组成。

for语句语法格式如下:

点击查看代码
for <variable> in <sequence>:
    语句
else:
    语句

其中,<variable>是一个变量名称,<sequence>是一个列表。else语句运行的时机是当for语句都没有运行,或者最后一个循环已经运行时。else语句是可以省略的。

下面实例打印变量n所有的值:

查看代码

下面实例打印变量a1,a2所有的值:

查看代码

若想跳出循环,则可以使用break语句,该语句用于跳出当前循环体:

查看代码

从结果可以看出,当搜索到西瓜时,会跳出当前循环,对应的循环else块将不执行。

1.*.& continue语句和else语句

使用continue语句,Python将跳过当前循环块中的剩余语句,继续进行下一轮循环:

查看代码

从结果可以看出,当变量为80时,将跳出当前循环,进入下一个循环中。

当for循环被执行完毕或while循环条件为False时,else语句才会被执行。需要特别注意的是,如果循环被break语句终止,那么else语句不会被执行:

查看代码

1.*.& pass语句

pass是空语句,主要为了保持程序结构的完整性。pass不做任何事情,一般用作占位语句:

查看代码

从结果可以看出,当搜索到文字“鱼”时,先执行“print('执行pass语句')”,然后执行“print('当前文字:', a)”。

标签:语句,控制,Python,代码,程序流程,else,循环,赋值
From: https://www.cnblogs.com/hzhiping/p/16884577.html

相关文章

  • TCP-可靠传输-流量-拥塞控制
    1.TCP的可靠传输1.1停止等待ARQ协议主机采用TCP发出信息时会设置一个定时器,若超出定时器所设定的时间还没有响应过来,则主机会认为发出去的消息没有传达到目的......
  • Java消费者生产者模式,并发控制。
    概论举个例子:有一个固定容量的货架,生产者放商品进来,消费者拿商品出去,为了保证正常放入和正常拿出(数据的正确性,不会出现超过容量的存放,拿到空气)。使用同步块中的wait和n......
  • 万万没想到,除了香农计划,Python3.11竟还有这么多性能提升!
    众所周知,Python3.11版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的“香农计划”外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟!作者:Bes......
  • 30分钟学完Python基础语法
    30分钟学完Python基础语法,有一门面向对象语言的基础,30分钟足够看一遍Python的基础了。基础语法#缩进取代大括号#用换行取代分号,也可以使用分号,无所谓#输出print();#输......
  • python函数
    一、定义函数下面是一个打印问候语的简单函数,名为greet_user()1、向函数传递信息通过在这里添加username,就可让函数接受你给username指定的任何值。现在,这个函数要......
  • Python字符串操作
    Python字符串操作1.*字符串的常用操作1.*.&访问字符串中的值Python访问子字符串变量,可以使用方括号来截取字符串。与列表的索引一样,字符串索引从0开始。字符串的索引......
  • Python3.8多进程共享内存之Numpy数组
    在利用python处理数据的时候,想要充分发挥CPU的算力,可以选择利用多进程来实现。如果子进程内存占用较大的话,往往很难多开进程,如果不涉及对内存的写入操作,那么多个子进程共享......
  • 2.IPython 的使用技巧
    二.  IPython的使用技巧通过命令来获得帮助文档   1.使用help()#示例help(len)  2.使用?#示例len?  3.shift+tab 查看文档#示例len()......
  • Python2升级Python3改造手法
    Python3.x不兼容Python2.x,但这两个在语法层面差别不大。Python3.x做了部分修改,但大体语法与Python2.x相似,Python3.x的使用者可以轻松阅读Python2.x编写的代码。本节将......
  • Python字典基本操作
    Python字典基本操作与列表和元组有所不同,字典是另一种可变容器模型,且可存储任意类型的对象。下面将学习字典的基本操作。1.*字典常用的基本操作字典的对象使用大括号{}......