目录
1. 布尔类型和比较运算符
2. if语句的基本格式
3. if-else语句
4. if-elif-else语句
5. 判断语句的嵌套
6. 应用--猜数字游戏
进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。
1. 布尔类型和比较运算符
在逻辑判断中,一件事情要么发生要么不发生,那我们就需要用布尔类型(Bool)来表示真、假两种状态。
布尔(bool)表达现实生活中的逻辑,即真和假
- True表示真
- False表示假
True本质上是一个数字记作1,False记作0,因此Python中将布尔类型划分为数字类型。
bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1},类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2},类型是:{type(bool_2)}")
布尔类型不仅可以自行定义,也可以通过比较运算符进行比较计算得到布尔类型的结果。
result =10 > 5
print(f"10 > 5 的结果是:{result},类型是:{type(result)}")result ="itcast"== "itstudy"
print(f"字符串itcast是否和itstudy相等,结果是:{result},类型是:{type(result)}")num1 = 1
num2 = 10
print(f"nums1 == nums2的结果是:{num1 == num2}")
2. if语句的基本格式
跟C语言不同的是,我们不需要将条件放在( )里,同时要做的事情不需要放在{ }里,但要注意Python里,我们要在条件后面加上:,这个一定不能忘记。
Python中不将要做的事情不需要放在{ }里,那为了判断要做的事情是哪个语句要执行的,我们要注意空格缩进。我们在要做的事情前加上4个空格缩进,就可以将这条语句分配给对应的if。
age =10
print(f"今年我已经{age}岁了")
if age >= 18:# 这两条语句前面都有4个空格,因此if判断成立时,这两条语句才会执行print("我已经成年了")print("即将步入大学生活")
# 这条语句前没有空格,因此无论判断是否成立,本语句都会执行
print("时间过的真快")
3. if-else语句
if满足条件会执行相应的代码语句,那不满足的情况下,也有要执行的内容代码就要使用if-else语句。
print("欢迎来到儿童游乐场,儿童免费,成人收费。")
age = int(input("请输入年龄:"))
if age >= 18:print("您已成年,需要收费10元。")
else :print("您未成年,可以免费游玩。")
print("祝您游玩愉快。")
注意:else语句不需要判断条件,但要有:表示在下面写要做什么;else的代码块同样需要4个空格作为缩进。
4. if-elif-else语句
我们可以看到elif可以有多个。 要注意判断是从上到下有顺序的,但凡遇到一个条件成立了,下面的判断部分就不进行了,直接调到判断之外的部分。这里也可以省略else。
print("欢迎来到动物园。")
height = int(input("请输入你的身高(cm):"))
vip_level = int(input("请输入你的vip级别(1~5):"))
day = int(input("请输入今天的日期(1~30):"))
if height < 120:print("您的身高小于120CM,可以免费游玩。")
elif vip_level >3:print("您的vip级别大于3,可以免费游玩。")
elif day == 1:print("今天是1号免费日,可以免费游玩。")
else :print("不好意思,所有条件都不满足,需要购票10元。")
print("祝您游玩愉快。")
5. 判断语句的嵌套
有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次甚至多次判断的多层判断需求。对这种需求,就要使用嵌套判断语句。
我们可以自由嵌套if/if-else/if-elif-else,确定他属于哪个判断条件成立要执行的地方,调整缩进即可。
# 判断语句嵌套应用--派发礼物
# 必须是大于等于18岁小于30岁的成年人
# 同时入职时间需满足大于两年,或者级别大于3才可领取
age = int(input("请输入年龄:"))
year = int(input("请输入入职时间:"))
level = int(input("请输入级别:"))
if age >= 18:print("成年人符合,继续判断")if age < 30:print("年龄达标继续判断")if year > 2:print("小于30岁的成年人且入职超过2年,满足条件,可以领取")else:print("Sorry,年龄符合,但入职时间不足")elif level > 3:print("级别大于3的成年人可直接领取礼物")else:print("您的年龄过大或级别小于等于3,不可领取")
else:print("Sorry,未成年不可领取礼物")
6. 应用--猜数字游戏
案例需求:
定义一个数字(随机产生1~10的数字),通过3次判断来猜数字。
案例要求:
- 数字随机产生,范围1-10
- 有3次机会猜测数字,通过3层嵌套判断实现
- 每次猜不中,会提示大了或小了
# 为了随机产生数字,我们要导入random库
import random
# random库里的randint可以用于产生随机的整数,()里用来规定数据产生的范围
num = random.randint(1,10)
guess = int(input("请输入你猜的数字1:"))
if guess == num:print("猜中啦")
else:if guess > num:print("你猜测的数字1大了")else:print("你猜测的数字1小了")guess = int(input("请输入你猜的数字2:"))if guess == num:print("猜中啦")else:if guess > num:print("你猜测的数字2大了")else:print("你猜测的数字2小了")guess = int(input("请输入你猜的数字3:"))if guess == num:print("猜中啦")else:print("3次机会用尽,没有猜中")