Python从零单排系列(一)---初识Python

人生苦短,你学...

Posted by Movesan on February 20, 2017 -  Views

Python从零单排系列(二)—Python基础
Python从零单排系列(三)—Python函数
Python从零单排系列(四)—面向对象编程
Python从零单排系列(五)—模块化以及相关库
Python从零单排系列(六)—异常处理
Python从零单排系列(七)—函数式编程
Python从零单排系列(八)—Python高级特性


写在前面

本系列将介绍Python语言的基本操作与使用,同时也作为自己对Python的日常笔记以及学习整理,由于编写时还未涉猎Python很久,所以有不当之处还请大家多指正。本人是一名Java程序猿, 所以将以Java的角度去看待Python。都说各语言之间是相通的,其实就是说每种语言的一些语法基础都是差不多的。

如果你是有其他语言基础的,相信上手Python一定会很快的,当然如果你是从Java语言转来探究Python,那么恰好你也和我一样哈,这篇文章将会很适合你。 但是即使你没有任何语言基础,也不要灰心,Python是门很易学的语言,廖大神的零基础学习Python的教程将会带你完美跨入Python世界。搭配实验楼的Python快速教程的动手实践,将会给你一个学习Python 很棒的体验。

关于Python,当初初始Python是因为在知乎上看到了这样一篇文章:连世界排名前五的天才程序员都变得这么帅,承认吧!你丑,就是因为懒!,看完之后吃了一大鲸, 这简直是我的偶像啊,我的理想就是做一个最不像程序员的程序猿了哈哈,然后就在无比的羡慕嫉妒百感交错之中了解了Python,更是感受到了Python的强大魅力。什么?你也和我一样,那就赶快来一起走进Python的世界吧。 Hello Python!!!

:本系列主要为廖大神的零基础学习Python实验楼的Python快速教程菜鸟教程的学习心得与笔记的整理,还涉及到一些其他有关Python的资料, 主要作为自己的一个阶段总结以及方便日后复习查看,其中一些资料可能未标明相关链接,如有不妥,望指正。


Python可以做什么

关于Python的介绍呢,网上有各种方式的Python介绍的信息,在这里就不搬过来用了,总结来说呢就是Python是一门优雅易学的语言。那么Python可以做什么呢?以下是来自《编程小白的第一本 Python 入门书》书中的介绍。

Python能做的事有许多:

  • 网站后端程序员:使用 Python 搭建网站、后台服务会比较容易维护,当需要增加新功能,用 Python 可以比较容易的实现。不少知名网站都使用了 Python 开发,比如:

img

  • 自动化运维:越来越多的运维开始倾向于自动化,批量处理大量的运维任务。 Python 在系统管理上的优势在于强大的开发能力和完整的工具链。

  • 数据分析师:Python 能快速开发的特性可以让你迅速验证你的想法,而不是把时间浪费在程序本身上,并且有丰富的第三方库的支持,也能帮你节省时间。

  • 游戏开发者:一般是作为游戏脚本内嵌在游戏中,这样做的好处是即可以利用游戏引擎的高性能,又可以受益于脚本化开发的优点。只需要修改脚本内容就可以调整游戏内容,不需要重新编译游戏,特别方便。

  • 自动化测试:对于测试来说,要掌握 Script 的特性,会在设计脚本中,有更好的效果。Python 是目前比较流行的 Script。

如果你是一名业余开发者,只是想在资源少的情况下快速做出自己想要的东西、自动化的解决生活中的问题,那么 Python 可以帮你做到这几类事情:

  • 网站的开发:借助功能丰富的网站框架 django、flask 等等,你可以快速搭建自己的网站,还可以做到移动端自适应。

  • 用爬虫爬取或处理大量信息:当你需要获取大批量数据或是批量处理的时候,Python 爬虫可以快速做到这些,从而节省你的重复劳动时间。比如:微博私信机器人、批量下载美剧、运行投资策略、刷折扣机票、 爬合适房源、系统管理员的脚本任务等等。

  • 再包装其他语言的程序:Python 又叫做胶水语言,因为它可以用混台编译的方式使用 c/c++/java 等等语言的库。

  • 智能硬件:树莓派作为微型电脑,也使用了 Python 作为主要开发语言。

img


Python语言特点

Python 的设计哲学是优雅、明确、简单。在官方的 The Zen of Python(《Python 之禅》)中,有这样一句话,

There should be one– and preferably only one –obvious way to do it.

Python 追求的是找到最好的解决方案。相比之下,其他语言追求的是多种解决方案。

