ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Python22-26:核心语法-流程控制语句-if条件判断

Python22-26:核心语法-流程控制语句-if条件判断 数据的逻辑处理中最核心的就是流程控制语句其主要涉及到三类条件判断、模式匹配、循环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%20 else 奇数})# 2、需求根据用户输入的年龄判断该用户是否已经成年18成年否则未成年 age int(input(请输入年龄)) if age 18: print(f该年龄{age}已成年。) else: print(f该年龄{age}未成年。) # 一行精简写法 a int(input(请输入你的年龄)) print(f你的年龄{a}{已成年 if a18 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/563777zhangsan/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: # 更简洁abc 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}元)声明本篇学习笔记参考黑马程序员相关课程部分素材来源于网络公开资料及本人补充文中为个人整理复盘仅供学习交流使用。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进