判断语句还能这样写

简介: 判断语句还能这样写

今天总结一下Python中的所有的判断语句

1. 判断语句

1.1. if语句

age = 18
if age > 18:
    print('你已经18岁了')
else:
    print('小于18岁')

if系列的语句可以只含有if语句,而else语句是可选的,针对多个判断条件可以使用if-elif-else

age = 18
if age > 18:
    print('你已经18岁了')
elif age > 10:
    print('小于18岁,大于10岁')
else:
    print('小于10岁')

1.2. 三元运算符

在C语言中有三元运算符?:,在python中也有类似功能的语法

true if 判断条件 else false

msg = '你已经18岁了' if age > 18 else '小于18岁'

1.3. 'switch'语句

熟悉python的同学应该知道,在python里面并没有switch语句,但是我们可以利用listtupledict这些自带的数据结构配合index或者是key来实现switch语句。

我们先看下面这个使用if-elif-else的例子

age = 18
if age == 10:
    print('10岁了')
elif age == 12:
    print('12岁了')
elif age == 14:
    print('14岁了')
else:
    print('不是10,12,14岁')

使用一个dict可以改造上面这个例子

age = 18
switch_dict = {
    10:'10岁了',
    12:'12岁了',
    14:'14岁了'
}
print(switch_dict.get(age, '不是10,12,14岁'))
# '不是10,12,14岁'

通过上面这个改造的例子,可以发现,通过dict来实现类似switch语句的功能,同时也避免了出现多个if语句的情况。除此之外,在判断条件较少时,还可以直接使用list或者tuple来进行实现判断,比如下面的例子

def do_when_true():
    print('true')
def do_when_false():
    print('false')
cond = 1  # True
cond_tuple = (do_when_false,do_when_true)
cond_tuple[cond]
# 上面两行代码等价于下面的代码
if cond:
    do_when_true()
else:
    do_when_false()

通过index索引来进行自动选择不同的函数,从而实现判断语句。

相关文章
|
弹性计算 Linux
阿里云ECS磁盘在线扩容
阿里云ECS磁盘在线扩容
1583 0
|
JavaScript Windows Python
Windows DOS进入指定盘符(磁盘路径)
Windows DOS进入指定盘符(磁盘路径)
504 1
|
4月前
|
存储 机器学习/深度学习 边缘计算
OSS生命周期管理自动化:7天冷归档+30天低频访问的合规存储策略(结合企业级数据分级场景)
在数据爆炸增长背景下,企业面临存储成本攀升与合规要求升级的双重挑战。本文以金融与医疗行业实践为例,深入解析如何通过OSS自动化生命周期管理实现数据分级存储优化。内容涵盖数据热力模型分析、存储类型成本对比、状态机驱动的自动降级策略、合规性保障机制及机器学习动态预测方案,最终达成存储成本下降64.3%、合规审计通过率提升至98.7%的实战效果。适合关注云存储架构优化、数据治理与合规管控的技术决策者参考。
163 0
|
10月前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
340 6
|
JSON Java Go
Go 语言性能优化技巧
在Go语言中优化性能涉及数字字符串转换(如用`strconv.Itoa()`代替`fmt.Sprintf()`)、避免不必要的字符串到字节切片转换、预分配切片容量、使用`strings.Builder`拼接、有效利用并发(`goroutine`和`sync.WaitGroup`)、减少内存分配、对象重用(`sync.Pool`)、无锁编程、I/O缓冲、正则预编译和选择高效的序列化方法。这些策略能显著提升代码执行效率和系统资源利用率。
234 13
|
缓存 关系型数据库 MySQL
分享一个实用的MySQL一键巡检脚本
分享一个实用的MySQL一键巡检脚本
256 0
|
JavaScript
解决uniapp分段器参数改变不渲染,适用所有组件
解决uniapp分段器参数改变不渲染,适用所有组件
758 0
|
JSON 自然语言处理 数据可视化
如何用Elasticsearch实现Word、PDF,TXT文件的全文内容检索?
如何用Elasticsearch实现Word、PDF,TXT文件的全文内容检索?
如何用Elasticsearch实现Word、PDF,TXT文件的全文内容检索?
|
存储 Cloud Native 编译器
C++智能指针种类以及使用场景
C++智能指针种类以及使用场景
|
存储 缓存 网络安全
OpenLDAP集成sssd同步用户并集成SSH登录
OpenLDAP集成sssd同步用户并集成SSH登录
677 2