python语言基本认识_问道python之基础篇【一】 认识python

标签:

问道python之基础篇【一】

认识python

1.python的简介

1.1.什么是python?

Python是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python语法简洁清晰,特色之一是强制用空白符作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够用其他语言制作的各种模块(尤其是C++)很轻松地联结在一起。

1.2.python的特点

简单,易学,免费、开源,高层语言,移植性,解释性,面向对象,可扩展性,可嵌入性,丰富的库。

Python的设计哲学:简单、优雅、明确

Python的两个主要优点:(1)胶水语言 (2)可维护性

1.3.python的应用

1.3.1.系统编程

Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件(有时也被称为shell工具)的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等等。

Python的标准库绑定了POSIX以及其他常规操作系统(OS)工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、shell命令启动器、文件名扩展等。此外,很多python的系统工具设计时都考虑了其可移植性。例如,复制目录树的脚本无需做任何修改就可以在几乎所有的python平台上运行。

1.3.2.用户图形接口

Python的简洁以及快速的开发周期十分适合开发GUI程序。Python内置了TKinter的标准面向对象接口TK GUI API,使python程序可以生成可移植的本地观感的GUI。Python/TKinter GUI不做任何改变就可以运行在微软windows、X windows(UNIX和Linux)一级Mac OS(Classic和OS X都支持)等平台上。一个免费的扩展包PMW,为TKinter工具包增加了一些高级部件。此外,基于C++平台的工具包wxpython GUI AP 可以使用python构建可移植的GUI。

1.3.3.Internet脚本

Python提供了标准Internet模块,使python能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端都是如此。脚本可以通过套接字进行通信;从发给服务器端的CGI脚本的表单中解析信息;通过URL获取网页;从获取的网页中解析HTML和XML文件;通过XML-RPC、SOAP和Telnet通信等。Python的库使这一切变得相当简单。

不仅如此,从网络上还可以获得很多使用python进行Internet编程的第三方工具。例如,HTMLGen可以从python类的描述中生成HTML文件,mod_python包可以使在apaache服务上运行的python程序更具效率并支持Python Server Page这样的服务器模版,而且支持客户端运行的服务器端Applet。此外,python涌现了许多web开发工具包,例如,Django

、TurboGears、flask等,使pythn能够快速构建功能完善和高质量的网站。

1.3.4.组件集成

Python可以通过C/C++系统进行扩展,并能够嵌套C/C++系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。

1.3.5.数据库编程

对于传统的数据库需求,python提供了对所有主流关系数据库系统的接口,例如:Sybase、Oracle、informix、ODBC、MySql、PostgreSQL、SQLite。

Python标准的pick模块提供了一个简单的对象持久化系统:他能够让程序轻松地将整个python对象保存和恢复至文件和文件类的对象中。在网络上,同样可以找到名叫ZODB的第三方系统,它为python脚本提供了完整的面向对象数据库系统,系统SQLObject可以将关系数据库映射至python的类模块。并且,从python2.5版本开始,SQLite已经成为python自带标准库的一部分了。

1.3.6.快速原型

1.3.7.数值计算和科学计算编程。

1.3.8.游戏、图像、人工智能、XML、机器人等

1.3.9.云计算平台(运维系统)

OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务,全部采用python开发。

1.4.python2.X和3.X的区别

1.4.1.__future__模块

Python3.x引入了一些与python2不兼容的关键字和特性。在python2中,可以通过内置的__future__模块导入这些新内容。如果你希望在python2环境下写的代码也可以在python3.x中运行,那么建议使用__future__模块。例如,如果希望在python2中拥有python3.x的整数除法行为,可以通过下面的语句导入相应的模块

下表列出了__future__中其他可导入的特性:

例如:

1.4.2.print函数

虽然print语法是python3中一个很小的改动,且应该已经广为人知,但依然值得提一下:python2中的print语句被python3中的print()函数取代,这意味着在python3中必须用括号将需要输出的对相关括起来。

在python2中使用额外的括号也是可以的。但反过来在python3中想以python2的形式不带括号调用print函数时,会触发SyntaxError

