☰
Python22-26:核心语法-流程控制语句-if条件判断
2026/10/3 12:37:16 网站建设 项目流程

数据的逻辑处理中最核心的就是流程控制语句(其主要涉及到三类:条件判断、模式匹配、循环)

if条件判断

场景:只有满足指定条件,才会执行对应的代码逻辑。
if判断语句的结果,必须是布尔类型True或False。
注意:Python中是通过缩进来描述代码的归属的,归属于if代码块的语句,需要在前面缩进4个空格(按Tab键Pycharm会自动转为空格)。

if语句的基本格式

# 定义变量 score = 695 # 条件判断 if score > 680: print("欢迎你,来清华读书") print("也恭喜你即将进入精彩的大学生活") # 不能比上面那行多缩进空格,会报错 print("------------------------------") # 不属于上面的if代码块,是另外独立的语句

案例

# if案例:结合前面学习的输入输出及if条件判断的知识,完成B站登录功能的实现(正确账号和密码为 12345678/666888) # 正确的账号和密码 ok_account = "12345678" ok_password = "666888" # 1. 接收用户输入的账号和密码 account = input("请输入您的B站账号:") password = input("请输入您的B站密码:") # 2. 判断账号和密码是否全部正确,如果都正确,则登录成功,进入B站首页 if account == ok_account and password == ok_password: print("登录成功 ~") print("进入B站首页 ~") # 3. 判断账号和密码是否有错误的,如果有任何一个错误,则登录失败,提示错误信息 if account != ok_account or password != ok_password: print("登录失败 !") print("账号或密码错误 !")

if语句进阶

if... else...

# if... else... 案例:结合前面学习的输入输出及if条件判断的知识,完成B站登录功能的实现(正确账号和密码为 12345678/666888) # 正确的账号和密码 ok_account = "12345678" ok_password = "666888" # 1. 接收用户输入的账号和密码 account = input("请输入您的B站账号:") password = input("请输入您的B站密码:") # 2. 判断账号和密码是否全部正确,如果都正确,则登录成功,进入B站首页 # 优化后 if account == ok_account and password == ok_password: print("登录成功 ~") print("进入B站首页 ~") else: print("登录失败 !") print("账号或密码错误 !")

案例

# 案例1:根据用户输入的年份,判断这一年是闰年还是平年。(非整百年份,且能被4整除的年份是闰年;整百年份(如1900年、2000年)必须能被400整除才是闰年。) year = int(input("请输入需要判断的年份:")) # 如果是 非整百年份,且能被4整除 就是闰年; 整百年份,必须被400整除 也是闰年 if (year % 100 != 0 and year % 4 == 0) or (year % 400 == 0) : print(f"{year} 是闰年") else: print(f"{year} 是平年")

练习一

# 1、需求:根据用户输入的数字,判断该数字是奇数还是偶数 num = int(input("请输入一个整数:")) if num % 2 == 0: print(f"{num} 是偶数") else: print(f"{num} 是奇数") # 一行精简写法(日常少用) n = int(input("请输入整数:")) print(f"{n}是{'偶数' if n%2==0 else '奇数'}")
# 2、需求:根据用户输入的年龄,判断该用户是否已经成年(>=18,成年;否则,未成年) age = int(input("请输入年龄:")) if age >= 18: print(f"该年龄{age}已成年。") else: print(f"该年龄{age}未成年。") # 一行精简写法 a = int(input("请输入你的年龄:")) print(f"你的年龄{a}{'已成年' if a>=18 else '未成年'}")

if... elif... else...

作用:可以完成多个条件的判断(多分支判断)
注意事项:
1、elif 可以写多个
2、else 可有可无,如果有必须放在最后
3、多个条件判断是有顺序的,从上到下判断,如果前面有条件成立了,后面的条件就不会判断了

# 需求:根据用户输入的数字,判断该数字是正数,还是负数,还是0 num = int(input("请输入数字:")) if num > 0: print(f"{num}是一个正数。") elif num < 0: print(f"{num}是一个负数。") else: print(f"{num}是0")

案例

# 根据输入的用户名和密码进行系统登陆 == admin/666888 , root/563777,zhangsan/123456 username = input("请输入用户名:") password = input("请输入密码:") if username == "admin" and password == "666888": print("登录成功!") elif username == "root" and password == "563777": print("登录成功!") elif username == "zhangsan" and password == "123456": print("登录成功!") else: print("登录失败,用户名或密码错误!")

练习二

购物折扣计算:根据输入的购物车的商品总额,以及如下的折扣规则,计算实际应付的金额。

  • 金额 >= 500: 8折
  • 300 <= 金额 < 500: 9折
  • 100 <= 金额 < 300: 95折
  • 金额 < 100: 无折扣
