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

Python奇技淫巧 - 持续更新中....的更多相关文章

  1. Python开发【第二十三篇】:持续更新中...

    Python开发[第二十三篇]:持续更新中...

  2. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  3. Pig语言基础-【持续更新中】

      ***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.***   Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...

  4. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. Atom使用记录(持续更新中)

    部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进 ...

  7. java视频教程 Java自学视频整理(持续更新中...)

    视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...

  8. 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )

    本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...

  9. 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET

    知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined

随机推荐

  1. 使用synchronized获取互斥锁的几点说明

    在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确 ...

  2. Python处理NetCDF格式数据为TIFF数据(附脚本代码)

    博客小序:NetCDF格式数据广泛应用于科学数据的存储,最近几日自己利用python处理了一些NetCDF数据,特撰此博文以记之. 参考博客: https://www.cnblogs.com/shou ...

  3. Go 面试每天一篇(第 2 天)

    下面这段代码输出什么,说明原因. func main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range ...

  4. Python Web Flask源码解读(二)——路由原理

    关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...

  5. Delphi - 通过WinAPI WinExec直接调用系统工具

    看如下代码: WinExec('mspaint.exe', SW_SHOWNORMAL); // SW_SHOWNORMAL = 1 系统画图 WinExec('write.exe', SW_SHOW ...

  6. OpenCvSharp 通过特征点匹配图片

    现在的手游基本都是重复操作,一个动作要等好久,结束之后继续另一个动作.很麻烦,所以动起了自己写一个游戏辅助的心思. 这个辅助本身没什么难度,就是通过不断的截图,然后从这个截图中找出预先截好的能代表相应 ...

  7. [python] - profilers性能分析器

    1. 性能分析器: profile, hotshot, cProfile 2. 作用: 测试函数的执行时间 每次脚本执行的总时间

  8. CodeForces 1082 G Petya and Graph 最大权闭合子图。

    题目传送门 题意:现在有一个图,选择一条边,会把边的2个顶点也选起来,最后会的到一个边的集合 和一个点的集合 , 求边的集合 - 点的集合最大是多少. 题解:裸的最大权闭合子图. 代码: #inclu ...

  9. Codeforces 734D. Anton and Chess(模拟)

    Anton likes to play chess. Also, he likes to do programming. That is why he decided to write the pro ...

  10. codeforces 478 D. Red-Green Towers(背包)

    题目链接:http://codeforces.com/problemset/problem/478/D 题意:给出红色方块r个,绿色方块g个,问最高能叠几层等腰三角形,而且每一层的颜色必须相同. 题解 ...