【黑马python】基础 3.Python 判断语句 if-else
笔记汇总目录
Python 判断语句
布尔类型和比较运算符
-
布尔类型
- 注意:True 和 False 都需要大写首字母
- 注意:True 和 False 都需要大写首字母
-
比较运算符
- 注:Java中字符串比较用 equals
- 注:Java中字符串比较用 equals
-
python中字符串比较大小的规则
- 以 ASCII码或Unicode值 为标准,从第一个字符开始,挨个比较:谁大,字符串就大,结束比较;
- 第一个字符相同,则依次比较后一个字符,直到遇到不相同的字符,分出大小,结束比较。
- 如果所有字符都相同,则比较字符串的长度:较短的字符串较小
- 如果所有字符都相同且长度相同,则两个字符串相等
-
代码示例
# 定义布尔类型的数据 bool_1 = True bool_2 = False print(f"bool 1 的内容:{bool_1},类型:{type(bool_1)}") # bool 1 的内容:True,类型:<class 'bool'> print(f"bool 2 的内容:{bool_2},类型:{type(bool_2)}") # bool 2 的内容:False,类型:<class 'bool'> # 比较运算符: ==, !=, >, <, >=, <= num1 = 10 num2 = 10 num3 = 5 s1 = "google" s2 = "map" print(f"10 == 10 的结果是:{num1 == num2}") # True print(f"10 != 5 的结果是:{num1 != num3}") # True print(f"10 > 5 的结果是:{num1 > num3}") # True print(f"10 < 5 的结果是:{num1 < num3}") # False print(f"10 >= 5 的结果是:{num1 >= num3}") # True print(f"10 <= 5 的结果是:{num1 <= num3}") # False # 注意:字符串比较的结果 print(f"google == map 的结果是:{s1 == s2}") # False print(f"google > map 的结果是:{s1 > s2}") # False print(f"google < map 的结果是:{s1 < s2}") # True
if语句的基本格式
-
if格式
-
注意:条件结果为布尔类型;冒号;代码块缩进
-
-
代码示例
-
注意:if的代码块中间有空行时,仍然算一个代码块整体
# if语句 age = 20 if age >= 18: print("大哥成年了") print("大哥快上大学了") print("时间真快呀!") """ 结果: 大哥成年了 大哥快上大学了 时间真快呀! """
-
-
练习:成年人判断
-
注意:input() 返回值为字符串类型
-
-
代码示例
# 成年人判断 print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。") age = int(input("请输入你的年龄:")) # 注意:输入float型数字,会报错 ValueError: invalid literal for int() with base 10: '1.2' if age >= 18: print("您已成年,游玩需要补票10元。") print("祝您游玩愉快。")
if else语句
-
if-else格式
-
代码示例
print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。") age = int(input("请输入你的年龄:")) if age >= 18: print("您已成年,游玩需要补票10元。") else: print("您未成年,可以免费游玩。") print("祝您游玩愉快。")
-
练习:我要买票吗
-
代码示例
# 练习:我要买票吗 print("欢迎来到黑马动物园。") h = int(input("请输入你的身高(cm):")) if h > 120: print("您的身高超出120cm,游玩需要购票10元。") else: print("您的身高未超出120cm,可以免费游玩。") print("祝您游玩愉快。")
if elif else语句
-
if-elif-else格式
-
注意点
- elif可以 多个
- 判断是:互斥、有序的
- input输入语句 可以放入 判断条件中,节约代码量
- 这样:input前面满足,后面不执行,不一定需要输入所有的值
-
代码示例
print("欢迎来到黑马动物园。") # h = int(input("请输入你的身高(cm):")) # vip = int(input("请输入你的VIP级别(1-5):")) # day = int(input("请告诉我今天是几号:")) if int(input("请输入你的身高(cm):")) < 120: print("您的身高未超出120cm,可以免费游玩。") elif int(input("请输入你的VIP级别(1-5):")) > 3: print("vip级别大于3,可以免费。") elif int(input("请告诉我今天是几号:")) == 1: print("今天是1号,可以免费。") else: print("不好意思,条件都不满足,游玩需要购票10元。") print("祝您游玩愉快。")
-
练习:猜猜心里数字
-
代码示例
# 猜猜心里数字 num = 10 if int(input("请输入第一次猜想的数字:")) == num: print(f"猜对啦!我想的是:{num}") elif int(input("不对,再猜一次:")) == num: print(f"猜对啦!我想的是:{num}") elif int(input("不对,再猜最后一次:")) == num: print(f"猜对啦!我想的是:{num}") else: print(f"Sorry,全部猜错啦,我想的是:{num}")
判断语句的嵌套
-
注意点:空格缩进 -->决定层次关系
-
代码示例
# 判断语句的嵌套 if int(input("身高是:")) > 120: print("身高超过,不可以免费") print("但是,如果是VIP>3,可以免费") if int(input("VIP级别是:")) > 3: print("VIP级别达标,可以免费。") else: print("SORRY, 你需要买票:10元") else: print("欢迎小朋友免费游玩。")
-
练习:成年人的礼物
-
代码示例2
# 成年人礼物 age = 20 level = 3 year = 1 if age >= 18: print("你是成年人") if age < 30: print("你的年龄达标了") if year > 2: print("年龄和入职时间达标,可以领取") elif level > 3: print("年龄和级别达标,可以领取") else: print("不好意思,尽管年龄达标,但是其他条件不符。") else: print("不好意思,年龄太大了") else: print("不好意思,小朋友不可以领取哦")
实战案例
-
randint() 函数
- random.randint(1, 10)会生成一个在 1到10(包括1和10) 之间的 随机 整数
- 注意:闭区间,与range(start, end) 的 左闭右开 区别
-
代码示例
# 超级臃肿版嵌套 import random num = random.randint(1, 10) n1 = int(input("请输入第一次猜的数字:")) if n1 == num: print("你一次就猜对啦") elif n1 < num: print("太小了") n2 = int(input("请输入第二次猜的数字:")) if n2 == num: print("你第二次猜就猜对啦") elif n2 < num: print("太小了") n3 = int(input("请输入最后一次猜的数字:")) if n3 == num: print("你终于猜对啦") else: print("sorry,机会用完了,你没有猜对!") else: print("太大了") n3 = int(input("请输入最后一次猜的数字:")) if n3 == num: print("你终于猜对啦") else: print("sorry,机会用完了,你没有猜对!") else: # n1 > num print("太大了") n2 = int(input("请输入第二次猜的数字:")) if n2 == num: print("你第二次猜就猜对啦") elif n2 < num: print("太小了") n3 = int(input("请输入最后一次猜的数字:")) if n3 == num: print("你终于猜对啦") else: print("sorry,机会用完了,你没有猜对!") else: print("太大了") n3 = int(input("请输入最后一次猜的数字:")) if n3 == num: print("你终于猜对啦") else: print("sorry,机会用完了,你没有猜对!")
-
精简版嵌套的代码示例
-
精简思路:
-
if-else大框架:仅处理==;其余细节在else中判断处理
-
提示大小:仅输出即可结束,不作为分支的一部分
# 猜数字3次:提示大小 # if-else大框架:仅处理==;其余细节在else中判断处理 # 提示大小:仅输出即可结束,不作为分支的一部分 import random num = random.randint(1, 10) guess = int(input("请输入第一次猜的数字:")) if guess == num: print("第一次就猜对啦") else: if guess > num: print("太大了") else: print("太小了") guess = int(input("请第二次输入猜的数字:")) if guess == num: print("第二次就猜对啦") else: if guess > num: print("太大啦") else: print("太小了") guess = int(input("最后一次输入猜的数字:")) if guess == num: print("终于猜对啦") else: print("3次都结束了,你没有猜对")
-