Python初学目录:点击打开链接
Python学习推荐网址:点击打开链接
Python简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。Python是一种面向对象的解释型计算机程序设计语言。
【为什么要学Python】
首先,对于初学者来说,比起其他编程语言,Python 更容易上手。
Python 的设计哲学是优雅、明确、简单。在官方的 The Zen of Python(《Python 之禅》)中,有这样一句话,
There should be one-- and preferably only one --obvious way to do it.
Python 追求的是找到最好的解决方案。相比之下,其他语言追求的是多种解决方案。
如果你试着读一段写的不错的 Python 代码,会发现像是在读英语一样。这也是 Python 的最大优点,它使你能够专注于解决问题而不是去搞明白语言本身。
注:漫画《口渴的 Python 开发者》,形容了 Python 开发者是多么轻松,来自 Pycot 网站
其次,Python 功能强大,很多你本来应该操心的事情,Python 都替你考虑到了。当你用 Python 语言编写程序的时候,你不需要考虑如何管理你的程序使用的内存之类的底层细节。并且,Python 有很丰富的库,其中有官方的,也有第三方开发的,你想做的功能模块很有可能已经有人写好了,你只需要调用,不需要重新发明轮子。这就像是拥有了智能手机,可以任意安装需要的 app。
第三,Python 能做的事情有许多。
在职场中,使用 Python 工作的主要是这样几类人:
如果你是一名业余开发者,只是想在资源少的情况下快速做出自己想要的东西、自动化的解决生活中的问题,那么 Python 可以帮你做到这几类事情:
借助功能丰富的网站框架 django、flask 等等,你可以快速搭建自己的网站,还可以做到移动端自适应。
当你需要获取大批量数据或是批量处理的时候,Python 爬虫可以快速做到这些,从而节省你的重复劳动时间。比如:微博私信机器人、批量下载美剧、运行投资策略、刷折扣机票、爬合适房源、系统管理员的脚本任务等等。
Python 又叫做胶水语言,因为它可以用混台编译的方式使用 c/c++/java 等等语言的库。
树莓派作为微型电脑,也使用了 Python 作为主要开发语言。
用红外线遥控器控制树莓派,作者八宝粥
现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过TIOBE排行榜,你就能知道编程语言的大致流行程度。这是最近10年最常用的10种编程语言的变化图:
总的来说,这几种编程语言各有千秋。C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。
任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。
再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
当然,Python还有其他若干小缺点,请自行忽略,就不一一列举了。