问道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

 

时间: 2024-10-22 13:20:05

问道python之基础篇【一】 认识python的相关文章

问道python之基础篇【二】python入门

问道python之基础篇[二] Python入门 1.python的工作过程 python解释器把源代码转换为字节码的中间形式,然后再把它翻译成机器使用的机器语言并运行. 2.pyc文件 2.1.什么是pyc文件 执行python代码时,如果导入了其他的.py文件,那么在执行过程中会自动生成一个与其同名的.pyc文件,该文件就是python解释器编译之后产生的字节码. ps:代码经过编译可以产生字节码:字节码通过反编译也可以得到代码. Pyc文件一般由3个部分组成: 最开始4个字节是一个Maig

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所

python之基础篇(四)

防伪码:忘情公子著 本篇我们来说说python的内置对象类型及其运算. python有许多的内置类型,我们为什么要使用内置类型呢?python编程时是尽量去使用自定义类型还是尽可能多的使用内置类型呢? 内置类型对python本身来讲它的理解能力更好一点,对其执行时所能够带来的性能上也会更好一点.所以,除非内置类型无法提供特殊对象处理时,一般而言最好都用内置类型.因为内置类型使得其内置对象程序更容易编写,另外,内置类型.内置对象是扩展组件,内置对象往往比自己开发的那种数据结构,在执行时更有效率.

图解Python 【第一篇】:Python基础1

本节内容一览图 一.Python简介  Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五!!! 由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!! 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用Ope

Python+Selenium基础篇之5-第一个完整的自动化测试脚本

前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样. 我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项. 在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本.我把这个测

python之基础篇(一)

防伪码:忘情公子著 一.python介绍 python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. python语法简洁明晰,特色之一是强制用空白符作为语句缩进. python具有丰富和强大的库,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.此段引自百度百科. python有很多的模块能够实现各种功能,在编程时能够通过调用相应的模块从而减少代码量 二.编程语言介绍 在开始学习pyth

python之基础篇(七)——类与面向对象

防伪码:忘情公子著 面向对象编程(OOP) 程序 = 指令+数据 代码可以选择以指令为核心或以数据为核心进行编写. 两种范型: 以指令为核心:围绕"正在发生什么"进行编写 面向过程编程:程序具有一系列线性步骤.主体思想是代码作用于数据 以数据为核心:围绕"将影响谁"进行编写 面向对象编程(OOP):围绕数据及为数据严格定义的接口来组织程序,用数据控制对代码的访问 面向对象的核心概念 所有编程语言的最终目的都是提供一种抽象方法. 在机器模型("解空间&quo

Python之基础篇(三)

基础篇之三: 一,数据类型之set. 总结:set无序,不重复. 1,创建set: s = {1,2,3} print(s,type(s)) list1 = [1,2,3] s1=(list1) print(s1,type(list1)) s2 = set() print(s2,type(s2)) {1, 2, 3} <class 'set'> [1, 2, 3] <class 'list'> set() <class 'set'> 2,set方法 1,添加元素:(s.

Python学习-基础篇11 前端知识之HTML内容

HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.secd(b"<h1>Hello world!</h