资讯专栏INFORMATION COLUMN

3. Python中的分支判断、循环

BicycleWarrior / 1951人阅读

摘要:例如这显然是不对的,所以式子的值是是变量名逻辑操作如果是则结果为,反之同理同时为时,结果为至少一个为,结果为在布尔值之间进行运算,之前说数据类型的时候也说过。我们说了例如这样的比较的式子的值是布尔值,也就是说可以将式子进行逻辑运算。

本文利用的是Python 3.x版本,建议学习3.x版本
Python中的分支判断、循环 1. 分支条件判断 1.1 比较操作

以下是数之间常见的比较操作,例如5>3就是数学意义上的比较,5是大于3的,所以这个式子的值是True。如何比较,根据两个数之间的符号判断即可。这里要注意的是!=是不相等的意思,==是相等的意思。例如5==3这显然是不对的,所以式子的值是False

# i j是变量名
i > j
i >= j
i < j
i <= j
i == j
i != j
1.2 逻辑操作
not a #如果a是True则 结果为False,反之同理
a and b #同时为True时,结果为True
a or b #至少一个为True,结果为True

在布尔值之间进行运算,之前说数据类型的时候也说过。我们说了例如5>3这样的比较的式子的值是布尔值,也就是说可以将式子进行逻辑运算。例如

5>3 and 5==3
#相当于True and False结果是False

下面是测试结果

1.3 控制流,分支

计算机可以进行自动化操作,因为可以按照我们给定的条件判断执行,所以分支判断是必不可少的。简单来说就是,如果条件A成立,那么做些什么,不成立做些什么,例如如果今天下雨,我就不出门。

最简单的条件判断语句如下,有几个地方容易出错,条件后要用冒号,if条件块里的代码要进行缩进,4个空格,如果了解其他语言的同学应该知道,很多语言的代码块是靠大括号{}来标识的。为什么要有代码块?代码块内的代码的层次是一样的。举个例子,如果不区分代码块,那么如果if判断条件成立后,代码究竟要执行到哪里?所以当条件成立时,执行这个if后的代码块内的内容。一定要注意缩进,不然在py中会出错的。当然现在的代码编辑器多数都很智能,在写完冒号后敲击回车,就可以自动缩进4个空格,我用的VScode就是这样的,很方便。

#如果<条件>为True,则执行if块
#里的操作,注意缩进和冒号!!
if <条件>:
    操作1
    操作2
    ……
#实例
x = 6
if x>3 and x<8:
    print("hello")
#结果会打印出hello    

接下来稍微复杂,就是if else,意思是如果if判断的条件成立(结果为True),则执行if代码块内的代码,如果不成立则执行else代码块内的代码。简单来说就是如果条件成立,则执行if代码块内的代码,否则执行else内的代码。elseif一样也要加冒号以及代码块的缩进。

#先执行if的<条件>查看是否为True,
#如果为True则进入if块,不会进入
#else,如果为False则进入else,不进入if
if <条件>:
    操作1
    操作2
    ……
else:
    操作1
    操作2
    ……
#实例
x = 6
if x > 7:
    print(1)
else:
    print(2)
#结果会打印出2

接下来是多条件判断,以上的判断都是单条件,非此即彼的判断。多条件判断可以用多个条件来判断,先查看条件1是否成立,如果成立则进入代码块执行,如果条件1不成立,继续看条件2是否成立……多条件用elif也要加冒号以及代码块缩进。

# 多重条件,先看是否能进if,
# 如果没进则继续判断是否能进elif……
# 如果都没进,且有else的话,进入else
if <条件1>:
    操作1
    操作2
    ……
elif<条件2>:# elif可以有多个
    操作1
    操作2
    ……
else:# else可以没有
    表达式
    表达式
    ……
#实例
x = 6
if x > 10:
    print(1)
elif x > 7 and x < 9:
    print(2)
elif x > 4 and x < 7:
    print(3)
else:
    print(4)
#结果会打印出3

这里再说一下多重条件和多个if的区别,在多重条件中,一旦某一条件成立,那么之后的代码就不会执行了,就不会再去判断之后的条件了。

if <条件1>:#每个条件都要判断
    操作
if <条件2>:#每个条件都要判断
    操作
if <条件3>:#每个条件都要判断
    操作


if <条件1>:#如果条件1成立,不再判断后面的条件
    操作
elif <条件2>:
    操作
elif <条件3>:
    操作

嵌套条件判断,不建议过深的嵌套

if <条件1>:
    if <条件2>:
        操作
    else:
        操作
else:
    操作

练习一下,要求用户从控制台输入两个float数(x,y),要给出提示(例如:请输入数x),判断x y的大小,如果相等则输出相等。如果x大则输出x大,如果x小则输出x小。如果x大于y时,如果y不等于0,则输出x/y的数值。

x = float(input("请输入数x:"))
y = float(input("请输入数y:"))
if abs(x-y)<1.0e-9:
    print("x,y相等")
