在上一篇文章中,我们对 Python 进行了简单介绍和介绍了 Python 的基本语法,现在我们继续介绍 Python 控制结构。

查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9966048.html

布尔比较
布尔
Python 有许多种数据类型,其中一种类型叫布尔,英文表示为 Boolean。它包含两个值:TrueFalse
有两种方式可以声明数据类型是布尔型。一种是直接声明,另外一种是通过值比较产生,比如等于运算符==。

>>> boolean = True
>>> boolean
True
>>> 1 == 2
False
>>> 'me' == 'me'
True
小心不要混淆了赋值运算符 = 和等于比较运算符 ==。

比较
另外一个比较运算符是不等于运算符 !=,如果两个值不相等返回True,否则返回 False。

>>> 1 != 1
False
>>> 1 != 2
True
>>> "day" != "today"
True

我们还可以通过运算符来比较一种数是大于或小于另外一个数。他们是 > 和 < 运算符。

>>> 10 > 11
False
>>> 7 < 10
True

在 Python 里还有大于或等于 >= 和小于或等于 <= 运算符。
它们与大于或小于运算符相同,只不过当两边值相等时,它们返回 True

>>> 10 > 11
False
>>> 7 < 10
True
大于或小于运算符也可用于比较字符串(单词的顺序就是它字的顺序,每一个字在计算里对应一个数字)。

if语句
if条件判断
空白区在 Python 中十分重要。实际上,空白区在各行的开头非常重要。这被称作缩进(Indentation)在行的开头留下空白区(使用空格和制表符)用以确定各行的缩进级别,而缩进级别又用于确定语句的分组。
这意味着相同条件的语句必须拥有相同的缩进,每一组这样的语句被称为块(block)。
我们使用 if 语句实现条件判断。根据 Python 的缩进规则,如果 if 语句的表达式计算结果为 True 那么缩进的代码块被执行了,否则缩进的代码块不会被执行。

if name:
sex
错误的缩进会导致程序错误或发生你不期望的结果。

下面是 if 声明的例子:

if 10 < 20:
print("10 smaller than 20") print("end")

表达式先判断 10 是否小于 20, 其运算结果为真,接下来运行缩进的那部分代码输出“10 smaller than 20”。然后运行不是 if 声明的那部分,也就是未缩进的那部分输出“end”。

>>>
10 smaller than 20
end
>>>
注意 if 声明里的比较运算表达式需要冒号来结束。
如果程序包含多行代码,你应该将其创建一个文件并保存代码。在命令行下使用 python file name 来运行它。

我们经常会遇到比较复杂的判断条件,if 条件判断可以嵌套在 if 条件判断里。
也就是说内部的 if 条件判断是外部 if 条件判断的一部分吗,这样我们就能满足支持多种情况的条件判断。

num = 10
if num > 6:
print("Bigger than 6")
if num <= 40:
print("Between 6 and 40")

运行结果:

>>>
Bigger than 6
Between 6 and 40
>>>

else语句
如果一个包含 else 语句的 if 条件判断,当 if 条件的判断值为 False 时,运行 else 里的语句。
if 语句一样,else 语句的代码也必须缩进。

x = 5
if x == 5:
print("Yes")
else:
print("No")

运行结果:

>>>
Yes
>>>
else 语句也必须像 if 语句一样后面跟着冒号:。

我们可以嵌套 ifelse 语句来判断哪个表达式是真的。

num = 4
if num == 5:
print("Number is 5")
else:
if num == 10:
print("Number is 10")
else:
if num == 4:
print("Number is 4")
else:
print("Number isn't 4,5 or 10")

运行结果:

>>>
Number is 4
>>>

elif语句
elif 语句是else if 的缩写,主要用于多重判断的语句。
if elif 多重判断语句最后可以放置 else 语句,当前面if elif 多重判断语句最终无法在所有的分支上得出结果为 True 情况下,程序运行else语句。

