通常,程序结构分为三种,顺序结构,循环结构和分支结构。程序中的语句按照先后顺序执行,成为顺序结构。分支结构则根据测试条件执行不同的代码。循环结构指重复执行相同的代码。Python用if语句实现分支结构,用for和while实现循环结构。
 
1、if 分支结构
    python用if语句来选择要执行的程序代码,从而实现分支结构。在if语句内部,可以包含其他的语句,包括if语句。所以,if语句是目前接触到的第一个复合语句。
1.1 if 语句的基本结构
if语句的基本结构如下。
if 条件测试表达式1:
语句块1
elif 条件测试表达式2:
语句块2
......
else:
语句块n
语句块n
 
 
x
 
 
 
1
if 条件测试表达式1:
2
    语句块1
3
elif 条件测试表达式2:
4
    语句块2
5
......
6
else:
 
 
7
    语句块n
 
 
根据python缩进规则,if,elif和else必须对齐,以表示他们是同一个语句。各个语句块中的代码同样必须对齐。elif和else都可以省略,可以有多个elif。
(1)最简单的if语句
最简单的if语句不包含elif和else。例如:
x=5
if x>0:
print(x,"是正数")
.....
5 是正数
 
 
 
1
 
 
 
1
x=5
2
if x>0:
3
    print(x,"是正数")
4
.....
 
 
5
5 是正数
 
 
执行if语句时,python首先计算表达式“x>0”,x的值为5,计算结果为真(True),所以执行print()输出。如果表达式“x>0" 计算结果为假(False),则不会执行print()。
 
(2)双分支if语句
双分支if语句由if和else两部分组成。例如:
x=-5
if x>0:
print(x,"是正数")
else:
print(x,"不是正数")
......
-5 不是正数
 
 
 
1
 
 
 
1
x=-5
2
if x>0:
3
    print(x,"是正数")
4
else:
5
    print(x,"不是正数")
6
......
 
 
7
-5 不是正数
 
 
执行if语句时,python首先计算表达式“x>0”,计算结果为真则执行if部分的语句,否则执行else部分的语句。
 
(3)多分支if语句
多分支if语句由if、一个或者多个elif和else部分组成,else部分可省略。例如:
x=85
if x<60:
print("不及格")
elif x<70:
print("及格")
elif < 90:
print("中等")
else:
print("优秀"
......
中等)
 
 
 
1
10
 
 
 
1
x=85
2
if x<60:
3
    print("不及格")
4
elif x<70:
5
    print("及格")
6
elif < 90:
7
    print("中等")
8
else:
9
    print("优秀"
10
......
 
 
11
中等)
 
 
python在执行多分支if语句时,按照先后顺序依次计算各个测试表达式。当前面的测试表达式为假时,才会计算下一个测试表达式,否则执行相应的语句块,语句块执行完则if语句结束,不在计算后续测试表达式。如果所有的测试表达式为假,而执行else部分的语句。
 
2、真值测试
python 与C/C++ 在处理真值和逻辑运算的方式有所不同。在python中:
任何非0数字和非空对象都为真
数字0、空对像(如空列表[]、空字典{})、None都为假
比较和相等测试返回True或False
逻辑运算and和or会返回参与运算的真或假的对象
not x: x 为真时,结果为假,否则结果威震
x and y : x和y均为真时,结果为真,否则为假
x or y : x 和y均为假时,结果为假,否则为真
 
(1)比较 和 相等 测试
比较 和 相等 测试总是返回True或False。例如:
2<5
True
2>5
False
2==5
False
 
 
 
1
 
 
 
1
2<5
2
True
3
2>5
4
False
5
2==5
 
 
6
False
 
 
(2)not 运算
not 运算返回Ture或False。例如:
not True,not False
(False,True) not 0,not 1,not 2 #非0数字为真
(True,False,False) not 'abc',not[1,2],not{"a":12} #非空对象为真
(False,False,False) not ",not [],not {} #空的对象为假
(True,True,True)
 
 
 
1
10
 
 
 
1
not True,not False
2
(False,True)
3

4
not 0,not 1,not 2             #非0数字为真
5
(True,False,False)
 
 
6

7
not 'abc',not[1,2],not{"a":12}    #非空对象为真
8
(False,False,False)
9

10
not ",not [],not {}         #空的对象为假
11
(True,True,True)
 
 
(3)and 和 or
python中的and和or运算符总是返回参与运算的对象,而不是True或False。
python在计算and运算时,总是按从左到右的顺序计算。在找到第一个为假的对象时,返回该对象,即使右侧还有需要计算的对象,计算都结束。这种计算方式称为短路计算。如果参与的运算对象都为真,则返回最后一个为真的对象。例如:
0 and 2
0
[] and 2
[]
[] and {}
[]
2 and 5
5
5 and 2
2
 
 
 
1
10
 
 
 
1
0 and 2
2
0
3
[] and 2
4
[]
5
[] and {}
6
[]
7
2 and 5
 
 
8
5
9
5 and 2
10
2
 
 
or运算同样执行短路运算,在找到第一个为真的对象时,返回该对象,计算介绍。例如:
0 or 2
2
2 or []
2
False or 5
5
[] or {}
{}
{} or False or []
[]
[]
 
 
1
10
 
 
 
