前言

本文主要介绍控制流程中的if条件语句,包括if...;if...else...;if...elif...elif...else...;if...if...if...else...;if嵌套等。内容如下:

1、语法:

  if    条件表达式   :

  解释:

  • if:如果,如果程序符合某种条件,就可以做什么样的事情;
  • “:”在python中,遇见“:”时要缩进
  • 条件表达式:用于判断,判断结果为True或者False
  • 比较运算:5>3,a>b等;
  • 成员运算:in/not in,如sun in sunny;
  • 逻辑运算:a>b and c<d,  a>b or a>c等;
  • 判断结果为False的情况:数字0,空字符串,空列表,空字典等。

2、if...

  输入:a的值为5,b的值为2,if判断5>2结果为True,程序执行 print(f"{a}大于{b}")

1 a = int(input("请输入a的值"))
2 b = int(input("请输入b的值"))
3 if a>b:
4     print(f"{a}大于{b}")

输出结果:

  5大于2

3、if...else...

  与上面的if语句有一点点的差别,多了一个else(否则)。当if条件不成立时,执行else。

  输入:a的值为5,b的值为6,if判断5>6结果为False,程序执行 print(f"{a}小于{b}")

a = int(input("请输入a的值"))
b = int(input("请输入b的值"))
if a>b:
   print(f"{a}大于{b}")
else:
  print(f"{a}小于{b}")

输出结果:5小于6

4、完整的if表达式 if...elif...elif...elif...else...

  这样的if条件语句表达式中,程序只会执行一个分支的代码,剩下的条件都不会判断。

输入a的分数为20,程序会从a<60开始判断,结果为True,执行print(f"你的分数为:{a},评价为不及格"),下面其他的分支的都不会执行;输入a的值为67,程序还是会从a<60开始判断,结果为False,然后继续判断60<=a<70这个条件是否成立,结果为True,执行print(f"你的分数为:{a},评价为D")

a = int(input("请输入你的分数"))
if a<60:
    print(f"你的分数为:{a},评价为不及格")
elif 60<=a<70:
    print(f"你的分数为:{a},评价为D")
elif 70<=a<80:
    print(f"你的分数为:{a},评价为C")
elif 80 <= a < 90:
    print(f"你的分数为:{a},评价为B")
else:
    print(f"你的分数为:{a},评价为A")

5、if...if...if...else...

  这种情况是多个if条件,程序会从第一个if开始判断。

输入分数a为30,则会判断a<60是否成立,成立时执行print(f"你的分数为:{a},评价为不及格"),然后判断50<=a<70是否成立...直到程序最后

a = int(input("请输入你的分数"))
if a<60:
    print(f"你的分数为:{a},评价为不及格")
if 50<=a<70:
    print(f"你的分数为:{a},评价为D")
if 30<=a<80:
    print(f"你的分数为:{a},评价为C")
if 40 <= a < 90:
    print(f"你的分数为:{a},评价为B")
else:
    print(f"你的分数为:{a},评价为A")

输出结果:

  请输入你的分数30
  你的分数为:30,评价为不及格
  你的分数为:30,评价为C
  你的分数为:30,评价为A

注意:else与同级且最近的if配对,也就是说上面的例子中,a-30在判断40<=a<90这里是不成立的,然后还要判断40<=a<90范围外的情况,即0<=a<40,这是成立的,输出

if 40 <= a < 90:
    print(f"你的分数为:{a},评价为B")
else:
    print(f"你的分数为:{a},评价为A")

6、if嵌套

if嵌套就是说在某个条件后,继续进行细分判断,如下所示:

输入分数90

a = int(input("请输入你的分数"))
if 0<a<60:
    print(f"你的分数为:{a},评价为不及格")
if 60<=a<100:
    # print(f"你的分数为:{a},评价为及格")
    if 60<=a<80:
        print(f"你的分数为:{a},评价为及格,等级为差")
    elif 80<=a<90:
        print(f"你的分数为:{a},评价为及格,等级为中")
    else:
        print(f"你的分数为:{a},评价为及格,等级为优")
else:
    print("你美哟,分数为0")

执行结果:

  你的分数为:90,评价为及格,等级为优

 if可以不用和else配对,也可以不和elif配对。