本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。
第二节课和计算机对个话中,讲解了了程序如何获取我们输入的内容的,今天就来模拟计算机的登入。
判断嵌套
假设我的账号名是:叶子;密码是123456;之前我们都是判断一个内容,这里有两个内容要判断该怎么办呢?
这里就可以用条件嵌套解决(就是一个if里面在包含一个或多个条件),下面看代码:
user_name = input("请输入你的用户名:")
user_password = input("请输入你的密码:")
if user_name == "叶子":
print("用户名正确")
if user_password=="123456":
print("密码正确")
else:
print("密码错误")
else:
print("用户名错误")
解释:
第二个条件是在第一个条件里面的,这就是嵌套条件判断了,满足第一个条件才能进入到里面,两个条件都满足才算登录成功;
多重判断嵌套
这时如果我又加入了一个条件,还要验证邮箱,我的邮箱是yezi@qq.com。这又该如何实现呢。
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(逻辑非)。
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)
解释:
下面来看几个案例:
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;另外两个也是同样的算法。
改写登录案例
利用布尔运算,现在来改写刚才的登录方法:
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以上,成绩良好,其它情况都视为不合格。
参考代码:
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("不合格")