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本身就是消耗资源最大的编程语言。

相关文章
|
21天前
|
存储 缓存 安全
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
|
5天前
|
数据采集 机器学习/深度学习 数据挖掘
Python数据清洗与预处理面试题解析
【4月更文挑战第17天】本文介绍了Python数据清洗与预处理在面试中的常见问题,包括Pandas基础操作、异常值处理和特征工程。通过示例代码展示了数据读取、筛选、合并、分组统计、离群点检测、缺失值和重复值处理、特征缩放、编码、转换和降维。强调了易错点,如忽视数据质量检查、盲目处理数据、数据隐私保护、过度简化特征关系和忽视模型输入要求。掌握这些技能和策略将有助于在面试中脱颖而出。
23 8
|
7天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
28 0
|
7天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
21 0
|
11天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。
|
12天前
|
Java 数据库 Spring
切面编程的艺术:Spring动态代理解析与实战
切面编程的艺术:Spring动态代理解析与实战
26 0
切面编程的艺术:Spring动态代理解析与实战
|
13天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
28 0
|
1月前
|
XML 安全 API
Python读写XML文件:深入解析与技术实现
Python读写XML文件:深入解析与技术实现
51 0
|
7月前
|
XML JavaScript 关系型数据库
|
7月前
|
XML JSON 编解码

推荐镜像

更多