elif x > y:
    print("x大于y")
    if abs(y)>1.0e-9:
        print("x/y=",x/y)
else:
    print("x小于y")

解释一下abs(x-y)<1.0e-9abs是求绝对值函数,当xy的差值小于1^(-9)时,就认为xy是相等的,这是因为浮点数的表示是有误差的,用==来比较很危险,所以只要在我们需要的精度内相等即可。

2. 循环 2.1 while loop

当我们需要执行大量相似的操作时,这时循环就派上用场了,首先说一下while循环。

while <条件>:#注意冒号和4个空格的缩进
    操作
    ……

如果<条件>True,则执行while块里的所有操作,然后继续检查<条件>是否为True,一直重复块里的表达式,直到<条件>False,如下例子

n = 0
while n < 5:
    print(n)
    n = n + 1
2.2 for loop

for循环,相对于while更加确定执行的次数,while根据条件来确定是否执行,而for通常是给定了执行的次数。

for <变量> in range(<一些数字>):
    <表达式>#注意冒号和4个空格的缩进
    ……
#实例
for v in range(6):
    print(v)
#结果会打印0-5
sum = 0
for i in range(101):
    sum = sum + i
#求0-100的和

相当于每次把值赋予给变量,然后在代码块内部可以使用这个变量

2.3 range(start,stop,step)

默认的参数是start=0,代表从哪个数开始,step=1,代表步长,意味着每次增加多少,数的范围是0~stop-1

mysum = 0
for i in range(7,10):
    mysum += i
print(mysum)
#求7 8 9的和
mysum = 0
for i in range(5,11,2):
    mysum += i
print(mysum)
#求5 7 9的和
2.4 break

break表示立即退出循环,跳过剩下在块里的表达式,仅仅退出最里层的循环!简单来说就是给一个条件,当这个条件成立时,退出循环,经常和if搭配使用。

mysum = 0
for i in range(5,11,2):
    mysum += i
    #当mysum等于5的时候,退出循环
    if mysum == 5:
        break
        musum += 1
print(mysum)
2.5 for和while的比较

for

知道迭代的次数

可以通过break提前结束循环

使用计数器,因为有个变量可以帮助计数

可以用while循环来重写for循环

while

迭代次数无限制

可以通过break提前结束循环

可以使用计数器,但是得提前初始化,并且每次得更新

可能没法用for循环重写while

到此为止有了判断、循环、输入、输出后,就可以写一些简单的程序了

如果觉得不错,可以分享~,可以关注公众号~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43122.html

相关文章

  • Python入门-控制流

    摘要:返回索引页控制流分支结构循环结构和总结练习参考控制流上一张我们了解了的基本语法和数据结构。和后必须加判断表达式,一般表达式返回值为布尔型,当非布尔型时,表示该值是否存在。语句以英文冒号结尾逻辑代码块以个空格或分隔。 < 返回索引页 控制流 分支结构 if/elif/else 循环结构 for while break 和 continue pass 总结 练习 参考...

    silvertheo 评论0 收藏0
  • python判断循环

    摘要:的判断与循环今天主要介绍一下中的判断与循环控制。本来之前写的标题名字是的流程控制,但是想了想,流程控制又不仅限于条件判断和循环的控制。根据各分支的条件判断来决定对应的执行操作。例如当时退出循环四关键字,其作用是提前退出当层循环。 Python的判断与循环 今天主要介绍一下Python中的if判断与循环控制。本来之前写的标题名字是Python的流程控制,但是想了想,流程控制又不仅限于条件...

    sixgo 评论0 收藏0
  • Python 工匠:编写条件分支代码的技巧

    摘要:系列文章工匠善用变量改善代码质量序言编写条件分支代码是编码过程中不可或缺的一部分。而进行条件分支判断时用到的也是这个值重点来了,虽然所有用户类实例的布尔值都是真。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』,因为优雅而高效的代码...

    KaltZK 评论0 收藏0
  • Python数据类型和分支循环

    摘要:会认为子类是一种父类类型。一般记为它是编程语言中表示文本的数据类型。运算是与运算,只有所有都为,运算结果才是布尔值经常用在条件判断中列表列表是中使用最频繁的数据类型。是中内置的一种数据类型,可以随时添加和删除其中的元素。 了解过了Python的发展历史,现在开始我们的Python基础吧,如果你有学习过其他的编程语言,你可以跳过这一篇 PyCharm使用图解 开发python的工具你可以...

    archieyang 评论0 收藏0
  • 编程语言之问:何时该借用,何时该创造?

    摘要:普通可迭代对象只有魔术方法,而不像迭代器一样拥有魔术方法,这意味着它无法实现自遍历过程,同时在经过循环的它遍历后,也不会破坏原有的结构。这两个是我创造的概念,详见进阶迭代器与迭代器切片。 showImg(https://segmentfault.com/img/remote/1460000019621809); 本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:...

    spademan 评论0 收藏0

发表评论

0条评论

BicycleWarrior

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<