喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态
这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇
前言
1. Python 篇的组织结构
不管是学习人工智能还是大数据,Python 都是基本必学的,而且如果大家自己有一定的语言基础,会发现 Python 是非常好入门的,我自己大概花了 1 个下午入门了一下基本的语法。
我会花 3 到 4 篇的篇幅给大家作一下基本的入门。当然,这不是说我们学习人工智能或者大数据,对 Python 的了解程度到这么多就够了,也不是说我在整个人工智能系列的写作过程中,只会写这几篇 Python 的文章。相反,我十分重视 Python 语言本身的学习,我也会分享很多 Python 相关的原创。
对 Python 掌握的越熟练,必然会对后面学习人工智能或者大数据这样的热门技术越有帮助,不仅如此,工作中的很多场景,Python 都可以很好的解决,极大的提升我们的工作效率,即使我工作中的主语言并不是 Python。大家学习 Python 的过程中,一定会对此有所感受的。
所以,Python 的文章会和别的文章有所穿插,今天我发布一篇算法相关的,明天可能就推一篇 Python 的了,我的承诺就是,所有文章都会划分好类别,并且有连贯性,即使比较晚关注的读者,也可以循序渐进的进行学习。
2. 如何自主学习 Python
现在的网络资源很丰富,Python 的资料更是层出不穷。想入门 Python 的话,这里推荐给大家两个渠道:
第一个就是推荐大家去看一下**「廖雪峰的 Python 教程」**,强烈推荐,我就是一个下午看的他的教程进行学习的。
第二个是**「Codecademy」**这个网站,这个网站上面有很多语言的入门教程,它是一种引导式的教学方式,不仅有文档,而且可以在线的进行编译和运行,可以说是手把手了,质量很高。不过有一点尴尬的是,可能大部分的教程是英文,不过好在教程本身不复杂,抠一抠还是能看懂的,它的界面是这样的:
当然啦,通过看我的文章来入门也是完全可以的。
还是那句话,Python 肯定不是说入了门就够了,深度的研究大家可以多买书,看看博客,多写写。当然,我也会作 Python 中高级技术的分享的。最重要的是坚持,可能很多人都和我差不多,工作或者学习的主力语言并不是 Python,需要在业余时间来学习,这很考验一个人的意志力,想做的突出,就得忍受寂寞。
没关系,至少还有我和你一起撸码。
Python 简介
1. Python 的优势
Python 是一种非常高级的语言,实现同样的逻辑,C 语言和 Java 可能要用比 Python 多数倍甚至几十倍的代码才能完成。Python 简单优雅,尽量写容易看明白的代码,尽量写少的代码。
我们可以类比 Java 和 C 语言的这种差异。C 语言,在构建实体对象的时候,需要用代码手动的去在内存开辟空间,然后把开辟好的这段空间赋予某个对象使用,使用完了,还得手动去把这部分空间给释放掉,好处是对内存或者是一些硬件的把控力很强,而且强制要求程序员去严格的监管这些资源的使用,但不用多说,这样太麻烦了,我为了写一个业务逻辑,竟然要写这么多和业务无关的代码。
而 Java 就省事多了,JVM 的垃圾回收机制都帮你做好了这些事,它会通过诸如可达性算法这样的方式,自动的标记出哪些内存空间是可回收的,然后在你代码没有任何体现的情况下进行内存的回收。当然,缺点也显而易见,你根本不知道垃圾回收机制到底干了什么,它的拓展性和可控性就不是那么出色了,如果你需要特别的关注回收上的事,会发现特别麻烦和不可控。
Python 相比 Java,当然也少操心了很多事,比如异步上的事,Java 处理起来就麻烦多了。Python 因为提供了非常完善的基础代码库,轮子非常完备,所以几乎可以覆盖你能想到的应用范围。
值得一提的是,Python 近年来发展迅猛,人工智能、大数据等最前沿热门的技术,Python 都能很好的支持和应用。GitHub 2017 年发布的开发语言活跃度排名上,Python 第一次超过了 Java,跃升到第二名,仅次于 JS。
2. Python 的劣势
有得有失,Python 也不是完美的。廖大总结的挺好,我简单的概述下。
首先 Python 的运行速度是比较慢的,因为 Python 是一种解释型语言,Python 代码在运行的时候,会一行一行的把代码翻译成计算机可以理解的机器码,可以想像这个过程是很慢的。而 C 语言在运行之前就已经把代码编译成机器码了,执行过程就会特别快。
但实际上这个速度差距,并不是不可以接受的,廖大大也在他文中做了一个很有意思的比喻,这里引用下,大家自行体会这种速度差距的影响:
大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C 程序的运行时间需要 0.001 秒,而Python程序的运行时间需要 0.1 秒,慢了 100 倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到 1.001 秒和 1.1 秒的区别吗?这就好比 F1 赛车和普通的出租车在北京三环路上行驶的道理一样,虽然 F1 赛车理论时速高达 400 公里,但由于三环路堵车的时速只有 20 公里,因此,作为乘客,你感觉的时速永远是 20 公里。
还有一个缺点,就是 Python 是不能加密的,如果你的应用是 Python 写的,当你发布的时候,等于说就是公开了自己的源代码。不过在互联网时代,靠卖软件来生存的商业模式越来越少了,更多的是靠服务和网站,不仅如此,在这个提倡开源精神的时代,源代码开源本身并不是很可怕,也不要过分高估自己代码的价值。
Python 运行需要一个编辑器来将 Python 代码转化为特定的操作系统可理解的代码。它不像 Java,任何可以运行 Java 虚拟机的设备都可以运行 Java 的应用。
安装 Python
OK,说十句话不如做一件事,那我们现在就行动起来开始安装 Python 吧。
Python 3.x 和 2.x 是不兼容的,我们作为初学者,自然就不用考虑一些历史因素了,直接上 3.x。这里我就不花费篇幅去展开介绍安装过程了,网上很多教程,需要注意的主要是 Windows 小伙伴们一定要记得配置好环境变量。
Python 文件是需要解释器去执行的。安装好 Python 后,我们实际上就已经获得了一个官方的解释器:CPython,它是使用最广泛的 Python 解释器。还有很多其他的解释器。比如 PyPy,它相比 CPython 提升了速度;Jython 和 IronPython 则是在其他平台上的解释器,可以把 Python 代码编译成 Java 或者 .Net 字节码。
一切准备就绪,在 Windows 控制台中输入 python 并回车,或者在 Mac 和 Linux 的终端中输入 python3 如果出现这个界面,说明你安装成功了!
按照惯例,我们是不是得 Hello, world 一下? 在 >>> 后输入代码吧!
- >>> print ('hello, world')
- hello, world
- 复制代码
欢迎关注我的公众号