num = 4
if num == 5:
print("Number is 5")
elif num == 10:
print("Number is 10")
elif num == 4:
print("Number is 4")
else:
print("Number isn't 4,5 or 10")

运行结果:

>>>
Number is 4
>>>
if 语句执行有个特点,它是从上往下判断,如果在某个判断上是 True,则把该判断对应的语句执行后就忽略掉剩下的 elif 和 else。
在其他语言里 elif 语句有不同的语法变化,比如 else if,elseif或elsif。

布尔逻辑判断
布尔逻辑判断用于为依赖于多个条件的if语句创造更复杂的条件。
Python 布尔逻辑运算符包含 andornot
and 运算符评估其运算符两边的结果,如果两边返回结果都是 True 则返回 True,否则返回 False

>>> 1 == 1 and 2 == 2
True
>>> 1 == 1 and 1 == 2
False
>>> 1 != 1 and 2 == 2
False
>>> 1 > 2 and 2 < 3
False
Python 使用上面三个单词作为布尔逻辑运算符,其它语言使用符号 &&、|| 和 !。

or 运算符
or 运算符评估其运算符两边的结果,如果有其中一边运算的结果为 True 则返回 True,如果两边的结果都为 False 返回 False

>>> 1 == 1 or 2 == 2
True
>>> 1 == 1 or 1 == 2
True
>>> 1 != 1 or 2 == 2
True
>>> 1 > 2 or 3 < 1
False

Not 运算符
不像前面的两个运算符,not 只评估其右边的运算结果并返回相反的结果。not True 返回 Falsenot False 变成 True

>>> not 1 != 1
True
>>> not 1 < 7
False
我们可以在 if 判断里使用多个布尔逻辑运算符来处理多个条件判断。

运算优先级

运算优先次序是程序里比较重要的概念。
它是数学里运算顺序(比如:乘法优先于加法等)的体现和扩展。Python 的运算优先级包括其他的一些运算符,如布尔逻辑运算符。
下面代码显示 -- 运算符优先级高于 or 运算符。

>>> True or False == False
True
>>> (True or False) == False
False
>>> True or (False == False)
True
Python 的运算顺序与普通数学的顺序相同:首先是括号,然后是指数,接着是乘除法,最后加减法。

下面的表格表示Python里有高到低的运算优先级。

下面代码会输出什么?

x = 2
y = 4
if not 1 + 3 == y or x == 2 and 3 == 4:
print("Yes")
elif x < y:
print("No")

运行结果:

>>>
No
>>>

while 循环
我们看到 if 语句只运行一次当它的条件判断为 True,当条件判断为 False 不会运行其块里的代码。
如果我们需要重复执行一个动作那么就需要 while 循环语句。当其条件判断为 True 它重复执行其代码块,而当条件判断为 False 时它不再执行其代码块,while 语句块下一部分的代码将被执行。
下面代码实例表明 x 变量从1加到5后退出代码块后输出"Finished!"。

x = 1
while x <= 5:
print(x)
x += 1 print("Finished!")

运行结果:

>>>
1
2
3
4
5
Finished!
>>>
代码块在 while 语句里重复执行,在计算机里我们叫它循环。

在 while 循环里,如果条件判断永远为 True 它将永远不会停止,我们称其为无限循环。

while True:
print("loop...")

上面代码永不停息地打印出"loop..."。

遇到这种情况,我们可以使用 Ctrl+C 快捷键来关闭这程序的运行。(针对命令行)    

break 语句
如果需要在代码块里跳出 while 循环,可以使用 break 语句。当在循环中遇到 break 语句,循环立即跳出 while 循环语句。

i = 0
while True:
print(i)
i += 1
if i >= 5:
print("Breaking")
break
print("Finished!")

运行结果:

>>>
0
1
2
3
4
Breaking
Finished!
>>>
注意:在循环外面使用 break 语句将会导致错误发生。

