条件与循环

下面举了个例子,现实中经常遇到这种情况,说程序往往需要根据用户的输入做不同的事情,比如如果Bob给出的答案是正确的,我就给他加一分;然后,如果bela是个女孩儿,我就送给了她一朵花;或者还有一种情况,如果电话号码存在,我就去拨打电话,如果不存在,我就提示空号,这就是给出的一些错误的信息,其实在这里,有一个输入,根据不同的情况,会产生不同的分支,不同的分支,怎么用程序表达呢?我们看代码表达:

if bela是女孩:
    给朵玫瑰
否则:
    送其他人

这就是条件分支,如果条件成立,就执行if后面的语句,否则就执行分支语句。

缩进

讲解条件语句之前,我们需要先来了解Python的代码风格。

在讲条件语句的时候,我们中间先要插入一个叫做缩径。如果大家是在接触其他的语言,缩进它只是一种风格,缩进了之后,显得有层次感。

有层次感,无论你喜欢不喜欢的都可以缩紧,你可以缩径,也可以不缩紧,你看就简单来说,就是我们自己的书桌,我整理的很好,层次感都比较明显一些,比较轻一些,你不整理,你这个东西丢不了,也没有问题。就是说没有强制性的,而在我们Python里边则是不同的,代码的缩进是必不可少的。

必不可少的缩进,你间接的告诉python,代码是从哪开始到哪结束的!我们来看一个例子,这个例子,就拿我们前面经常举的例子,演示:

以上代码,如果print前面没有缩进,就会抱错,报错的内容就是expected an indented block,如下:

基础的条件判断

条件运算离不开数值的比较,这就需要比较运算符了。比较操作符是一种逻辑预算,结果为True或者False,常用的比较运算法。对于条件语句,分支有各种情况,怎么分支,怎么走,然后缩减,接下来我们来看比较操作符。

  • ==: 比较是否相等操作符
  • <: 左边是否小于右边
  • >: 左边是否大于右边
  • !=: 左边是否不等于右边
  • >=: 左边是否大于或等于右边
  • <=: 左边是否小于等于右边

使用示例:

如上代码,就是一个具有4个if语句的分支,首先输入第一个数,赋值到num1,然后输入第二个数,赋值为num2,最后通过if语句比较num1和num2。当第一个数和第二个数都输入1的时候,我们看到打印了1 = 1。这说明第3个if语句是成立的。

4个if语句其实没有必要,因为每个语句都需要一次检测,4个语句就是4次检测,但只有1个语句会成立。有没有更高效的方法呢,这就是if…elif…else…语句。于是,代码可以写成:

检测输入值,如果大于5,那就是5和10之间,如果不大于5,那就看你是不大于1,如果大于1的话就在1到5之间,所以一层一层往下走,这是elif的特点,那最后,输入-1,小于零,因此输出了 -1 <= 0。

多条件判断

多条件判断就是在条件语句中添加条件语句,是一种更为复杂的分支语句。那么,如何编写多条件判断语句呢?如下,使用示例:

age = int(input ("Enter your age:" )) 
grade = int(input ("Enter your grade:" ))
if age >= 8:
    if grade >= 3:
        print ("you can play this game!")
    else :
        print("sorry,your grade can't play the game1" )
else :
    print ("sorry,you can't play the game!" )

如上,多条件判断语句,出现了两重判断。对于这种嵌套if语句的代码,称之为多条件判断语句。对于上面的代码,要求输入年龄age,和成绩grade,如果年龄大于或者等于8,并且成绩大于或等于3的输入,将打印允许玩这个游戏的提示,否则提示未满足条件。结果:

如上,年龄输入20,成绩输入70,最终打印了you can play this game!大家也可以按照如上的代码自己修改运行分支语句的运行过程。

and操作

and关键字来结合多个条件, and 表示两个条件都必须为真才能执行下面的代码块。使用示例:

age = int(input ("Enter your age:" )) 
grade = int(input ("Enter your grade:" ))
if age >= 18 and grade >= 60:
    print ("you can play this game!")
else:
    print ("sorry, you can't play this game!" )

如上代码,if后面通过and连接了两个条件语句,只有当两个条件语句都成立的时候,if下面的内容才会执行。

如上实例代码,当输入年龄为10,成绩为60的是,age >= 18和gradle >= 60,两个条件有一个不成立,因此,打印了sorry, you can’t play this game!

or运算

or关键字是把多个条件放在一起。如果使用 or ,只要任意一个条件满足就会执行代码块。使用示例:

age = int(input ("Enter your age:" )) 
grade = int(input ("Enter your grade:" ))
if age >= 18 or grade >= 60:
    print ("you can play this game!")
else:
    print ("sorry, you can't play this game!" )

如上代码,将if语句中的and修改为or,就是说这两个满足一个就OK。那如果你的年龄达到,超过18,或者说你的成绩,大于60,就可以让他玩这个游戏。

not运算

可以用 not 把比较倒过来,表示相反的逻辑。如果原来的值为True,通过not运算就变成了False,如果原来的结果是False,not操作之后就变成True了。如下使用示例:

age = int(input ("Enter your age:" ))
if not(age <= 18 ):
    grade = int(input("Enter your grade:"))
    if grade >= 60:
        print ("you can play this game!")
    else :
        print("sorry,your grade can't play the game1" )
else:
    print ("sorry, you can't play this game!" )

如上代码,在第一个if语句中,我们将age < 18通过not进行了倒置。这就意味着,年龄大于或等于18的输入将执行if语句内的代码。

如上代码,当我们输入age为18的时候,age <= 18是True,not操作之后变成了False,因此执行了else里面的语句。

总结

本节给大家讲解了条件语句,逻辑操作符,以及多条件语法。使用的过程中,大家要严格注意Python的缩进!

IT赶路人

专注IT知识分享