本文是面向SEO人群的Python程序语言入门教程,也适用于其他没有程序基础但想学习些程序,以解决简单的实际应用需求的人群。在后面会尽量用最基础的角度来介绍这门语言。
本来打算从网上找一篇入门教程,但因为Python很少是程序员的第一次接触程序所学的语言,所以网上现有的教程多不是很基础,还是决定自己写下这些。
如果没有程序基础的话,可能会觉得本文涵盖的内容有点多。对照大学里面常教的C语言的教学速度,本文大约有四五个课时的内容;对照网上程序类的视频 教程,大致相当于两三个小时的内容;对于翻一本程序书籍,大约相当于翻一个小时书。也因此,如果有深入学习的打算的话,为了效率还是推荐看书。
如果暂时不能理解本文中的一些内容也没关系,因为都是一些经常会用到的基础知识,在实际编写代码的过程中会一直遇到。后面会大约有两三篇关于实用代码编写的文章,可以选择那时再对这些知识加深印象。
但如果是觉得技术对于SEO没有必要而对本文没有兴趣的话,试问打算将SEO作为自己多久的职业?如果打算真正将它做好的话,在至少有上万小时需要用去的精力里面,从里面抽几十几百小时去学习些技术应该是合情合理的。
若因文章有什么没表述清楚而导致无法理解,请务必帮忙提出。第一次写程序类的较完整的教程,难免有疏漏之处。
为什么学习Python
如果决定学习一些技术来辅助SEO的话,对于程序语言至少在我看来Python可以算是首选。
其一、Python入门相对简单
如果谁在大学课程里面接触过C语言但对程序了解不多的话,或许会觉得程序就是像C那么麻烦,其实不然,学了具有美感的Python代码以后就会知道C代码又臭又长。就算完全没接触过程序也没关系,Python本身就适合作为程序的入门选择。
我虽然很早就有写程序,但那时是兴趣使然,从未深入过,正式接触程序是接触SEO以后的事情,大约学了几个小时以后就能写些简单的采集程序,到现在只要能想到需求就很少有技术无法实现的。所以没什么有基础没基础的问题在,无论什么的基础都是需要自己打下的。
其二、Python代码非常灵活
来看一段非常常用的代码示例,如果没有程序基础的话会看不懂这些代码,但暂时没关系,看代码行数也能对比出代码简洁性。
PHP:
1 2 3 4 5 6 7 8<?php
$list_1
=
array
(1,2);
$list_2
=
array
();
foreach
(
$list_1
as
$current
) {
array_push
(
$list_2
,
$current
+1);
}
print_r(
$list_2
);
?>
Python:
1 2 3list_1
=
[
1
,
2
]
list_2
=
[current
+
1
for
current
in
list_1]
print
list_2
Python代码的第2行叫做“列表推导”,它提供了不少像这样便利的语言特性可以使得代码非常简洁。
尽管语法灵活并非总是好事,灵活的代码写法意味着每个人写出来的代码往往风格迥异,会把团队成员的水平差距拉大而不利于团队开发。但对于小型SEO应用需求一般都是个人开发,此时代码的书写效率比起团队合作性而言更重要。
其三、Python使用广泛
Python在程序语言里面受欢迎的程度大约是5-10位左右。排在其之前的有C#, Java, PHP等,但很多时候不是因为它们更强大,而是因为前面提到的原因,它们的代码显得相对不是很灵活从而适合团队开发,所以才更受欢迎。
一般来说,多数提供API的网络服务都会提供Python接口(如百度网盟、Amazon云服务等),而另一些比Python某些方面更强的语言则 没有这么广泛的支持度,比如代码更加灵活一些的GO语言。(多数Web服务的API接口有:C#、PHP、Java、Python、Ruby、Perl, 所以一般情况下选择其中至少一种语言学习)
Python的模块也非常多,有许多既有模块意味着可以少做很多事情。比如下载一个网页,在很多语言里面都需要5-10行代码,而Python仅需两行:
1 2import
urllib2
print
urllib2.urlopen(
'http://g.cn/'
).read()
另外有意思的是以前Google限制过自己内部使用Python语言进行开发。原因有二:一、因为Python编写效率高,之前被其过多的运用;二、Python语言的执行效率较慢。而对于SEO,却正是最需要注重编写效率而一般无需在意执行效率的。
至此废话了不少,但兴趣往往是学习的最好动力,希望没有白白废话。
安装环境与配置
Python程序和普通程序略有不一样,通常情况下没有可以直接在Windows下面双击运行的exe文件,虽然并非无法编译成exe但相对较麻烦,实际运用中很少会去如此操作。
Python程序就是一段文字代码,保存到后缀名为.py的文件里面。在电脑安装了Python的运行环境以后,方可以运行py文件。(其实很多程序都依赖于运行环境,最常见的是.net Framework,只不过这个在Windows上预装了,一般感觉不到罢了)
对于Windows系统需要安装运行环境,Linux系统则一般自带Python无需配置。
Python运行环境的下载链接为:http://python.org/getit/
在这个页面上,通常是在第一个下载链接,寻找并下载:Python 2.7.x Windows Installer (Windows binary — does not include source)
需要注意的是下载的最好是2.7.x版本(x代表任意数值,2.7这个大版本都是类似的),而Python 3以上的版本和先前版本区别较大,对于初学者不建议使用。
下载后安装,没什么需要特别注意的地方。一般安装在默认路径,即c:python27,不要将之放在目录层级很深的文件夹,不然运行的时候比较麻烦。
操作系统
前面已经提到,Python可以在Windows及Linux系统下运行,它还支持更多系统,如Mac等,甚至也可以在越狱过的iPhone等设备上面编写并运行Python程序。
但因为Python的一个主要强大之处在于其模块的支持,有了模块就可以方便的做很多事情。而模块的配置在Windows等系统里面往往有些麻烦,Linux往往容易得多,所以过了入门阶段以后,推荐在Linux环境下进行开发。
Linux环境的搭建有三种选择:
1.本机安装Linux系统。适合在Linux下长期工作的人,需要对Linux的基础知识有一定的了解。主要缺点是总有些Windows里面才能运行的程序,偶尔需要切换系统。我主要是在这样的环境下工作。
2.在Windows里面安装VMware等虚拟机,然后在虚拟机里面安装使用Linux。适合初学者,但因为虚拟机的关系,除非计算机配置很好, 不然两边系统的运行效率都会比较低下。且虚拟机不利于塑造学习Linux的气氛,因为用虚拟机的时候碰到问题,多数人会倾向用Windows解决而非用 Linux,那么就较难熟悉它。个人不怎么推荐这种选择。
3.买一台Linux的VPS,使用SSH远程操作。主要优点是在工作及家里都可以很方便的连上服务器,不用每天把程序、数据等随着U盘之类的带来 带去;也可以在不影响Windo