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

栏目: Python · 发布时间: 7年前

内容简介:本文利用的是Python 3.x版本,建议学习3.x版本以下是数之间常见的比较操作,例如在布尔值之间进行运算,之前说数据类型的时候也说过。我们说了例如

本文利用的是 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

下面是测试结果

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

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

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

接下来稍微复杂,就是 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")

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

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

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

解释一下 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

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

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

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


以上所述就是小编给大家介绍的《3. Python中的分支判断、循环》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Advanced Web Metrics with Google Analytics

Advanced Web Metrics with Google Analytics

Brian Clifton / Sybex / 2008 / USD 39.99

Are you getting the most out of your website? Google insider and web metrics expert Brian Clifton reveals the information you need to get a true picture of your site's impact and stay competitive usin......一起来看看 《Advanced Web Metrics with Google Analytics》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具