python--选择分支结构

news/2024/11/15 3:12:56/

if else 条件语句

if else语句对条件进行判断,然后执行不同的代码,这称为选择结构或分支结构。

if 表达式:代码块
if 表达式:代码块1
else:代码块2
if 表达式1:代码块1
elif 表达式2:代码块2
elif 表达式3:代码块3......
else:代码块n

不管“表达式”的结果是什么类型,if else 都能判断它是否成立(真或者假)。

例子:

# 判断软件是否可以使用
age = int(input('请输入你的年龄:'))
if age < 18:print('未成年无法使用该软件。')
print('软件正在打开,请稍等...')
if age < 18:print('未成年无法使用该软件。')print('未成年应该好好学习,天天向上,将来努力报销祖国。')sys.exit()
else:print('你已成年,可以使用该软件。请携带有效证件进行办理。')print('请勿成谜其中。合理安排时间。')print('软件正在打开...')

sys 模块的 exit() 函数用于退出程序。

sys.exit()退出程序:

  • 退出程序机制:(不扑捉SystemExit异常)

通过引发 **SystemExit **异常来退出Python程序。

import sys
import timeprint("Type exit to exit.")
while True:response = input("Your favorite sports: ")if response.upper() == "EXIT":print("You've typed exit, and system will exit right now...")time.sleep(0.1)sys.exit()  # 程序直接退出,不捕捉异常print('You typed ' + response + '.')
  • 捕捉SystemExit异常,可以做一些工作,如打印异常消息等。
import sysdef f1(str):global sportsif str.upper() == "EXIT":sys.exit("User exit")else:sports.append(str)usrs = ['Lily', 'Hebe', 'Tom']
for usr in usrs:sports = []print(usr + ", input your favorite sports and type exit to exit.")while True:response = input(": ")try:f1(response)except SystemExit as msg:  # 捕捉异常,不退出程序,此处用来打印异常消息和退出while循环print(msg)print(usr + "'s favorite sports is " + ", ".join(i.lower() for i in sports) + '.')break

例子:判断一个人的身材是否合理:

# 判断一个人的身材是否合理:
height = float(input('请输入你的身高:'))
weight = float(input('请输入你的体重:'))bmi = weight / (height * height)if bmi < 18.5:print('BMI指数为:%.2f' %bmi)print('体重过轻。')
elif bmi < 24.9:print('BMI指数为:%.2f' %bmi)print('体重正常,继续保持。')
elif bmi < 29.9:print('BMI指数为:%.2f' %bmi)print('体重过重。可以适当减肥。')
else:print('BMI指数为:%.2f' %bmi)print('肥胖。请私教进行减肥。')

表达式成立情况:

b = False
if b:print('b是True')
else:print('b是False')
n = 0
if n:print('n不是零值')
else:print('n是零值')
s = ""
if s:print('s不是空字符串')
else:print('s是空字符串')
l = []
if l:print('l不是空列表')
else:print('l是空列表')
d = {}
if d:print('d不是空字典')
else:print('d是空字典')
def func():print("函数被调用")
if func():print('func()返回值不是空')
else:print('func()返回值为空')# b是False
# n是零值
# s是空字符串
# l是空列表
# d是空字典
# 函数被调用
# func()返回值为空

if 语句嵌套:

if 表达式 1if 表示式 2:代码块 1else:代码块 2
if 表示式 1if 表达式 2:代码块 1else:代码块 2
elseif 表达式 3:代码块 3else:代码块 4

判断是否酒后驾车:

# 判断是否为酒后驾车
proof = float(input("输入驾驶员每 100ml 血液酒精的含量(mg):"))if proof < 20:print('你符合文明驾驶,未构成酒驾。')
else:if proof < 80:print('你的酒精含量为:%.2f,已构成酒后驾使,现对你处以记3分,200元的罚款。' %proof)else:print('你的酒精含量为:%.2f,已超过80mg/100ml构成醉驾,你将被拘留7天并处以1000元罚款和记6分的处罚。' %proof)

pass 与 assert:

pass 是 Python 中的关键字,用来让解释器跳过此处,什么都不做。

assert 语句通常用于检查用户的输入是否符合规定,还经常用作程序初期测试和调试过程中的辅助工具。

assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误。


http://www.ppmy.cn/news/37356.html

相关文章

ubuntu16.04搭建gitlab

ubuntu16.04搭建gitlab 目录ubuntu16.04搭建gitlab一、在虚拟机ubuntu16.04安装gitlab二、配置gitlab三、使用gitlab四、踩坑记录工作中遇到需要在远端服务器搭建gitlab&#xff0c;耗时4天&#xff0c;踩坑无数&#xff0c;特此开个虚拟机再次搭建一次gitlab并记录供以后参考&…

redis --- 常用key命令

目录 一、常用key命令 1.1、keys *: 1.2、exists key&#xff1a; 1.3、type key&#xff1a; 1.4、del key&#xff1a; 1.5、unlink key 1.6、ttl key 1.7、expire key 秒钟 1.8、move key dbindex【0-15】 1.9、select dbindex 1.10、dbsize 1.11、flushdb【慎用】 1.1…

AOP工作流程

AOP工作流程3&#xff0c;AOP工作流程3.1 AOP工作流程流程1:Spring容器启动流程2:读取所有切面配置中的切入点流程3:初始化bean流程4:获取bean执行方法验证容器中是否为代理对象验证思路步骤1:修改App类,获取类的类型步骤2:修改MyAdvice类&#xff0c;不增强步骤3:运行程序步骤…

10个华为华为交换机常用的Python脚本,网络工程师收藏!

华为交换机常用的Python脚本可以用于自动化网络管理和监控&#xff0c;可以帮助网络管理员提高工作效率和降低操作风险。 以下是一些常用的Python脚本示例&#xff1a; 1、登录华为交换机 from netmiko import ConnectHandlerhuawei_switch {device_type: huawei,ip: 192.1…

Python __all__变量用法

事实上&#xff0c;当我们向文件导入某个模块时&#xff0c;导入的是该模块中那些名称不以下划线&#xff08;单下划线“_”或者双下划线“__”&#xff09;开头的变量、函数和类。因此&#xff0c;如果我们不想模块文件中的某个成员被引入到其它文件中使用&#xff0c;可以在其…

【python可视化】汇总中国的省市图,并且带经纬度边界

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言1.安装basemap2.下载中国的省市.shp文件3. 代码前言 汇总中国的省市图&#xff0c;并且带经纬度边界&#xff0c;用的是mpl_toolkits工具库&#xff0c;pip 和c…

基于Spring Boot垃圾分类网站

文章目录 项目介绍主要功能截图:前台首页垃圾详情垃圾图谱个人中心后台用户管理垃圾分类管理员管理垃圾管理垃圾分类管理垃圾图谱管理部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都…

c++11 标准模板(STL)(std::unordered_multiset)(十一)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_multiset;(1)(C11 起)namespace pmr { …