Python 提供了现代编程语言都支持的两种基本流程控制结构,分支结构循环结构分支结构用于实现根据条件来选择性地执行某段代码,可以使用判断语句实现。本节主要介绍分支结构。

基本用法

判断,基于一定的条件,决定是否要执行特定的一段代码,例如判断一个数是不是正数:

x = 0.5
if x > 0:
    print ("Hey!")
    print ("x is positive")

在这里,如果 x > 0False ,那么程序将不会执行两条 print 语句。

虽然都是用 if 关键词定义判断,但与C,Java等语言不同,Python不使用 {}if 语句控制的区域包含起来。Python使用的是缩进方法。同时,也不需要用 () 将判断条件括起来。

注意缩进!注意缩进!注意缩进!

上面例子中的这两条语句:

    print "Hey!"
    print "x is positive"

就叫做一个代码块,同一个代码块使用同样的缩进值,它们组成了这条 if 语句的主体。

不同的缩进值表示不同的代码块,例如:

x > 0 时:

x = 0.5
if x > 0:
    print ("Hey!")
    print ("x is positive")
    print ("This is still part of the block")
print ("This isn't part of the block, and will always print.")

运行结果:

Hey!
x is positive
This is still part of the block
This isn't part of the block, and will always print.

x < 0 时:

x = -0.5
if x > 0:
    print ("Hey!")
    print ("x is positive")
    print ("This is still part of the block")
print ("This isn't part of the block, and will always print.")
# 运行结果: This isn't part of the block, and will always print.

在这两个例子中,最后一句并不是if语句中的内容,所以不管条件满不满足,它都会被执行。

一个完整的 if 结构通常如下所示(注意:条件后的 : 是必须要的,缩进值需要一样):

if <condition 1>:
    <statement 1>
    <statement 2>
elif <condition 2>: 
    <statements>
else:
    <statements>

当条件1被满足时,执行 if 下面的语句,当条件1不满足的时候,转到 elif ,看它的条件2满不满足,满足执行 elif 下面的语句,不满足则执行 else 下面的语句。

对于上面的例子进行扩展:

x = 0
if x > 0:
    print ("x is positive")
elif x == 0:
    print ("x is zero")
else:
    print ("x is negative")

运行结果:x is zero

elif 的个数没有限制,可以是1个或者多个,也可以没有。

else 最多只有1个,也可以没有。

可以使用 andor , not 等关键词结合多个判断条件:

x = 10
y = -5
x > 0 and y < 0
# 运行结果: True

not x > 0
# 运行结果:False

x < 0 or y < 0
# 运行结果: True

这里使用这个简单的例子,假如想判断一个年份是不是闰年,按照闰年的定义,这里只需要判断这个年份是不是能被4整除,但是不能被100整除,或者正好被400整除:

year = 1900
if year % 400 == 0:
    print ("This is a leap year!")
# 两个条件都满足才执行
elif year % 4 == 0 and year % 100 != 0:
    print ("This is a leap year!")
else:
    print ("This is not a leap year.")

#运行结果: This is not a leap year.

值的测试

Python不仅仅可以使用布尔型变量作为条件,它可以直接在if中使用任何表达式作为条件:

大部分表达式的值都会被当作True,但以下表达式值会被当作False

  • False
  • None
  • 0
  • 空字符串,空列表,空字典,空集合
mylist = [3, 1, 4, 1, 5, 9]
if mylist:
    print ("The first element is:", mylist[0])
else:
    print ("There is no first element.")

# 运行结果: The first element is:3
mylist = []
if mylist:
    print ("The first element is:", mylist[0])
else:
    print ("There is no first element.")

#运行结果: There is no first element.

博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/RePython8.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 06 月 12 日
如果觉得我的文章对你有用,请随意赞赏