AI 学习之路——轻松初探 Python 篇(一)

这是「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

原文发布于微信公众号 - WeaponZhi(WeaponZhi)

原文发表时间:2017-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

如何利用动画效果来提升用户体验

动画效果会讲故事。但不是冗长和完整的故事,而是简单的故事,比如“嗨,你现在该看这里了”或者“哇,你的操作完全正确。”然而,动效的目的不是为了愉悦用户,而是为了帮...

904
来自专栏嵌入式程序猿

快速开发基于AUTOSAR标准的驱动软件

Automotive Open System Architecture (AUTOSAR),是汽车电子行业内解决软件复用问题的一种标准化软件架构,现在目前最新的...

2855
来自专栏phodal

Mifa Design:一个服务于 Markdown 的设计体系

嗯,UI 框架,这已经不是一个很好的时代了。可对于 Design Systems 来说,这还是个不错的开始。 Material Design 是 Google ...

2126
来自专栏phodal

我的职业是前端工程师【六】:前端程序员如何有效地提高自己

要成为一个优秀的前端工程师,需要什么技能和学习?答案:练习 在逛知乎、SegmentFault 又或者是相似的技术社区,我们总会看到类似的问题。新手总会关注于,...

1856
来自专栏IT进修之路

原 IT懒开发【精】

1632
来自专栏沈唁志

一个优秀的php程序员必须具备的7种能力,你的能力在哪里?

2035
来自专栏IT派

2018 年 Java,Web 和移动开发需要学习的 12 个框架

IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 新的一年已经开始,不知道大家有没有定好小目标。如果2018年还没有决定学什么,那么你来对地...

5116
来自专栏精讲JAVA

程序员们,曾经是否有个bug让你开始怀疑人生

相信程序员们都有一个共同的女朋友。这个女朋友总是阴魂不散,时不时还不忘调戏下男朋友程序员,而且你依然对她欲罢不能、想入非非。

692
来自专栏腾讯社交用户体验设计

[ISUX译]iOS 9人机界面指南(二):设计策略 - 腾讯ISUX

1182
来自专栏向治洪

那些年我们一起用过的Hybrid App

Hybrid App现状分析 Web App 毫无疑问Web App就是成本最低,最快速地解决方案了。尤其是近两年非常流行的响应式设计,Web App市场提供了...

1578

扫码关注云+社区