1
0 or 2
2
2
3
2 or []
4
2
5
False or 5
6
5
7
[] or {}
8
{}
9
{} or False or []
 
 
10
[]
 
 
 
3、if...else三元表达式
考查下面的if语句。
if x>y:
a=x
else:
a=y
a=y
 
 
1
 
 
 
1
if x>y:
2
    a=x
3
else:
 
 
4
    a=y
 
 
该if语句将x,y中的较大值赋值给a,该语句可简化成如下的if...else三元表达式。
a=X if x>y else y
a=X if x>y else y
 
 
1
 
 
 
 
 
1
a=X if x>y else y
 
 
python还支持从列表中挑选对象,其基本格式如下。
a=[x,y][f]
 
 
 
1
 
 
 
 
 
1
a=[x,y][f]
 
 
f为假时,将x赋值给a,否则将y赋值给a。例如:
x=5
y=10
a=[x,y][x<y]
a
10 a=[x,y][x>y]
a
5
5
 
 
1
 
 
 
1
x=5
2
y=10
3
a=[x,y][x<y]
4
a
5
10
6

7
a=[x,y][x>y]
8
a
 
 
9
5
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

程序流程控制1 if 分支机构的更多相关文章

  1. [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套

    一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...

  2. Java 基础 程序流程控制 (下)

    Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...

  3. Java 基础 程序流程控制 (上)

    Java程序流程控制 (上) Java程序大体分为三种流程控制结构:顺序结构.分支结构.循环结构 顺序结构 程序由上到下的逐行执行,中间没有任何跳转和判断语句. 示例代码如下: public clas ...

  4. Java基础之程序流程控制

    Java中的程序流程控制 Java中的程序流程分为三种结构:①顺序结构:②分支结构:③循环结构 一.顺序结构 Java中定义成员变量的时候,采用的是前向引用,也就是后面的变量可以引用之前定义好的变量. ...

  5. 4. Scala程序流程控制

    4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...

  6. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

  7. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  8. Java 基础入门随笔(4) JavaSE版——程序流程控制

    上一节对于运算符有了大致的了解,这一节针对程序流程控制进行复习!程序流程控制包括顺序结构.判断结构(if).选择结构(switch).循环结构. 1.判断结构 ①if语句的第一种格式:        ...

  9. Java程序流程控制

    程序流程控制有 选择,循环,以及跳转结构 选择结构中无非就是 If 和 switch语句我两种都做了一些小案例 1. 利用Scanner库来获得控制台用户输入的数字与代码中定义的变量比较 packag ...

随机推荐

  1. 2、前端--初见前后端交互、CSS简介、基本选择器、组合选择器、属性选择器、分组与嵌套、伪类选择器

    今日内容概要 初窥后端框架 css简介 css选择器 今日内容详细 初次体验前后端交互 # 代码无需掌握 只看效果即可 """后端框架:可以简单的理解为别人写好的一个非常 ...

  2. 暑假撸系统6- Thymeleaf ajax交互!

    本来用Thymeleaf也没想着深度使用ajax,就是用也是非常传统的ajax方式提交然后js控制修改下变量.闲来无事的时候看Thymeleaf的教程发现一哥们的实现方式,以及实现思路,堪称惊奇,先说 ...

  3. Python基础—set、copy(Day7)

    一.数据类型补充 1.str:.isspace()字符串是空格或至少是一个空格. s='alex' s1=' ' ret=s1.isspace() print(ret)执行结果:True  2.tul ...

  4. [LeetCode]剑指 Offer 17. 打印从1到最大的n位数

    输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数 999. 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7, ...

  5. [自动化]ansible-系统安全加固整改

    基线漏洞安全整改 修复环境:centos7及以上 安全基线的概念 安全基线是一个信息系统的最小安全保证,即该信息系统最基本需要满足的安全要求.信息 系统安全往往需要在安全付出成本与所能够承受的安全风险 ...

  6. LEETCODE 之写在前面

    不知道能坚持多久,甚至不知道能不能坚持下去. 不知道是先看刷题的笔记好 ,还是直接刷题遇到再说好. 不知道是随机刷的好,还是从头向后这样刷好. 反正,勇敢昌兄,不怕困难.

  7. html页面跳转出现中文乱码

    一般html的<meta charset="UTF-8">默认都是utf-8的编码格式,直接在网页中打开是正常的,但是有的时候在页面跳转时就会出现中文乱码问题,忘了参考 ...

  8. Netty与Spring Boot的整合

    ​ 最近有朋友向我询问一些Netty与SpringBoot整合的相关问题,这里,我就总结了一下基本整合流程,也就是说,这篇文章 ,默认大家是对netty与Spring,SpringMVC的整合是没有什 ...

  9. MySQL第五讲

    内容回顾 单表操作 """ 1.配置文件先统一设置成utf8 \s 2.无论你怎么改都没有生效 你的机器上不止一个mysql文件 C有一个 D有一个 3.百度搜索 sho ...

  10. Write Combining Buffer

    现代CPU使用了很多技术来降低对内存存取数据的延时,因为CPU执行的速度实在是太快了,在从内存存取数据的约120ns中,可以执行数百条指令. 其中多级的缓存架构就是为了减少这种延时,来提高CPU的利用 ...