如果你试着读一段写的不错的 Python 代码,会发现像是在读英语一样。这也是 Python 的最大优点,它使你能够专注于解决问题而不是去搞明白语言本身。

img

上图是来自Pycot 网站的漫画《口渴的 Python 开发者》,形容了 Python 开发者是多么轻松。

相比于Java,Python还是会有很多的不同:

  • Python是一门解释型语言

而Java是一门编译型语言,对应编译型与解释型,编译型语言在编译的时候会有编译器把源文件处理一遍,生成目标文件,统一执行;而解释型语言是边处理源文件边执行。 对于二者的区别,之前在知乎上看到的一个神解释:编译就好比做好一桌子菜再开吃,而解释就是吃火锅。所以说就执行效率来看,也就是忽略做饭时间从开吃算起,解释执行效率会低一些,因为要一边煮一边吃的…

所以说这也就是为什么Python执行速度比较慢的原因,但是相比Java是一门高级语言,Python则是一门非常高级语言,越高级语言则是越封装,所以如果完成同一项任务,用Java可能需要1000行代码,那么用Python 可能100行代码就搞定了,所以说Python开发起来很优雅,周期很短。

  • Python是一门动态强类型语言

很多初学者认为Python是弱类型语言,因为在定义变量的时候不需要指定变量类型,且变量可以随时改变指向其他对象,事实上Python是强类型语言,变量只是一个引用名字而已,而变量所绑定的对象在创建初期 就已经确定好了类型,你永远不可能改变。同时Java也是门强类型的语言。

Java和Python的区别是静态类型和动态类型,静态类型必须先声明再使用,动态则不需要声明。

  • Python中一切皆对象

在Python中,不论是数值(整型、浮点型),字符串,字典,元组对象,还是他们所对应的类型,以及函数,模块等你所能看到的都是对象,他们的祖先是PyObject。而Java中至少函数,基本数据类型都不算对象。

  • 括号和缩进

Python与众多编程语言的不同之处还在于它使用缩进将代码分割成块。Java,像大部分其他语言一样,使用大括号定义函数和类定义的开头和结尾。使用缩进的好处在于它强迫你将你的程序写得比较易读,不会有缺括号导致错误的可能。

  • 可移植性

Java的可移植性更强,它可以用于开发平台独立的应用。这是Java相较于Python的优势之一,任何可以运用Java虚拟机的电脑或者移动设备都可以运行Java的应用,而不管你在哪里运行Python的程序你都需要一个编译器来将Python代码转化为你特定的操作系统可理解的代码。这是因为大部分设备已经安装了Java虚拟机,所以Java程序员可以自信的说他们的应用几乎对所有用户都可用。

  • Python的GIL(缺点)

Python中的GIL一直被不少开发者所诟病,GIL是指全局解释锁,Python的多线程在多CPU条件下并不能并行的运行,而只能是每个线程运行的时候首先需要获得解释器的访问权限才可以执行,其他线程只能处于等待的过程,不过GIL并不是Python的致命缺点,否则现在没人会用的,因为有很多方案是协程,或者是用多进程机制来弥补。而Java支持真正的多线程并发操作,能很好的控制资源的的共享。


Python安装

Python可以运行在多种平台上,对于Mac和各种Linux/Unix系统,应该也都是系统自带了Python的,如果系统没有Python,那么也可以通过命令行自行安装,还是很简单的,这里主要说下关于Windows上的Python安装, 因为本人一开始也是在Windows环境中进行学习的。

首先到Python的官网下载最新的Python安装包,本系列文章基于Python 2.x版本。下载完成后运行安装,特别要注意勾上Add Python to PATH,将Python加入到环境变量, 如果没有勾选也可以稍后手动添加。

安装完成后,打开命令提示符窗口,输入python:

img

出现以上信息就代表你安装成功且进入到了Python的交互页面。


第一个Python程序

我们学习任何语言的第一行代码好像都是打印”Hello World”,接下来我们用Python跟世界打个招呼。

进入Python交互页面,输入print “Hello World”,如下:

img

现在我们终于用Python和世界说了第一句话,编写Python有两种方式,第一种就是上述的Python交互页面,输入代码后回车则进行编译执行,退出交互页面可输入exit(),

img

下面来学习第二种方式。

当我们编写Python代码时,我们可以创建一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。关于Python解释器,也存在很多,下载Python时自带的为CPython, 同时也是最广泛的。

用编辑器新建文件,保存为扩展名为.py的hello.py文件,接下来就可以输入Python代码了:

img

然后在命令行界面通过python运行hello.py文件:

img


要下班了?扫一扫,地铁上阅读 :)

生活只有眼前的苟且,哪有诗和远方 :(