当前位置: 首页 > news >正文

万户高端网站建设网站登陆注册怎么做

万户高端网站建设,网站登陆注册怎么做,推广渠道怎么写,品牌网站建设新闻文章目录前言为什么要写本文#xff1f;1、代码性能检测1.1、使用 timeit 库1.2、使用 memory_profiler 库1.3、使用 line_profiler 库2、使用内置函数和库3、使用内插字符串 f-string4、使用列表推导式5、使用 lru_cache 装饰器缓存数据6、针对循环结构的优化7、选择合适算法… 文章目录前言为什么要写本文1、代码性能检测1.1、使用 timeit 库1.2、使用 memory_profiler 库1.3、使用 line_profiler 库2、使用内置函数和库3、使用内插字符串 f-string4、使用列表推导式5、使用 lru_cache 装饰器缓存数据6、针对循环结构的优化7、选择合适算法和数据结构8、推荐书籍结语前言 hello大家好啊我是作家桑。本文为大家介绍提升 Python 代码性能的六个技巧希望大家看完有所收获。 为什么要写本文 首先讨厌 Python 的人呢总是会吐槽 Python 的性能速度慢。但是事实上程序运行速度的快慢都在很大程度上取决于编写程序的开发人员以及开发人员的算法能力和对代码的优化能力。Python 虽然在运行效率上有所欠缺但是值得一提的是在开发效率方面 Python 却比其它编程语言高很多。为了弥补 Python 在运行效率上的不足所以笔者开始创作本文为大家介绍提升 Python 代码性能的技巧。 某乎上的一位网友对 Python 的吐槽 1、代码性能检测 在对代码进行优化之前通常需要检测是哪些代码片段拖慢了整个程序的运行速度。在这里笔者推荐三个方法帮助开发者们找出程序的瓶颈这样就知道应该把注意力放在哪里。 以一个 Python 实现斐波那契数列的程序为示例 # 斐波那契数列 def Fibonacci():a, b 0, 1i 0while i 100:print(b)a, b b, abi 1Fibonacci()1.1、使用 timeit 库 timeit 模块是 Python 的内置模块。timeit 模块致力于衡量代码的性能模块内提供了许多个函数和类以便开发者能够精确地测量代码的执行时间。timeit 模块用法较为简单适合用来计算一小段代码的运行时间。 代码示例 import timeit def Fibonacci():a, b 0, 1i 0while i 100:print(b)a, b b, abi 1result timeit.timeit(Fibonacci, number5)print(fFibonacci函数的运行时间为: {result})运行结果 1.2、使用 memory_profiler 库 memory_profiler 是 Python 的第三方库需要使用 pip 命令进行安装是一个可根据每行代码查看内存占用的工具。开发者使用 memory_profiler 库可以有效的定位到程序中占有内存最多的代码以此找到程序运行的瓶颈。 pip 命令安装 代码示例 from memory_profiler import profileprofile def Fibonacci():a, b 0, 1i 0while i 100:print(b)a, b b, abi 1Fibonacci()运行结果 1.3、使用 line_profiler 库 和 memory_profiler 类似line_profiler 也是 Python 的第三方库是一个可以逐行参看代码运行耗时的分析工具。 代码示例 from line_profiler import LineProfilerdef Fibonacci():a, b 0, 1i 0while i 100:print(b)a, b b, abi 1lp LineProfiler() lp_wrap lp(Fibonacci) lp_wrap() # 输出统计数据 lp.print_stats()运行结果 接下来就开始介绍提升 Python 代码性能的六个技巧。 2、使用内置函数和库 Python 的内置函数和库与我们常用的自定义函数、自定义数据类型相比运行速度会显得非常快。这主要是因为内置数据类型的底层是使用 C 语言实现的而 C 语言又是目前为止执行效率最高的高级语言这是使用 Python 所无法比较的。而且 Python 的开发团队也对这些内置函数和库进行了良好的测试和优化。 示例代码 my_list [] word_list hello,worldfor word in word_list:my_list.append(word.upper())print(my_list)更好的方法 word_list hello,world# 使用内置map函数 my_list map(str.upper, word_list)print(list(my_list))3、使用内插字符串 f-string 在 Python 程序中使用支持插值的 f-string 取代 C 风格的格式字符串与 str.format 方法会使得字符串操作效率得到提高。根据《Effective Python》一书中的介绍, 使用 f-string 是个简洁而强大的机制它在简洁性、可读性和速度方面都比其他构建字符串的方式要更好。 示例代码 places 3 number 1.23456my_str number值和places值分别为{0}和{1}.format(number, places)print(my_str)更好的方法 places 3 number 1.23456my_str fnumber值和places值分别为{number}和{places}print(my_str)4、使用列表推导式 在小片段的 Python 代码中使用列表推导式代替循环语句可以使得代码更加简洁易读在大型项目中相较于使用循环语句使用列表推导式的执行效率也会更高。这是因为列表推导式是直接在 C 语言的环境下运行的所以速度更快而循环语句的解析执行往往比列表推导式的步骤更多所以速度就更慢。 示例代码 my_list [] # 计算1到100以内的奇数 for i in range(1, 100): if i % 2 1:my_list.append(i)print(my_list)更好的方法 my_list [i for i in range(1, 100) if i % 2 1]print(my_list)5、使用 lru_cache 装饰器缓存数据 将程序执行时的信息存储在缓存中可以使程序运行的更加高效。在 Python 中也可以导入functools 库中的 lru_cache 装饰器来实现缓存操作该操作会在内存中存储特定类的缓存以此来达到程序更快的驱动速度。 示例代码 import time def my_func(x):time.sleep(2) # 模拟程序执行时间return x print(my_func(1)) print() print(my_func(1)) 更好的方法 import functools import time # 最多缓存128个不同的结果 functools.lru_cache(maxsize2) def my_func(x):time.sleep(2) # 模拟程序执行时间return x print(my_func(1)) print() print(my_func(1)) # 结果已被缓存无需等待立即返回6、针对循环结构的优化 在通常情况下循环语句在程序中的执行总是会占据大量时间。因此我们开发 Python 程序时都会强调优化其中的循环结构比方说避免在一个循环中使用点操作符和不必要的重复操作等。 示例代码 my_list [] word_list [hello,, word]for word in word_list: new_str str.lower(word) # 不必要的重复操作和点运算符my_list.append(new_str)print(my_list)更好的方法 my_list [] word_list [hello,, word] lower str.lowerfor word in word_list:my_list.append(lower(word))print(my_list)7、选择合适算法和数据结构 提到代码的运行效率就不得不提到算法和数据结构能力了。 算法也就是程序解决问题的步骤而数据结构是指数据的存储和组织。选择合适的算法和数据结构可以在很大程度上提升 Python 代码的运行效率。 示例代码 # 在有序数组中使用二分查找算法查找元素要比使用顺序查找算法效率更高 def sequential_search(nums,target):for num in nums:if num target:return nums.index(num)return -1 # 返回-1表示没有找到目标元素nums [1, 8, 10, 11, 22] target 11 print(sequential_search(nums, target))更好的方法 # 二分查找 def binary_search(nums,target):first,last 0, len(nums) - 1 # 定义数组的第一个元素下标和最后一个元素下标while first last: #左闭右闭区间mid_index (first last) // 2 #中间元素的下标值if nums[mid_index] target: first mid_index 1elif nums[mid_index] target:last mid_index - 1else:return mid_index return -1nums [1, 8, 10, 11, 22] target 11 print(binary_search(nums, target))8、推荐书籍 在文章的最后为了能够让大家编写高质量的 Python 代码推荐给大家一本书叫 《Effective Python》书中讲的是编写高质量 Python 代码的90个有效方法。 结语 以上就是提升 Python 代码性能的技巧介绍啦希望对大家有所帮助。感谢大家的支持。
http://www.w-s-a.com/news/671235/

