条件控制

我们都知道流程图是有多个分支的,程序中也是如此,在Python中是用if语句来判断程序该走哪个分支的。它的执行过程如下:

代码执行过程如下:

if

if语句的一般形式如下:

if condition_1:
statement_block_1
  • 如果condition_1为True,执行statement_block_1。

condition_1是条件表达式,由各种运算符和数据类型组成,条件表达式的结果可以是True/False的布尔值,也可以是非布尔值。Python中的0、None、空列表、空字典等都会被认为是False,反之都会被认为是True。

else

else语句在条件为False时执行:

if condition_1:
statement_block_1
else:
statement_block_2
  • 如果condition_1为True,执行statement_block_1。
  • 如果condition_1为False,执行statement_block_2。

elif

if...else实现了“如果满足条件,那么xxx,否则xxx”,除此之外,还可以用elif实现多个连续判断,分别执行不同的语句:

if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
  • 如果condition_1为True,执行statement_block_1。
  • 如果condition_1为False,再判断,如果condition_2为True,执行statement_block_2。
  • 否则,执行statement_block_3。

elif可以写多个。这种写法的执行顺序是从上往下,只要满足了某个ifelif的条件,就会在当前分支执行后跳出去,不再执行后面的判断,如果每个ifelif的条件都是False,最后就会执行else

if嵌套

假如想满足ifelif的条件后,继续做判断,那么就需要进行if语句嵌套,让statement_block_1等代码块也包含if语句:

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

示例:

num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print("你输入的数字可以整除 2 和 3")
else:
print("你输入的数字可以整除 2,但不能整除 3")
else:
if num%3==0:
print("你输入的数字可以整除 3,但不能整除 2")
else:
print ("你输入的数字不能整除 2 和 3")

循环语句

条件语句是从上往下流水式单次执行,循环语句和条件语句的不同点在于,循环是可以回到起始点,反复执行多次的,它的执行过程如下:

while

循环语句的一种形式是while语句:

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

它的执行流程图如下:

示例:

n = 100

sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1 print("1 到 %d 之和为: %d" % (n,sum)) # 5050

for

循环语句的另一种形式是for语句:

for <variable> in <sequence>:
<statements>
else:
<statements>

它的执行流程图如下:

示例:

languages = ["C", "C++", "Perl", "Python"]
for x in languages:
print(x)

break

break用来跳出整个循环,它的执行流程图如下:

示例:

for letter in 'Runoob':     # 第一个实例
if letter == 'b':
break
print ('当前字母为 :', letter) var = 10 # 第二个实例
while var > 0:
print ('当期变量值为 :', var)
var = var -1
if var == 5:
break print ("Good bye!")

continue

break用来跳出整个循环,continue则是用来跳过当前循环,回到起点,继续下一次循环。它的执行流程图如下:

示例:

for letter in 'Runoob':     # 第一个实例
if letter == 'o': # 字母为 o 时跳过输出
continue
print ('当前字母 :', letter) var = 10 # 第二个实例
while var > 0:
var = var -1
if var == 5: # 变量为 5 时跳过输出
continue
print ('当前变量值 :', var)
print ("Good bye!")

break和continue在while循环和for循环中的代码执行过程如下:




循环else

循环后面可以加else语句,while...elsefor...else。咋看一下else好像并没有什么用,因为while循环条件为False或for循环结束后,一定会执行接下来的语句。但是如果循环中出现了break,当循环从break跳出来后,是不会执行else语句的。例如:

for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '等于', x, '*', n//x)
break
else:
# 循环中没有找到元素
print(n, ' 是质数')

range()函数可以生成数字序列。

无限循环

通过设置while循环条件始终为True,可以让循环一直进行下去,例如:

while True:
pass

pass是占位语句,不执行任何操作。

无限循环是很有用的,比如定时任务,每隔5分钟收1次邮件:

import time

while True:
receive_email()
time.sleep(300)

还有比如客户端和服务器保持连接的心跳机制等。

小结

本文介绍了条件控制和循环语句,也就是写Python常用的ifwhilefor语句,同时也讲解了附带语句elifelsebreakcontinuepass的使用。同时也包括了if嵌套、循环else、无限循环的知识点。这一部分的知识非常重要,是代码的骨架,除了看文章,学代码最好的方式是实际敲代码。我们建了一个“Python互助讨论群”,每周日会有算法刷题打卡活动(照着答案敲一遍也ok),公众号后台回复“加群”即可加入,有兴趣的同学可以一起来相互学习交流呀。

