在本次的试验中需要用到Python,所以就写一点关于Python的学习笔记吧。
在上学期的数据结构与算法2课程中由于对于自然语言处理(英语)的需要,所以曾经在巩运清学长的带领下对Python进行过学习,本组的另外一名同学花花也写了关于Python的一些常见用法的笔记,所以我就不再写简单的语法知识,而是对自己的学习中的一些问题进行一下总结。
1. Python是干什么的
在理论上Python可以做任何其他语言可以做的事情,然而由于其独特的语法和功能使得该语言在某些方面展现出十分独特的优势。
i. 脚本
通过编写脚本来自动执行常见的管理任务,比如在系统中新增用户、在不使用浏览器的情况下下载网页等。
ii. 网站开发
比如Django、Bottle、和Zope等众多的Python项目都深受大家的喜爱。
iii. 文本处理
Python在字符串和文本文件处理方面提供了强大的支持,包括了正则表达式和Unicode。(笔者亲自体验过,确实十分强大,减轻了程序员好多的压力)
iv. 科学计算
Python的很多库提供了用于统计、数学计算和绘图的函数,非常好用
v. 教育
Python的简洁实用,使得许多学校将其作为第一门编程教学语言。(虽然笔者觉得这样并不是很好,还是应该先学习C++或者是Java)
当然Python也有自身的缺点,与其他的主流语言相比,如Java,C#,C++等Python的运行速度会比较慢,所以如果你想用Python开发操作系统的话,那我 只能送你一句:no zuo no die why you try。
然而Python在减少程序员花在项目上的调试时间等方面确实十分给力,大家可以体会一下。
2. 关于Python 2 与Python 3
Python 3发布于2008年,是一次重大的Python升级。然而Python 3的某些改进是不向后与Python 2兼容的,因此Python 2 与Python 3 是并行发展的。所以在使用 某些基于Python的工具包时,一定要明确到底该包是基于Python 2 还是Python 3 的,否则……别问我为什么,我什么也不会说的。
以下列举一些Python 2 与Python 3 的不同之处:
i. 在Python 3 中,print是一个函数,这与Python 2 中print是与if和else相同的语言结构有很大区别。在Python 2 中print的问题很难修改,而在Python 3 中 只需要给print重新赋值。
ii. 在Python 3 中整数除法的结果完全符合预期:
Python3>>> 1 / 2
0.5
然而在Python 2中执行整数除法时将删除小数部分
Python2>>> 1 / 2
0
在使用时需要注意,否则这种问题很难通过调试方法找出的。
iii. Python2 有两种类:老式类和新式类,而Python 3则完全抛弃了前者。
iv. Python3重命名了两个重要函数:input和range,其在Python2中分别被称为raw_input和xrange
将Python 2转化为Python 3 通常不难,用2to3这个工具几乎能将任何Python 2程序自动转换为Python 3程序。
3. 某些有用的Python包
i. PIL:Python图像处理库
PIL是一个图像处理库,功能很强大可以体验一下。
ii. Tkinter:Python GUI
Tkinter是Python自带库是访问Tk GUI的标准方式,如果要使用Python创建用户图形界面,应该首先使用这个包。
iii. Django:交互式网站
Django是一个用于创建交互式网站的框架,底层编程语言是Python,不过好像貌似被墙了呢,所以……想用的自行解决
这就是我对于Python的一些总结,希望能够帮助到大家。