# 初步写的(需要纠正) sum = float(input("购物车的商品总额:")) if sum >= 500: print(f"实际应付:{sum * 0.8}元") elif 300 <= sum < 500: print(f"实际应付:{sum * 0.9}元") elif 100 <= sum < 300: print(f"实际应付:{sum * 0.95}元") else: print(f"实际应付:{sum}元") # 更好的写法 # sum 是 Python 自带内置关键字,不建议拿来当变量名,容易出错,换成total_money更规范。 # 购物金额算折扣 # 接收输入的购物总金额,转为小数 total_money = float(input("购物车的商品总额:")) # 满500及以上 打8折 if total_money >= 500: pay = total_money * 0.8 # 满300不足500 打9折 elif 300 <= total_money < 500: pay = total_money * 0.9 # 满100不足300 95折 elif 100 <= total_money < 300: pay = total_money * 0.95 # 小于100 不打折 else: pay = total_money # 统一输出,只写一次打印,更整洁 print(f"实际应付金额:{pay:.2f} 元") # 精简经典写法(看懂即可,日常用上面标准版) total = float(input("购物车的商品总额:")) if total >= 500: rate = 0.8 elif total >= 300: rate = 0.9 elif total >= 100: rate = 0.95 else: rate = 1.0 real_pay = total * rate print(f"实际应付:{real_pay:.2f}元") # 巧思路:不用写上限,从上到下判断就行,简洁好记。

综合案例

# 三角形类型判断:根据输入的三个边的边长(正整数),判定是等边三角形、等腰三角形、普通三角形,还是不能构成三角形。 #(小学数学:构成三角形的条件,即任意两边之和要大于第三边。) # 1、接收输入的三角形三个边的边长 a = int(input("请输入第一个边的边长:")) b = int(input("请输入第二个边的边长:")) c = int(input("请输入第三个边的边长:")) # 2、判断三角形的类型 - pass 是一个空语句,起到一个语法占位的作用 # if a + b > c and a + c > b and b + c > a: # pass # else: # print(f"{a} {b} {c} 这三个边长不能构成三角形!!!") if a + b > c and a + c > b and b + c > a: if a == b and b == c: print(f"{a} {b} {c} 这三个边长构成等边三角形!!!") elif a ==b or b == c or c == a: print(f"{a} {b} {c} 这三个边长构成等腰三角形!!!") else: print(f"{a} {b} {c} 这三个边长构成普通三角形!!!") else: print(f"{a} {b} {c} 这三个边长不能构成三角形!!!") # 更简洁的经典写法 # 三角形判断 简洁规范版 a = int(input("请输入第一条边长:")) b = int(input("请输入第二条边长:")) c = int(input("请输入第三条边长:")) # 先排除负数、0 if a <= 0 or b <= 0 or c <= 0: print("边长必须是正整数!") elif a + b > c and a + c > b and b + c > a: if a == b == c: # 更简洁:a==b==c print("等边三角形") elif a == b or b == c or c == a: print("等腰三角形") else: print("普通三角形") else: print("不能构成三角形")

练习三

北京市居民年度用电电费计算:根据输入的用电度数,计算电费

北京市居民电费采用阶梯电价计价方式,所谓阶梯电价是指按照用户消费的电量分段定价,用电价格随用电量增加呈阶梯状逐级递增的一种电价定价机制。

阶梯电价规则:

  • 第一档:2880度以下,电费单价0.4883元/度
  • 第二档:2880-4800度,电费单价0.5383元/度
  • 第三档:4800度以上,电费单价0.7883元/度
# 北京居民阶梯电价 # 第一档:2880度及以内,0.4883元/度 # 第二档:2880~4800度,超出2880的部分0.5383元/度 # 第三档:超过4800度,超出4800的部分0.7883元/度 # 获取用户输入的用电度数,并转成浮点数 kwh = float(input("请输入年度用电度数:")) # 初始化电费 total_money = 0 if kwh <= 2880: # 全部在第一档 total_money = kwh * 0.4883 elif kwh <= 4800: # 2880度按一档,剩下的按第二档 part1 = 2880 * 0.4883 part2 = (kwh - 2880) * 0.5383 total_money = part1 + part2 else: # 2880一档,(4800-2880)二档,剩余按三档 part1 = 2880 * 0.4883 part2 = (4800 - 2880) * 0.5383 part3 = (kwh - 4800) * 0.7883 total_money = part1 + part2 + part3 # 输出结果,保留2位小数 print(f"年度总电费为:{total_money:.2f}元")

声明:本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询