参考资料:

https://www.runoob.com/python3/python3-conditional-statements.html

https://www.runoob.com/python3/python3-loop.html

条件循环语句组成了Python代码的骨架的更多相关文章

  1. [转帖]Linux教程(21)-Linux条件循环语句

    Linux教程(21)-Linux条件循环语句 2018-08-24 16:49:03 钱婷婷 阅读数 60更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原创文 ...

  2. python基础之条件循环语句

    前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...

  3. 布尔&list与条件循环语句与trutle

    布尔值与空值 布尔值: 一个布尔值只有True.False两种值 空值: 是python里一个特殊的值,用None表示.None不能理解为0.因为0是有意义的,而None是一个特殊值. list(列表 ...

  4. MySQL与Oracle 差异比较之四条件循环语句

    循环语句 编号 类别 ORACLE MYSQL 注释 1 IF语句使用不同 IF iv_weekly_day = 'MON' THEN       ii_weekly_day := 'MON';ELS ...

  5. python变量、条件循环语句

    1. 变量名 - 字母  - 数字  - 下划线  #数字不能开头:不能是关键字:最好不好和python内置的函数等重复 2. 条件语句 缩进用4个空格(Tab键)注意缩进如果是空格键和Tab键混用, ...

  6. java学习笔记 --- 条件,循环语句

    一.三元运算符 A:格式    比较表达式?表达式1:表达式2;   B:执行流程:    首先计算比较表达式的值,看是true还是false.    如果是true,表达式1就是结果.    如果是 ...

  7. SQL条件循环语句以及异常知识整理

    create or replace procedure pr_test1 is begin > then dbms_output.put_line('条件成立'); elsif > the ...

  8. Sass 条件-循环语句

    学习Sass中 @if...@else @for @while @each 一.条件判断 - @if @else 示例: @mixin blockOrHidden($boolean:true){ @i ...

  9. Python之路-条件控制&循环语句&列表推导式&常用函数

    一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: ...

随机推荐

  1. drop_cache-sar

    查线上问题: 1.cpu  idle 为0 ,I/O高, pidstat 发现进程io 不高,那就是cache mem引起系统io高了 没有vmstat,只能使用sar工具了,使用sar -r  查看 ...

  2. Java泛型中<?> 和 <? extends Object>的异同分析

    相信很多人和我一样,接触Java多年,却仍旧搞不清楚 Java 泛型中 <?>和 <? extends Object>的相似和不同.但是,这应该是一个比较高端大气上档次的Que ...

  3. CCF-201512-消除类游戏

    问题描述 试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游 ...

  4. [LeetCode题解]143. 重排链表 | 快慢指针 + 反转

    解题思路 找到右边链表,再反转右边链表,然后按左.右逐一合并 代码 /** * Definition for singly-linked list. * public class ListNode { ...

  5. 这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了

    前言 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本格式来存储和表示数据. 简洁和清晰 ...

  6. 分享用MathType编辑字母与数学公式的技巧

    利用几何画板在Word文档中画好几何图形后,接着需要编辑字母与数学公式,这时仅依靠Word自带的公式编辑器,会发现有很多公式不能编辑,所以应该采用专业的公式编辑器MathType,下面就一起来学习用M ...

  7. 「CSP-S 2019」格雷码

    [题目描述] 传送门 [题解] 题目中已经清楚地告诉你怎么用n位格雷码推n+1位格雷码, 直接二叉树模拟即可 注意要使用unsigned long long(如果这道题没有95分部分分,不知道有多少人 ...

  8. 【PUPPETEER】初探之获取元素文本值(三)

    一.知识点 page.$eval(selector, pageFunction[, ...args]) page.$$eval(selector, pageFunction[, ...args]) i ...

  9. 一个定时任务管理器,基于Go语言和beego框架开发

    链接 https://github.com/lisijie/webcron 安装说明 系统需要安装Go和MySQL. 获取源码 $ go get github.com/lisijie/webcron ...

  10. 【Updating】汇编语言学习记录02

    换码指令.字符的输出 前置知识: XLAT 指令:将BX指定的缓冲区中.AL指定的位移处的一个字节数据取出赋给AL,实际相当于(AL) = (DS:(BX+AL)).注意,不是单纯地赋予AL+BX,而 ...