【python入门系列课程 第七课 计算机是如何做决定的(二)】

前言

本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。

第二节课和计算机对个话中,讲解了了程序如何获取我们输入的内容的,今天就来模拟计算机的登入。

判断嵌套

假设我的账号名是:叶子;密码是123456;之前我们都是判断一个内容,这里有两个内容要判断该怎么办呢?

这里就可以用条件嵌套解决(就是一个if里面在包含一个或多个条件),下面看代码:

代码语言:javascript
复制
user_name = input("请输入你的用户名:")
user_password = input("请输入你的密码:")
if user_name == "叶子":
    print("用户名正确")
    if user_password=="123456":
        print("密码正确")
    else:
        print("密码错误")
else:
    print("用户名错误")

解释:

第二个条件是在第一个条件里面的,这就是嵌套条件判断了,满足第一个条件才能进入到里面,两个条件都满足才算登录成功;

多重判断嵌套

这时如果我又加入了一个条件,还要验证邮箱,我的邮箱是yezi@qq.com。这又该如何实现呢。

代码语言:javascript
复制
user_name = input("请输入你的用户名:")
user_password = input("请输入你的密码:")
user_email = input("请输入你的邮箱:")
if user_name == "叶子":
    print("用户名正确")
    if user_password=="123456":
        print("密码正确")
        if user_email =="yezi@qq.com":
            print("邮箱正确")
        else:
            print("邮箱错误")
    else:
        print("密码错误")
else:
    print("用户名错误")

虽然通过三层条件嵌套实现了效果,但是好像看上去是不是有点麻烦,的确是,需要一层一层去看,那有没有更简便的方法呢。

布尔运算

当然有了,下面就来介绍一个新知识,布尔运算。

布尔就是指布尔值(True和False),运算我们知道数学运算是对数字加减乘除等;布尔运算那就是对布尔值的运算。

逻辑运算一共有三种运算方式,分别是 and(逻辑与),or(逻辑或),not(逻辑非)。

代码语言:javascript
复制
print(True and True)
print(True and False)
print(False and False)
print(True or True)
print(True or False)
print(False or False)
print(not True)
print(not False)

解释:

下面来看几个案例:

代码语言:javascript
复制
a = 5
b =3
c =8
print(a+b==c and b==c)
print(a+b == c or b == c)
print(not a+b==c)

解释:

上一节课我们学习了条件这个概念:这里a+b==c、b==c都是判断条件,它们的结果都是布尔值,不是True就是False;两个条件的结果进行运算就是布尔运算了。第四行结果是False,运算过程是先计算a+b==c是True,b==c是False,True and False结果就是False;另外两个也是同样的算法。

改写登录案例

利用布尔运算,现在来改写刚才的登录方法:

代码语言:javascript
复制
user_name = input("请输入你的用户名:")
user_password = input("请输入你的密码:")
user_email = input("请输入你的邮箱:")
if user_name == "叶子" and user_password == "123456"and user_email == "yezi@qq.com":
    print("登录成功")
else:
    if user_name != "叶子":
        print("用户名错误")
    if user_password != "123456":
        print("用户名错误")
    if user_email != "yezi@qq.com":
        print("邮箱错误")

拓展知识练习:

成绩判断

班主任要你写一个程序,来帮助判断成绩,一共有两门功课,分别是语文和数学;程序要求是两科都在90分以上(包括90),成绩是优秀;两科都有一科90以上,成绩良好,其它情况都视为不合格。

参考代码:

代码语言:javascript
复制
score1 = int(input("数学分数:"))
score2 = int(input("语文分数:"))
# 条件1:语文90分以上且数学90分以上就是优秀
if score1>=90 and score2>=90:
    print("优秀")
# 条件2:语文90分以上且数学90分有一个成立就是良好
elif score1>=90 or score2>=90:
    print("良好")
# 条件3:其余情况为不合格
else:
    print("不合格")