平均薪资20k+的编程语言,6条代码优化建议,效率提升!

黑马程序员视频库

播妞QQ号:3077485083

传智播客旗下互联网资讯、学习资源免费分享平台

程序员之间一直流传着这么一句话“人生苦短,我用Python”,Python之所以如此受欢迎,与其自身的优势分离不开,它能让你在短时间内通过极少量代码就能完成许多操作。不仅如此,它还轻松支持多任务处理,比如多进程。

但是不喜欢Python的人经常会吐嘈Python运行太慢。事实并非如此,作为程序猿就是希望如何优化代码,精简代码。

今天播妞为大家精选6条python代码优化建议,助你提升工作效率。

因为GIL的存在,Python很难充分利用多核CPU的优势。但是,可以通过内置的模块multiprocessing实现下面几种并行模式:

1.多进程并行编程:

对于CPU密集型的程序,可以使用multiprocessing的Process,Pool等封装好的类,通过多进程的方式实现并行计算。但是因为进程中的通信成本比较大,对于进程之间需要大量数据交互的程序效率未必有大的提高。

2.多线程并行编程:

对于IO密集型的程序,multiprocessing.dummy模块使用multiprocessing的接口封装threading,使得多线程编程也变得非常轻松(比如可以使用Pool的map接口,简洁高效)。分布式:multiprocessing中的Managers类提供了可以在不同进程之共享数据的方式,可以在此基础上开发出分布式的程序。不同的业务场景可以选择其中的一种或几种的组合实现程序性能的优化。

3.优化算法时间
算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。


例如:set的用法
set的union,interp,difference操作要比list的迭代要快。因此如果涉及到求list交集,并集或者差的问题可以转换为set来操作。

4.针对循环的优化
每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。例如,考虑下面的代码:
每一次你调用方法str.upper,Python都会求该方法的值。然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。优化循环的关键,是要减少Python在循环内部执行的工作量,因为Python原生的解释器在那种情况下,真的会减缓执行的速度。
    lowerlist = ['this', 'is', 'lowercase']
    upper = str.upper
    upperlist = []
    append = upperlist.append
    for word in lowerlist:
        append(upper(word))
        print(upperlist)
        #Output = ['THIS', 'IS', 'LOWERCASE']

5.函数选择
在循环的时候使用xrange而不是range;使用xrange可以节省大量的系统内存,因为xrange()在序列中每次调用只产生一个整数元素。而range()將直接返回完整的元素列表,用于循环时会有不必要的开销。在python3中xrange不再存在,里面range提供一个可以遍历任意长度的范围的iterator。

6.使用性能分析工具
除了上面在ipython使用到的timeit模块,还有cProfile。cProfile的使用方式也非常简单:python–m cProfile filename.py,filename.py是要运行程序的文件名,可以在标准输出中看到每一个函数被调用的次数和运行的时间,从而找到程序的性能瓶颈,然后可以有针对性地优化。

Python 诞生之初被誉为最容易上手的编程语言。Python的设计哲学强调代码的可读性和简洁的语法,使得Python比其他语言更加的简洁。

同时由于人工智能的快速发展、国家政策的大力支持、BAT等大厂的广泛使用等使Python家喻户晓。现在连小学生的家长都会着急让孩子快点开始学习Python。

随着Python的火热,除了网上的各种相关信息,更直观的表现就在于其薪资报酬了。根据网站的数据,我们也可以看出,选择Python就相当于拥有了一个高薪职业。

▲数据来自看准网

未来的世界将是人工智能的世界,而Python则是人工智能开发的首选语言。就业前景广阔,薪资待遇又高,很多人都想通过掌握技术来实现人生的逆袭。

黑马程序员针对不同人群,开设两大精准班型,python开发特训班+人工智能AI进阶班,一站式快捷学习,培养复合型人才。实战型课程体系,铸就技术硬实力。

黑马程序员Python开发特训班+人工智能AI进阶班,研发项目库,实战时长占比超70%,10大精选热门项目,262个课时实践操练,可延伸10+行业项目技术。


多领域职业选择,助力学员高端就业,工作快人一步,想学就现在!

【Python开发特训班+人工智能AI进阶班】

7月15日基础班 火爆报名中

更多班次 扫码了解详情

????????????

END

- 推荐阅读 -

自以为很懂JVM,面试时却栽在这道题!

2020-07-08

不仅流行,还很赚钱!15k就业不迷茫!

2020-07-06

28岁程序身价过亿,从字节提前“退休”,网友:你到底挣了多少钱?

2020-07-04

大数据有多牛?怎么知道我去过新发地?

2020-07-07

我就知道你“在看”

Matlab基于粒子群优化算法及鲁棒MPPT控制器提高光伏并网的效率内容概要:本文围绕Matlab在电力系统优化与控制领域的应用展开,重点介绍了基于粒子群优化算法(PSO)和鲁棒MPPT控制器提升光伏并网效率的技术方案。通过Matlab代码实现,结合智能优化算法与先进控制策略,对光伏发电系统的最大功率点跟踪进行优化,有效提高了系统在不同光照件下的能量转换效率和并网稳定性。同时,文档还涵盖了多种电力系统应用场景,如微电网调度、储能配置、鲁棒控制等,展示了Matlab在科研复现与工程仿真中的强大能力。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事新能源系统开发的工程师;尤其适合关注光伏并网技术、智能优化算法应用与MPPT控制策略研究的专业人士。; 使用场景及目标:①利用粒子群算法优化光伏系统MPPT控制器参数,提升动态响应速度与稳态精度;②研究鲁棒控制策略在光伏并网系统中的抗干扰能力;③复现已发表的高水平论文(如EI、SCI)中的仿真案例,支撑科研项目与学术写作。; 阅读建议建议结合文中提供的Matlab代码与Simulink模型进行实践操作,重点关注算法实现细节与系统参数设置,同时参考链接中的完整资源下载以获取更多复现实例,加深对优化算法与控制系统设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值