Python学习手册之控制结构(一)

Python学习手册之控制结构(一)

在上一篇文章中,我们对 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,则把该判断对应的语句执行后就忽略掉剩下的 elifelse。 在其他语言里 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里有高到低的运算优先级。

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 语句将会导致错误发生。

 

 

 

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

转载于:https://www.cnblogs.com/dustman/p/9972078.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101312.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • pycharm2021 激活码【中文破解版】

    (pycharm2021 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0Y…

  • MySql添加索引的五种方法

    MySql添加索引的五种方法1.添加primarykey(主键索引)altertable表名称addprimarykey(列名);2.添加unique(唯一索引)altertable表名称addunique(列名);3.添加index(普通索引)altertable表名称addindex索引名(index_name)(列名);4.添加fulltext(全文索引)altertable表名称addfulltext(列…

  • 刷屏神器QQ(刷屏神器定海神针复制)

    在电脑上桌面新建一个txt,然后在里面写入下面的代码,写好后把文件的txt格式改为vbs格式即可次数别设太多,会卡死,间隔时间别太短setwshshell=wscript.createobject(“wscript.shell”)wshshell.AppActivate”王择玉”fori=1to2wscript.sleep100wshshell.sendKeys…

  • webstorm 格式化代码及常用快捷键

    webstorm 格式化代码及常用快捷键webstorm格式化代码  快捷键 centOS下Ctrl+Shift+l windows下 Ctrl+Alt+lmac下Option+Command+l查找/代替快捷键 说明ctrl+shift+N 通过文件名快速查找工程内的文件(必记)ctrl+shift+alt+N 通过一个字符快速查找位置(必记)ctrl+F 在文件内快速查找代码F3 查找下一个shift+F3 查找上一…

  • 实现一个单向链表_java链表添加

    实现一个单向链表_java链表添加链表是常用的一种数据结构,如何创建链表、增、删、查找等功能是本文讨论的内容。首先,链表需要两个指针,一个是头指针是固定不变的,一个是移动变化的指针。(1)为什么要头指针?原因是单向列表中的数据结构包含的只有下一个数据的指针,这样就说明了,单向链表是不可逆向进行操作。所有的操作都需要正向去操作。这时我们必须要知道第一个数据的地址,才能从第一个数据往后访问其他数据。(2)可移动的指针的作用有两个,一个…

    2022年10月25日
  • onPropertyChange 事件详解

    先看这么一段解释:onpropertychange:当在对象上进行属性改变时候触发onchange:当对象内容或者选择内容改变时候触发当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如一个&lt;inputname="text1"id="text1"/&gt;对象的value属性被页面的脚本修改的时候,onchange无法捕获到,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号