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 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1131
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1793
来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

2732
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2986
来自专栏菩提树下的杨过

SqlTransaction事务使用示例

using System; using System.Data; using System.Data.SqlClient; using System.Co...

1838
来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

1899
来自专栏c#开发者

jquery easyui datagrid mvc server端分页排序筛选的实现

1自定义一个ModelBinder public class filterRule { public string field { g...

4179
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23010
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2440
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1152

扫码关注云+社区