相关文章:

  • 免费h5模板网站模板汽车报价网址
  • 蔡甸网站建设烟台网站建设yt
  • 最流行的网站开发新开的网页游戏平台
  • 暴富建站wordpress 标签分类
  • 搞笑网站源码百度快照替代
  • 重庆网站建设哪家公司哪家好关键词是怎么排名的
  • 青县网站建设今天国际大事新闻
  • 深圳正规网站制作哪里好怎样优化网络
  • 米拓网站建设教程dw成品网站成品视频教学
  • 用jsp做的网站源代码天门网站网站建设
  • 百度如何把网站做链接地址有没有资源可以在线观看
  • 淮安做网站找哪家好电子商务网站建设规划书的内容
  • 开发网站建设用什么框架php黄页系统
  • 聊城制作网站全球十大电商平台排名
  • 用什么来网站开发好mega menu wordpress
  • 深圳制作网站有用吗wordpress的主题
  • 网站的规划与创建天津市南开区网站开发有限公司
  • 免备案网站主机建站哪个平台好
  • python做网站 不适合单页营销分享网站
  • 珠海市研发网站建设建设网站挣钱
  • 阿里巴巴国际站特点做wps的网站赚钱
  • wordpress更换域名后网站打不开宜昌建设银行网站
  • 写出网站开发的基本流程百度网页电脑版入口
  • 网站设计有限公司怎么样网站建设西班牙语
  • 网站安全解决方案宁波seo网络推广优化价格
  • 做网站带来好处wordpress可以做oa系统吗
  • 建筑设计人才招聘网站h5营销型网站suteng
  • 做app和网站怎样如何做html网站
  • php开发手机端网站开发更换网站标题
  • 提供网站建设报价延津县建设局网站