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
Python奇技淫巧 - 持续更新中....的更多相关文章
- Python开发【第二十三篇】:持续更新中...
Python开发[第二十三篇]:持续更新中...
- Pig基础学习【持续更新中】
*本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...
- Pig语言基础-【持续更新中】
***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.*** Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...
- 史上最全的spark面试题——持续更新中
史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题 版权声明:本文为博主原创文章,遵循C ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- Atom使用记录(持续更新中)
部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进 ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- 系列文章:老项目的#iPhone6与iPhone6Plus适配#(持续更新中,更新日期2014年10月12日 星期日 )
本文永久地址为http://www.cnblogs.com/ChenYilong/p/4020399.html ,转载请注明出处. ********************************** ...
- 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET
知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined
随机推荐
- 使用synchronized获取互斥锁的几点说明
在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确 ...
- Python处理NetCDF格式数据为TIFF数据(附脚本代码)
博客小序:NetCDF格式数据广泛应用于科学数据的存储,最近几日自己利用python处理了一些NetCDF数据,特撰此博文以记之. 参考博客: https://www.cnblogs.com/shou ...
- Go 面试每天一篇(第 2 天)
下面这段代码输出什么,说明原因. func main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range ...
- Python Web Flask源码解读(二)——路由原理
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...
- Delphi - 通过WinAPI WinExec直接调用系统工具
看如下代码: WinExec('mspaint.exe', SW_SHOWNORMAL); // SW_SHOWNORMAL = 1 系统画图 WinExec('write.exe', SW_SHOW ...
- OpenCvSharp 通过特征点匹配图片
现在的手游基本都是重复操作,一个动作要等好久,结束之后继续另一个动作.很麻烦,所以动起了自己写一个游戏辅助的心思. 这个辅助本身没什么难度,就是通过不断的截图,然后从这个截图中找出预先截好的能代表相应 ...
- [python] - profilers性能分析器
1. 性能分析器: profile, hotshot, cProfile 2. 作用: 测试函数的执行时间 每次脚本执行的总时间
- CodeForces 1082 G Petya and Graph 最大权闭合子图。
题目传送门 题意:现在有一个图,选择一条边,会把边的2个顶点也选起来,最后会的到一个边的集合 和一个点的集合 , 求边的集合 - 点的集合最大是多少. 题解:裸的最大权闭合子图. 代码: #inclu ...
- 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 ...
- codeforces 478 D. Red-Green Towers(背包)
题目链接:http://codeforces.com/problemset/problem/478/D 题意:给出红色方块r个,绿色方块g个,问最高能叠几层等腰三角形,而且每一层的颜色必须相同. 题解 ...