zoukankan      html  css  js  c++  java
  • Python奇技淫巧 持续更新中....

    Python奇技淫巧

    人生苦短,我用Python;

    编程界这绝对不是一句空话,尤其是对于使用过多个语言进行工作的同学们来说,用Python的时间越长,越有一种我早干嘛去了的想法,没事,啥时候用Python都不晚,这篇分享主要集中在各种Python的经典用法、有趣的彩蛋等等,目的只有一个,让大家感受到Python的魅力;

    这篇分享计划是持续更新的,所以大家可以关注我或者收藏这篇帖子,会不定期更新,大家的脑洞黑操作也可以在评论区给出哈,说的有道理的我会更新到帖子中,现在开始正题;

    Python与我

    最早使用Python是16年,当时工作主要是Android开发,负责导航部分,当时经常会在调试功能时展示路网数据、导航位置数据等,但是这样调试成本是比较大的,首先APP每次都要运行,其次就是导航需要一个过程,且无法很好的略过(模拟导航与实际导航还是有差异的),因此经过老大建议开始学习Python,最初目的是通过Python结合Matplotlib绘制路网数据并可视化,从此一发不可收拾,到现在,基本任何一件过于重复性的工作,基本都会通过脚本完成,比如最近的一次是在5w个文件中通过一个csv文件中的数据提取出其中的3w个,当然实现的办法很多,但是不得不说,Python 5行代码搞定真的很爽,这就是我跟Python的故事,当然了,开始做机器学习方面的项目后,用Python就更多了,这些就不太属于本文要分享的部分了;

    正文

    First blood

    第一个点我想了很久,因为Python值得称道的实在是太多了,但是哪个才是那个最具有代表性的呢,它不一定是最炫酷的,不一定是最简短的,这里我选择列表推导式,第一次看到时惊为天人,超短的代码,冷艳的外表,强大的内在,确实很厉害,反正我现在一想到Python脑子里第一条就是它,一家之言哈,大家也可以分享下自己脑子里Python的第一个特点是啥;

    代码:

    	#计算抛1000枚硬币得到正面的概率
    	sum([int(round(random())) for x in range(1000)])/1000.
    	#根据中心极限定理,这个值随着次数的增加会愈加集中到理论值0.5附近
    

    看看,真的很爽,虽然项目中不建议这么用,但是用在脚本中时候,那还不是自己说了算,脚本嘛,爽就得了呗对吧(PS:注意最后一个1000后面跟着一个.表示小数哈,不然结果就为0了,这里我用的是Python2.7);

    第二回

    需求:有多个条件,或者说bool型变量,目的是判断其中全部为真、只要有一个为真这两种情况,其他语言大概率需要用到循环,而Python是如何处理的呢?

    代码:

    	x = [True, True, False]
    	if any(x):
    	  print '至少一个为真'
    	if all(x):
    	  print '全部为真'
    	if any(x) and not all(x):
    	  print '至少一个为真、一个为假'
    

    这回不仅仅清爽,而且可读性还很强,这就很无敌了,我们知道工作中写的代码,可读性基本是第一位的,那种上帝都看不懂的代码谁改过谁知道,心里的苦都没地方诉说,xD;

    第三回

    在循环中,一般处理是循环下标,通过下标索引元素,那么如果我循环得到的就是元素呢,看看Python是如何同时得到下标和元素的;

    代码:

    	a = [8, 23, 45, 12, 78]
    	for index, value in enumerate(a):
    	    print(index , value)
    

    emumerate在Python中非常常用,而且很实用;

    第四回

    这一回我想说一个简单,但是很Python的特性,交换变量,当我们在交换两个变量(或者多个,这个越多,越能体现Python这种特性的优势),通常需要临时变量做转接,看看Python是怎么做的;

    代码:

    	a=1
    	b=2
    	c=3
    	a,b,c = b,c,a
    

    这个特性很简单,用的也很多,但是我认为它代表的是Python的哲学,少就是多,我果然是个哲人;

    第五回

    第五回作为第一次Python分享的最后一回,我想用Python的彩蛋作为结尾,我觉得这也是Python作为一门语言不一样的地方,它不是严肃、一板一眼的,而是灵活有趣的;

    • Hello World import hello
    • 经典 Python 之禅 import this
    • 反地心引力漫画 import antigravity
    • C++ 程序员的福利 from future import braces
    • 愚人节彩蛋-python3 from future import barry_as_FLUFL

    最后

    希望大家积极补充啊,各种脑洞黑操作灵性都搞起来,上面也只是我的一家之言,抛砖引玉;

    最后的最后

    大家可以到我的Github上看看有没有其他需要的东西,目前主要是自己做的机器学习项目、Python各种脚本工具、数据分析挖掘项目以及Follow的大佬、Fork的项目等:https://github.com/NemoHoHaloAi

    作者:Ho Loong
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    ASP.NET Core 企业级开发架构简介及框架汇总
    SQL Server中的联合主键、聚集索引、非聚集索引
    C#进阶系列——WebApi 异常处理解决方案
    C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
    C#进阶系列——WebApi 接口参数不再困惑:传参详解
    实战 Windows Server 2012 群集共享卷
    SQL Server 表和索引存储结构
    SQL Server AlwaysOn架构及原理
    共轭分布
    反向传播BP为什么高效
  • 原文地址:https://www.cnblogs.com/helongBlog/p/11612574.html
Copyright © 2011-2022 走看看