前言
前言之前的前言
最近朋友圈被 python 刷了屏, 无论是同学, 还是运营, 文案, 甚至连微商们都立下了好好学 python 的 flag, 都发了分享进入 python 即时训练营的朋友圈. 至于 python 为什么这么火, 我就不多做赘述了, 大家耳濡目染早已知道, 小蛇废话不多说, 让我们一起单刀直入学 python 吧.
先说明一下, 在简书江湖, 我一直用小红豆这个名号混迹, 为何突然之间改为小蛇? 那是因为, python 在英文里有蛇的意思, 取这个名字也是祝福自己学习 python 事半功倍吧.
为何用 python
如果把程序员的天下比作一个江湖, 那么我觉得在现如今的江湖, 有三种语言功夫是必须要会的. C,python,Java. 为何这么说呢? 看过射雕英雄传的人都知道, 郭靖天资不高, 在快到嘉兴府醉仙楼比武之约时, 丘处机仍然说, 论武功郭靖不如杨康. 可为何比武前夜得到丘处机指点心法一二最后却反败为胜? 是因为郭靖基本功扎实.
C 语言就是编程的基本功. 只想把 python 作为闲时娱乐的一个工具无需在意基本功, 可是立志要进入程序员这个江湖的人还是应该首先把基本功练扎实. 用 C 把数据结构里的轮子重新写一遍, 一方面你可以在这个过程中明确自己对编程是否感兴趣, 一方面如果你真的感兴趣, 你就会发现编程之美.
如果把 C 比作江南七怪教授给郭靖的基本功, 那么 java 就是洪七公教授给郭靖的降龙十八掌. Java 基本上是一个遇佛杀佛, 遇魔杀魔的存在, web,app, 后台等等无所不包, 而且现在大规模工程用的清一色全是 java. 可他也有一个弊端, 那就是消耗内存, 用在一些芝麻粒的小事上有些杀鸡焉用牛刀的感觉. 郭靖内力充沛, 那也不是随便就用这招, 无不是遇到绝境, 不得已才祭出这最后的法宝.
那么 python 是个什么地位呢? 它可以比作是洪七公另一绝学, 打狗棒法. 你说乞丐打狗总不能用降龙十八掌吧, 这打狗棒法便派上用场. 洪七公在教授给黄蓉时也说, 学会此法, 应付一般二流高手, 绰绰有余.
这里不是说 python 比起 java 不如, 语言没有高低优劣之分. Java 擅长应对大型工程, python 擅长应付一些小规模应用. 比如爬个百来十页的网站, 处理一些计算量大的矩阵, 自己闲来无事想做个数据分析, 画个饼图, 这些都是 python 所擅长的. 这些工程往往百行代码就能解决, 可是如果用 java, 还没写就有了十来行代码, 真的是得不偿失.
怎么形容呢? Java 就好像一个蒸蒸日上的清王朝, python 好比西方舶来的奇巧淫技, 谁知道 python 有一天会不会颠覆如今由 java 构建的王朝呢?
python 的简洁优雅
Life is short, you need python.python 自问世以来就以简洁优雅而闻名于世, 那么 python 到底是怎么个简洁法呢? 下面举个例子大家体会一下.
words = ['abc', 'cd', 'ddffb', 'a'] print(sorted(words, key = len, reverse = False))
字母排序. png
仅仅两句代码就完成了先按照字母个数多少, 再按照字母表顺序的排序. sorted 是一个函数, 它完成了按字母表顺序的排序. key 是这个函数的一个参数, 用来完成额外排列顺序的提供. 在这里, len() 本身是一个函数用来度量元素长度, 却也可以作为参数提供给 sorted, 意思是在按照字母表顺序基础上, 优先按照单词长度排序.
函数作为参数传递给另一个函数本是所有语言中都有的功能, 可是这一点在 python 中体现的尤为明显, 而且更加灵活. 以后大家可以慢慢体会到, 这一部分在 python 高阶函数用法中会有详细介绍.
再看一段代码.
import requests
kv = {'wd' : 'python'}
lst1 = ['c', 'python', 'java', 'php', 'go', 'javascript', 'vb']
lst2 = []
for i in lst1:
r=requests.get('https://www.baidu.com/s?wd='+i, headers = {'User-Agent' :'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (Khtml, like Gecko) Chrome/18.0.1025.166 Safari/535.19'})
print(len(r.text))
词条个数. png
这样来判断一门语言流行不流行肯定是不合理的, 不过贴这段代码主要是想让大家感受一下 python 中循环体的简洁美. for I in lst1 中并没有命名 i 是什么, 但是 python 自动识别为 lst1 列表里的每一个元素.
废话这么多, 主要是想让大家体会一下 python 语言的优越性与特色, 让大家真实感受一下这门语言的 "简洁", 而不只是口上说说而已.
数据分析师的成长道路
我之所以学 python 呢, 一是以后做实验处理数据需要用到, 而是以后所向往的工作 -- 数据分析与挖掘也需要掌握 python. 因为我按照我自己的学习路线来给大家的学习路径提一点建议.
俗话说一图胜千言, 一个优秀的数据分析师一定要擅长制作思维导图, 流程图等等. 给大家上一个自己制作的简单的数据分析师的知识架构.
数据分析师知识结构流程图. jpg
有关亿图再说两句
这个图是使用亿图制作的, 在这里简单说点题外话. 我在 python 专题里的第一篇文章就介绍了亿图图示这个很优秀的软件. 它不仅可以画思维导图, 流程图, 还可以画城市交通图, 建筑设计图等等, 功能强大, 因此它是收费的, 需要 580 块钱.
我用了很久, 之前写的文章中破解的是亿图 8.0, 因此不少人问我要破解软件. 我有的给了, 有的没有给. 之所以没有给, 一方面是因为我中间有段时间很久没有用简书没有看到消息, 一方面也是因为被某些人整的心累. 就比如有个人为了要破解版专门加了我的好友, 我刚给他, 想说句 "加油" 发现已经被删了. 有的人我把链接发给他了一句谢谢也没有 (可能是我玻璃心, 毕竟找到破解版也不是说分分钟的事情).
在这里我声明一下, 同时也为了防止我百度云盘资源被删, 请大家私聊我, 我会发最新链接给你们.
祝大家学 python 学的开心.
来源: http://www.jianshu.com/p/48ae5f2f9c91