您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Python if判断语句

一般情况下,代码都是从上往下顺序执行的。但有些情况下需要根据具体情况有选择地执行代码,或者让一段代码执行多次。这就要用到流程控制语句。Python中的流程控制语句有if语句、for循环语句、while循环语句。其中if语句用于根据表达式的真值来有选择地执行代码,forwhile循环语句用于让一段代码循环执行多次。

if语句

条件测试

首先介绍什么是条件测试条件测试也是一条表达式,但它的值比较特殊。通常的表达式例如1 + 2'abc' + 'def',这些表达式的值要么是数字,要么是字符串或者其它类型。而条件测试表达式的值是bool类型,也就是只可能是TrueFalse,不可能为其它的值。可以把条件测试表达式理解为一个命题,如果命题为真,那么它的值就是True,如果命题为假,它的值就是False
然后看几个条件测试表达式的例子:

print(0 < 1)
print(1 <= 1)
print(0 == 1)

上面的0 < 11 <= 10 == 1就是条件测试表达式。0 < 1是正确的,所以它的值为True1 <= 1也是正确的,它的值也为True0 == 1可以理解为命题命题0和1相等,这是一个假命题,所以它的值为False

简单if语句

知道什么是条件测试后,就可以来看if语句了。简单if语句的功能就是先判断条件测试为真还是为假,如果为真,就执行条件测试后面的语句,否则不执行。
来看下面的例子:首先定义了一个变量temperature,它的值为30。然后是if语句,if后是一个条件测试temperature > 26,因为30 > 26是一个真命题,所以接下来会执行语句print('太热了')

temperature = 30
if temperature > 26:
    print('太热了')

上面例子的输出结果如下:

太热了

但如果temperature的值为20,那么temperature > 26就是一个假命题,就不会执行print('太热了')了。
在这个例子中,temperature的值在写代码的时候就设置好了,所以看不出if语句有什么用。但在实际情况中,temperature的值在写代码时往往是不知道的,需要在程序执行时人工输入或者以其它方式得到。例如下面的例子:

s = input('输入温度:')
temperature = float(s)
if temperature > 26:
    print('太热了')

首先调用input函数让用户输入温度,用户的输入会以字符串的形式存在变量s中。然后用函数float将字符串s转换为数字并赋值给变量temperature。然后就是前面讲的if语句了。
if语句的冒号:后面可以是一条语句,也可以是多条语句组成的语句块,如果要执行多条语句,在每条语句前面按tab键缩进就好了。例如下面的例子中,前两条print语句前面有缩进,所以会被视为if语句的一部分,它们是否执行取决于temperature > 26是否成立;而第三条print语句print('程序执行结束')前面没有缩进,它不属于if语句的一部分,不论temperature > 26是否成立,它都会执行。

temperature = 30
if temperature > 26:
    print('太热了')
    print('开风扇')
print('程序执行结束')

if-else语句

有时会有这种情况:当条件测试为真时,就去执行语句A,否则就去执行语句B。这可以用多个if语句来实现,例如:

temperature = 20
if temperature > 26:
    print('太热了')
if temperature <= 26:
    print('凉快!')

更为方便的做法是使用if-else语句。if-else语句的作用是首先判断if后的条件测试,如果为真,就执行条件测试后面的语句,否则就执行else后面的语句。例如上面的例子写成if-else的形式就是:

temperature = 20
if temperature > 26:
    print('太热了')
else:
    print('凉快!')

else必须和if搭配使用。

if-elif-else语句

if-else适用于只要判断两种情形的情况,但有时需要判断多种情形,例如对于学生成绩,0-60分时,输出“不及格”;60-70分时,输出“及格”;70-80分时,输出“良好”;80分以上时,输出“优秀”。这时就需要用到if-elif-else语句了。

s = input('输入成绩:')
grade = int(s)
if grade < 60:
    print('不及格')
elif grade < 70:
    print('及格')
elif grade < 80:
    print('良好')
else:
    print('优秀')

上述代码中的执行过程如下图所示,菱形框中的为条件测试:

Created with Raphaël 2.3.0 开始 输入grade grade<60 不及格 结束 grade<70 及格 grade<80 良好 优秀 yes no yes no yes no

elif的数量可以是任意的。如果ifelif的条件都不成立的时候什么都不需要执行,最后的else及其冒号后面的语句就可以省略。


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进