switch与if效率实例解析·5年以下编程经验必看【Python】

简介: switch与if效率实例解析·5年以下编程经验必看【Python】

绝大多数的程序员喜欢使用if判断,但是真的效率高吗?还是其它的,可能只会用if呢!我们今天就具体测一测,用事实说话,测试量100W:


本文采用的是【Python】语言进行测试,后续会有【C#】


switch效率测试代码:


import random
import timeit
#模拟switch
def switch(num):
    return {
        0 : 1,
        1 : 2,
        2 : 3,
        3 : 4,
        4 : 5,
        5 : 6,
        6 : 7,
        7 : 8,
        8 : 9,
        9 : 0
    }.get(num,None)
#一百万次
def testSwitch():
    count=1000000
    for x in range(count):
        ra=random.randint(0,10)
        switch(ra)
start =timeit.default_timer()
testSwitch()
end = timeit.default_timer()
print('耗时: %s Seconds'%(end-start))


100W次swtich判断,消耗时间1641ms


微信图片_20220112154336.png


if效率测试代码:


import random
import timeit
#一百万次
def testSwitch():
    count = 1000000
    a = 1
    for x in range(count):
        ra = random.randint(0,10)
        if x == 0:
            a = 0
        elif x == 1: a = 1
        elif x == 2: a = 2
        elif x == 3: a = 3
        elif x == 4: a = 4
        elif x == 5: a = 5
        elif x == 6: a = 6
        elif x == 7: a = 7
        elif x == 8: a = 8
        else : a = 9
start = timeit.default_timer()
testSwitch()
end = timeit.default_timer()
print('耗时: %s Seconds' % (end - start))


100W次if判断,消耗时间1520ms


微信图片_20220112154404.png


结论:


综上实验可得:


1、python是没有提供switch开关判断的,所以模拟出来的效果一般


2、python中没的选,只能用if判断,最多还有一个三元运算符


为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)


想测试的自己可以测试一下,意义不大。python本身就是消耗资源最大的编程语言。

相关文章
|
10月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
2138 0
|
10月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1589 102
|
10月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
501 104
|
10月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
390 103
|
10月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
413 82
|
9月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
517 3
|
9月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
749 3
|
9月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
560 3
|
10月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
447 2
|
9月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
778 0

推荐镜像

更多