Python 2

Python3

1.4.3.整数除法

由于人们常常会忽视python3在整数除法上的改动(写错了也不会触发SyntaxError),所以在移植代码或在python2中执行python3的代码时,需要特别注意这个改动。

所以,我还是会在python3的脚本中尝试用float(3)/2或3/2.0代替3/2。以此来避免代码在python2环境下可能导致的错误(或与之相反,在python2脚本中用from __future__ import division来使用python3的除法)

Python 2

Python 3

1.4.4.Unicode

Python2有基于ASCII的str()类型,其可通过单独的unicode()函数转成unicode类型,但没有byte类型。

而在python 3中,终于有了Unicode(utf-8)字符串,以及两个字节类:bytes和bytearrays。

再也不用为编码问题而烦恼了。

1.4.5.xrange

在python2.x中,经常会用xrange()创建一个可迭代对象,通常会出现在“or 循环”或“列表/集合/字典推导式”中

这种行为与生成器非常相似(如“惰性求值”),但这里的xrange-iterable无尽的,意味着可能在这个xrange上无限迭代。

由于xrange的“惰性求知”特性,如果只需迭代一次(如for循环中),range()通常比xrange()快一些。不过不建议在多次迭代中使用range(),因为range()每次都会在内存中重新生成一个列表。

在python3中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在python 3中使用xrange()会触发NameError)。

Python 2

Python 3

1.4.6.range对象中的__contains__方法

在python3.X中,range有了一个新的__contains__方法。__contains__方法可以有效的加快python3.X中整数和布尔型的“查找”速度

1.4.7.触发异常

Python 2支持新旧两种异常触发语法,而python 3 只接受带括号的语法(不然会触发SyntaxError):

1.4.8.异常处理

Python在3中的异常处理也发生了一点变化。在python 3中必须使用“as”关键字

1.4.9.next()函数和.next()方法

在python 2.7.5中,函数形式和方法形式都可以使用,而在python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)

1.4.10.for循环变量与全局命名空间泄露

在python 3.x中,for循环中的变量不会再泄露到全局命名空间中了!

Python3、0的官网中是这样描述的:

“列表推导不再支持[... for var in item1, item2, ...]这样的语法,使用[... for var in (item1, item2, ...)]代替。还要注意列表推导有不同的语义:现在列表推导更接近list()构造器中的生成器表达式这样的语法糖,特别要注意的是,循环控制变量不会再泄漏到循环周围的空间中了。

1.4.11.通过input()解析用户的输入

Python 3中,input()函数总是将用户的输入存储为str对象。在python 2中,为了避免读取非字符串类型会发生的一些危险行为,不得不使用raw_input()代替input()

Python 2

Python 3

1.4.11.返回可迭代对象,而不是列表

在xrange那一节中可以看到,某些函数和方法在python中返回的是可迭代对象,而不像在pythn2中返回列表。

由于通常对这些对象只遍历一次,所以这种方式会节省很多内存。然而,如果通过生成器来多次迭代这些对象,效率就不高了。

此时我们的确需要列表对象,可以通过list()函数简单的将可迭代对象转化为列表。

1.5.python的安装

安装Python

windows:

1

2

3

4

5

6

7

1、下载安装包

https://www.python.org/downloads/

2、安装

默认安装路径:C:\python27

3、配置环境变量

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

如:原来的值;C:\python27,切记前面有分号

linux:

1

2

3

无需安装,原装Python环境

ps:如果自带2.6,请更新至2.7

更新Python

windows:

1

卸载重装即可

linux:

Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

查看默认Python版本

python -V

1、安装gcc,用于编译Python源码

yum install gcc

2、下载源码包,https://www.python.org/ftp/python/

3、解压并进入源码文件

4、编译安装

./configure

make all

make install

5、查看版本

/usr/local/bin/python2.7 -V

6、修改默认Python版本

mv /usr/bin/python /usr/bin/python2.6

ln -s /usr/local/bin/python2.7 /usr/bin/python

7、防止yum执行异常,修改yum使用的Python版本

vi /usr/bin/yum

将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

标签:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值