1.程序结构

计算机在解决问题时,分别是顺序执行所有语句、选择执行部分语句、循环执行部分语句,分别是:顺序结构、选择结构、循环结构。如下图:

2.选择语句

  2.1最简单的if语句

  Python使用保留字if来组成选择语句,其格式如下:

if 表达式:
代码块

  表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,就跳过“代码块”,执行后面语句,如图

  

  注:1.在Python中,当表达式的值为非零的数或者非空的字符串时,if语句也认为是条件成立(即为真值)。

··     2.使用if语句时,如果只有一条语句,那么语句块可以直接写到冒号“:”的右侧。但为了代码可读性不建议这么做。

     3.常见错误: 

1.if语句后面未加冒号
number = 3
if number == 3 #后面未加冒号,正确的是结尾处添加英文半角的冒号:if number == 3:
print(number)
2.使用if语句时,如果在符合条件时,需要执行多个语句,一定要记得按照逻辑顺序进行代码缩进,否则程序的本意会有变化,但程序不会报错,且bug不容易发现。
代码1:
number = 3
if number == 3:
  print(number)
print('这个是5')
代码2:
number = 3
if number == 3:
  print(number)
  print('这个是5'

  2.2.if  …… else 语句

  Python中提供 if …else 语句来解决两个选择问题,其格式如下:

if 表达式:
语句块1
else:
语句块2

  使用 if …else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,执行else后面的代码块。如图所示:

  

  技巧:

if…else额语句可以使用条件表达式进行简化,如下:
a = 5
if a > 0:
b = a
else:
b = -a
print(b) 简化:
a = 5
b = a if a > 0 else -a
print(b)

  注:1. 在使用else 语句时,else一定不可以单独使用,它必须和保留字if一起搭配使用。

    2.程序中使用if…else 语句时,如果出现多个if 语句多余else语句的情况,那么该else语句将会根据确定该else 语句属于哪个if语句。

  2.3.if…elif…else语句

  在开发程序时遇到多选一的情况,则可以使用if …elif…else语句,具体情况如下:

if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3

else:
语句块n

  使用 if …elif…else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行语句;如果值为假,则跳过该执行语句,进行下一个elif判断,只有表达式全部为假的情况下,执行else后面的代码块。如图所示:

  注:1. if 和 elif 都需要判断表达式的真假,而 else 则不需要判断;另外 elif 和 elif 都需要跟 if 一起使用,不能单独使用。

     2. 使用if语句时尽量避免遵循以下原则:

(1).当使用布尔类型的变量作为判断条件时,假设布尔类型变量为flag,较为规范格式;
if flag: #表示为真
if not flag #表示为假
不符合规范格式:
if flag == True:
if flag == False:
(2).使用 " if 1 == a: " 这样的书写格式可以防止错写成 " if a = 1: "这种形式,从而避免出错

  2.4 if 语句的嵌套

  前面已经介绍了3种形式的 if 语句,这三种都可以进行相互嵌套:

  (1) . 在最简单的if语句中嵌套 if……else语句,形式如下:

if 表达式1:
if 表达式2:
语句块1
else:
语句块2

  (2). 在if……else中嵌套if……else语句,形式如下:

if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块4

  注:if 选择语句可以有多种嵌套方式,开发时可以可以根据自身的需要进行选择合适的嵌套方式,但一定要严格控制好不同级别代码的缩进量。

3.条件表达式

  在程序开发过程中,经常会根据表达式的结果,有条件的进行赋值,例如返回最大值:

  

a = 6
b = 3
if a > b:
c = a
else:
c = b

  针对以上代码,使用条件表达式进行简化,如下:

a = 6
b = 3
c = a if a > b else b

4.循环语句

  4.1 while 循环

  while循环是通过一个条件来控制是否要继续反复执行循环体(循环体是指一组被重复执行的语句)中的语句。

while 条件表达式:
循环体

  当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假是退出循环体。

  

  注:在使用while循环语句时,一定不要忘记添加将循环条件改变为Flase的代码,否则,将产生死循环。但开发中也离不开死循环,可根据情况进行编写。

  4.2. for循环

  for 循环是一个依次重复执行的循环,通常适用于枚举、遍历序列和对象中的元素。语法如下:

for 迭代变量 in 可迭代对象:
循环体

  迭代变量用于保存读除的值,对象为遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串,列表,元组等,循环体为一组被重复执行的语句。

  

  for循环语句可以最基本的应用就是进行数值循环和遍历字符串。还可以进行遍历列表、元组、集合和字典。

  4.3. 循环嵌套

  在Python中,是允许在一个循环体中嵌套另一个循环。

  (1). 在while循环中嵌套while循环

while 条件表达式1:
while 条件表达式2:
循环体2
循环体1

  (2). 在for 循环中嵌套 for 循环

for 迭代变量1 in 对象1:
for 迭代变量2 in 对象2:
循环体2
循环体1

  (3). 在while 循环中嵌套 for 循环

while 条件表达式:
for 迭代变量 in 对象:
循环体2
循环体1

  (4). 在 for 循环中嵌套 while 循环

for 迭代变量 in 对象:
while 条件表达式:
循环体2
循环体1

  特殊案例:九九乘法表

for i in range(0,10):
for j in range(1,i+1):
print(str(j) + "*" + str(i) + "=" + str(i * j) +"\t" ,end = " "
print("")

5.跳转语句

  当循环满足一定条件时,程序会一直执行下去,如果需要在中间离开循环,也就是for循环结束重复之前,或者while循环找到结束条件之前,即break语句和continue语句。

  5.1 break语句

  break可以终止当前循环,包括for循环和while循环在内的所有控制语句。

  在while中使用break语句:

while 条件表达式1:
执行语句
if 条件表达式2:
break

  在for 中使用break语句

for 迭代变量 in 对象:
if 条件表达式:
break

  

          while语句使用break                                                             for语句中使用break

  5.2.continue语句

  continue语句的作用没有break语句强大,他只能终止本次循环而提前进入下次循环中。

  在while中使用continue语句

while 条件表达式1:
执行代码
if 条件表达式2:
continue

  在for 中使用continue语句

for 迭代变量 in 对象:
if 条件表达式:
continue

  

          while语句使用continue                                                     for语句中使用continue

  注:break与continue的区别

    break语句一般会结合if 语句进行搭配使用,表示在某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层循环。

    continue语句一般也会结合if语句进行搭配使用,表示在某种条件下,跳出当前循环的剩下语句,继续进行下一轮循环,如果使用嵌套循环,continue语句将只跳过最内层循环中剩余语句。

6.pass语句

  在Python中pass语句表示空语句,它不做任何事情,一般起到站位作用,常用在代码调试等。

#例:
for i in range(1,10): #输出1~10的数不包含10
if i % 2 == 0: #判断是否是偶数
print(i,end="") #在同一行打印偶数
else: #不是偶数
pass #占位符,不做任何事情,直接跳过 #输出结果为:
2 4 6 8

Python流程控制语句详解的更多相关文章

  1. Mysql高手系列 - 第18篇:mysql流程控制语句详解(高手进阶)

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第18篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符 ...

  2. Python基础教程,流程控制语句详解

    1.程序结构 计算机在解决问题时,分别是顺序执行所有语句.选择执行部分语句.循环执行部分语句,分别是:顺序结构.选择结构.循环结构.如下图: 很多人学习python,不知道从何学起.很多人学习pyth ...

  3. C#基础之流程控制语句详解

    C#程序的执行都是一行接一行.自上而下地进行,不遗漏任何代码.为了让程序能按照开发者所设计的流程进行执行,必然需要进行条件判断.循环和跳转等过程,这就需要实现流程控制.C#中的流程控制包含了条件语句. ...

  4. Windbg命令脚本流程控制语句详解

    在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解.这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等. ; (命令分隔符) 分号(:)字符 ...

  5. python协程详解

    目录 python协程详解 一.什么是协程 二.了解协程的过程 1.yield工作原理 2.预激协程的装饰器 3.终止协程和异常处理 4.让协程返回值 5.yield from的使用 6.yield ...

  6. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  7. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  8. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  9. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

随机推荐

  1. redis的哨兵集群,自动切换主从库

    Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能. 而 ...

  2. HTTP请求格式

    HTTP请求格式 URL包含:/index/index2?a=1&b=2:路径和参数都在这里. 请求头部: ·         content-length表示请求体里面的数据长度: ·    ...

  3. 获取访问用户的客户端IP(适用于公网与局域网).

     /**   * 获取访问用户的客户端IP(适用于公网与局域网).   */   public final String getIpAddr(final HttpServletRequest requ ...

  4. Null passed to a callee that requires a non-null argument

    OC中定义的方法参数默认是不为空的,如果能够为空需要手动指定__nullable ,我想这个警告是提示开发者警惕可能空参数

  5. 把数据写入txt中 open函数中 a与w的区别

    a: 打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾. 也就是说,新的内容将会被写入到已有内容之后.如果该文件不存在,创建新文件进行写入. w:  打开一个文件只用于写入.如果该文 ...

  6. vue生命周期函数2

    转载:http://blog.csdn.net/qq_15766181/article/details/73549933 钩子就好像是把人的出生到死亡分成一个个阶段,你肯定是在出生阶段起名字,而不会在 ...

  7. HttpServletRequestWrapper 类&过滤指定文字

    HttpServletWrapper 和 HttpServletResponseWrapper 1). Servlet API 中提供了一个 HttpServletRequestWrapper 类来包 ...

  8. $工具, 属性, TAB点击切换

    $工具方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...

  9. MySQL8.0 忘记密码、重置密码

    修改my.cnf [mysqld] 域中添加skip-grant-tables 重启mysqld服务 systemctl restart mysqld 重新使用空密码登录,直接敲回车 mysql -u ...

  10. 05 . 前端之BootStrap

    BootStrap简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的前端开 ...