下面代码打印变量3次

i = 5
while True:
print(i)
i -= 1
if i <= 2:
break

运行结果:

>>>
5
4
3
>>>

continue 语句
循环里面我们还可以使用 continue 语句。
不像 break 跳出整个循环并停止执行循环代码块,continue 语句停止执行循环代码块下面的部分并重新开始执行循环代码块。

i = 0
while True:
i += 1
if i == 2:
print("Skipping 2")
continue
if i == 6:
print("Breaking")
break
print(i) print("Finished")

运行结果:

>>>
1
Skipping 2
3
4
5
Breaking
Finished
>>>

continue 语句的作用是停止当前的循环并执行下一个循环。

在循环外面使用 continue 语句将会导致错误发生。

“小学课本上有一篇文章,叫小马过河,小马要过河,老马说河水非常浅,松鼠说河水深不见底,小马站在河前面进退两难,面对着即将要淌过四年的河,我突然觉得,如果你不得不过河,那么水深水浅,对你来说还重要么”——路桥川 《一起同过窗》

Python学习手册之控制结构(一)的更多相关文章

  1. Python学习手册之控制结构(二)

    在上一篇文章中,我们介绍了Python的一些控制结构,现在我们继续介绍剩下的 Python 控制结构.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9972 ...

  2. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  3. 《Python学习手册》读书笔记【转载】

    转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...

  4. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  5. global语句(python学习手册422页)

    # -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须 ...

  6. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

  7. 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码

    看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...

  8. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  9. 《Python学习手册 第五版》 -第13章 while循环和for循环

    上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...

随机推荐

  1. VS中bin,app_code,app_data,app_browser,app_GlobalResources等文件夹的作用 .

    1.  Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需要引用的任何其他代码的可部署程序集.该目录中存在的任何.dll文件将自动地链接到应用程序.如果在该文件夹中留有不用的或过期的文 ...

  2. C#设计模式之代理模式(二)

    15.3 代理模式应用实例 下面通过一个应用实例来进一步学习和理解代理模式.        1. 实例说明        某软件公司承接了某信息咨询公司的收费商务信息查询系统的开发任务,该系统的基本需 ...

  3. python、数据分析师、算法工程师的学习计划

    1.前言 最近(2018.4.1)在百忙之中开通了博客,希望能够把自己所学所想沉淀下来,这篇是我开始系统学习python,成为数据分析师和算法工程师之路的计划,望有志于为同样目标奋斗的数据猿一起交流和 ...

  4. OC 构造方法

    #import <Foundation/Foundation.h> @interface Student : NSObject { int _age; int _no; } - (void ...

  5. 因子和&&因子数

    给定一数n,求n的因子数目和因子之和 上述求因子和式子等于 ∏{(piei+1 - 1) / (pi - 1)}  (∏就是连乘) 模板: +; int prime[maxn]; bool is_pr ...

  6. Android(java)学习笔记34:Android原理揭秘系列之View、ViewGroup

    1. 作过Android 应用开发的朋友都知道,Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的 ...

  7. HDU 1521 指数型母函数

    方法一: DFS 方法二:生成函数 每个数可以重复一定次数,求排列组合数,这是裸的指数型生成函数: #include <bits/stdc++.h> using namespace std ...

  8. 【[USACO16OPEN]262144】

    发现这个数列的范围特别大但是值域的范围特别小 于是可以大胆猜测这道题值域肯定需要开到状态里去 又发现\(262144=2^{18}\)这个暗示非常明显啊,暗示这道题跟二进制有关系 其实也没什么关系 设 ...

  9. 2018.10.7 理解Hibernate的工作原理及其中的ORM详解

    复习 hibernate框架 简介j及其搭建: hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库. 1 ...

  10. 关于layui问题

    编辑: $('#Teacher').find('option').each(function(){ $(this).attr('selected',$(this).val()==data.tid); ...