admin 管理员组文章数量: 887060
2024年1月17日发(作者:css怎么修改按钮样式)
Python 基础教程
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于1991 年。
像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public
License)协议。
现在开始学习 Python!
Python IDE(集成开发环境)介绍
Python 3.X 版本的教程
Python 在线工具
谁适合阅读本教程?
本教程适合想从零开始学习Python 编程语言的开发人员。当然本教程也会对一些模块进行深入,
让你更好的了解 Python 的应用。
学习本教程前你需要了解
在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过 PHP,ASP 等编程语言,将有助于你更快的了解 Python 编程。
执行 Python 程序
对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用 Python 输出"Hello World!":
#!/usr/bin/python
print "Hello, World!";
python 3.0+版本已经把 print 作为一个内置函数,正确输出"Hello World!"代码如下:
#!/usr/bin/python
print("Hello, World!");
Python 简介
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
•
•
•
•
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于 PHP
和 Perl 语言。
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符,直接互动执行写你的程序。
Python 是面向对象语言: 这意味着Python 支持面向对象的风格或代码封装在对象的编
程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
Python 发展历史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。
现在 Python 是由一个核心开发团队在维护,,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
Python 特点
• 1.易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
•
•
•
•
•
•
•
•
•
2.易于阅读:Python 代码定义的更清晰。
3.易于维护:Python 的成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX,
Windows 和 Macintosh 兼容很好。
5.互动模式:互动模式的支持,您可以从终端输入并获得结果的语言,互动的测试和调试代码片断。
6.便携式:Python 可以运行在多种硬件平台和所有平台上都具有相同的接口。
7.可扩展:可以添加低层次的模块到 Python 解释器。这些模块使程序员可以添加或定
制自己的工具,更有效。
8.数据库:Python 提供所有主要的商业数据库的接口。
编程:Python 支持 GUI 可以创建和移植到许多系统调用。
10.可扩展性:相比 shell 脚本,Python 提供了一个更好的结构,且支持大型程序。
Python 环境搭建
本章节我们将向大家介绍如何在本地搭建 Python 开发环境。Python 可应用于多平台包括 Linux 和 Mac OS X。
你可以通过终端窗口输入 "python" 命令来查看本地是否已经安装Python 以及 Python 的安装版本。
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。)
Win 9x/NT/2000
Macintosh (Intel, PPC, 68K)
OS/2
DOS (多个 DOS 版本)
PalmOS
Nokia 移动手机
Windows CE
Acorn/RISC OS
BeOS
Amiga
VMS/OpenVMS
QNX
VxWorks
Psion
•
Python 同样可以移植到 Java 和 .NET 虚拟机上。
Python 下载
Python 最新源码,二进制文档,新闻资讯等可以在 Python 的官网查看到:
Python 官网:/
你可以在一下链接中下载 Python 的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。
Python 文档下载地址:/doc/
Python 安装
Python 已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。您需要下载适用于您使用平台的二进制代码,然后安装 Python。
如果您平台的二进制代码是不可用的,你需要使用 C 编译器手动编译源代码。编译的源代码,功能上有更多的选择性, 为 python 安装提供了更多的灵活性。以下为不同平台上安装 Python 的方法:
Unix & Linux 平台安装 Python:
以下为在 Unix & Linux 平台上安装 Python 的简单步骤:
•
•
•
•
打开 WEB 浏览器访问 /download/
选择使用于 Unix/Linux 的源码压缩包。
下载及解压压缩包。
如果你需要自定义一些选项修改 Modules/Setup
•
•
•
执行 ./configure 脚本
make
make install
执行以上操作后,Python 会安装在 /usr/local/bin 目录中,Python 库安装在
/usr/local/lib/pythonXX,XX 为你使用的 Python 的版本号。
Window 平台安装 Python:
以下为在 Window 平台上安装 Python 的简单步骤:
•
•
•
打开 WEB 浏览器访问 /download/
在下载列表中选择 Window 平台安装包,包格式为: 文件 , XYZ 为你要安装的版本号。
要使用安装程序 , Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持 MSI。Windows
XP 和更高版本已经有 MSI,很多老机器也可以安装 MSI。
• 下载后,双击下载包,进入 Python 安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。
MAC 平台安装 Python:
最近的 Macs 系统都自带有 Python 环境,但是自带的 Python 版本为旧版本,你可以通过链接/download/mac/ 查看 MAC 上 Python 的新版功能介绍。
MAC 上完整的 Python 安装教程你可以查看:/~jack/
环境变量配置
程序和可执行文件可以在许多目录,而这些路径很可能不在操作系统提供可执行文件的搜索路径中。
path(路径)存储在环境变量中,这是由操作系统维护的一个命名的字符串。这些变量包含可用的命令行解释器和其他程序的信息。
Unix 或 Windows 中路径变量为 PATH(UNIX 区分大小写,Windows 不区分大小写)。
在 Mac OS 中,安装程序过程中改变了 python 的安装路径。如果你需要在其他目录引用 Python,
你必须在 path 中添加 Python 目录。
在 Unix/Linux 设置环境变量
•
在 csh shell: 输入
setenv PATH "$PATH:/usr/local/bin/python"
, 按下"Enter"。
•
export PATH="$PATH:/usr/local/bin/python"
在 bash shell (Linux): 输入
,按下"Enter"。
•
PATH="$PATH:/usr/local/bin/python"
在 sh 或者 ksh shell: 输入
, 按下"Enter"。
注意: /usr/local/bin/python 是 Python 的安装目录。
在 Windows 设置环境变量
在环境变量中添加 Python 目录:
•
path %path%;C:Python
在命令提示框中(cmd) : 输入
, 按下"Enter"。
注意: C:Python 是 Python 的安装目录。
Python 环境变量
变量名 描述
PYTHONPATH
PYTHONPATH 是 Python 搜索路径,默认我们 import 的模块都会从PYTHONPATH 里面寻找。
PYTHONSTARTUP
Python 启动后,先寻找 PYTHONSTARTUP 环境变量,
然后执行此文件中变量指定的执行代码。
PYTHONCASEOK
加入 PYTHONCASEOK 的环境变量, 就会使 python 导入模块的时候不区分大小写.
PYTHONHOME
另一种模块搜索路径。它通常内嵌于的 PYTHONSTARTUP 或 PYTHONPATH 目录中,
使得两个模块库更容易切换。
下面几个重要的环境变量,它应用于 Python:
运行 Python
有三种方式可以运行 Python:
1、交互式解释器:
你可以通过命令行窗口进入 python 并开在交互式解释器中开始编写 Python 代码。
你可以在 Unix,DOS 或任何其他提供了命令行或者 shell 的系统进行 python 编码工作。
$python # Unix/Linux
或者
python% # Unix/Linux
或者
C:>python # Windows/DOS
以下为 Python 命令行参数:
选项 描述
-d
在解析时显示调试信息
-O
生成优化代码 ( .pyo 文件 )
-S
启动时不引入查找 Python 路径的位置
-v
输出 Python 版本号
-X
从 1.6 版本之后基于内建的异常(仅仅用于字符串)已过时。
-c cmd
执行 Python 脚本,并将运行结果作为 cmd 字符串。
file
在给定的 python 文件执行 python 脚本。
2、命令行脚本
在你的应用程序中通过引入解释器可以在命令行中执行 Python 脚本,如下所示:
$python # Unix/Linux
或者
python% # Unix/Linux
或者
C:>python # Windows/DOS
注意:在执行脚本时,请检查脚本是否有可执行权限。
3、集成开发环境(IDE:Integrated Development Environment)
您可以使用图形用户界面(GUI)环境来编写及运行Python 代码。以下推荐各个平台上使用的IDE:
•
•
•
Unix: IDLE 是 UNIX 上最早的 Python IDE 。
Windows: PythonWin 是一个 Python 集成开发环境,在许多方面都比 IDE 优秀
Macintosh: Python 的 Mac 可以使用 IDLE IDE,你可以在网站上下载对应 MAC 的IDLE 。
继续下一章之前,请确保您的环境已搭建成功。如果你不能够建立正确的环境,那么你就可以从您的系统管理员的帮助。
在以后的章节中给出的例子已在 Centos(Linux)下 Python2.4.3 版本测试通过。
Python 中文编码
前面章节中我们已经学会了如何用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。
Python 文件中如果未指定编码,在执行过程会出现报错:
#!/usr/bin/python
print "你好,世界";
以上程序执行输出结果为:
File "", line 2
SyntaxError: Non-ASCII character 'xe4' in file on line 2, but no
encoding declared; see /peps/ for deta
ils
以上出错信息显示了我们为指定编码,解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*-
或者 #coding=utf-8 就行了。
#coding=utf-8
#!/usr/bin/python
print "你好,世界";
输出结果为:
你好,世界
所以如果大家再学习过程中,代码中包含中文,就需要在头部指定编码。
Python 基础语法
Python 语言与 Perl,C 和 Java 等语言有许多相似之处。但是,也存在一些差异。
在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程。
第一个 Python 程序
交互式编程
交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。
linux 上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:
$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Window 上在安装 Python 时已经已经安装了默认的交互式编程客户端,提示窗口如下:
在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果:
>>> print "Hello, Python!";
在 Python 2.4.3 版本中,以上事例输出结果如下:
Hello, Python!
如果您运行的是新版本的 Python,那么你就需要在 print 语句中使用括号如:
>>> print ("Hello, Python!");
脚本式编程
通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。
让我们写一个简单的 Python 脚本程序。所有 Python 文件将以.py 为扩展名。将以下的源代码拷贝至 文件中。
print "Hello, Python!";
这里,假设你已经设置了 Python 解释器 PATH 变量。使用以下命令运行程序:
$ python
输出结果:
Hello, Python!
让我们尝试另一种方式来执行 Python 脚本。修改 文件,如下所示:
#!/usr/bin/python
print "Hello, Python!";
这里,假定您的 Python 解释器在/usr/bin 目录中,使用以下命令执行脚本:
$ chmod +x
$./
# 脚本文件添加可执行权限
输出结果:
Hello, Python!
Python 标识符
在 python 里,标识符有字母、数字、下划线组成。
在 python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。python 中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,
需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的( foo)代表类的私有成员;以双下划线开头和结尾的( foo )代表 python
里特殊方法专用的标识,如 init ()代表类的构造函数。
Python 保留字符
下面的列表显示了在 Python 中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except
lambda yield
所有 Python 的关键字只包含小写字母。
行和缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
if True:
print "True"
else:
print "False"
以下代码将会执行错误:
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
因此,在 Python 的代码块中必须使用相同数目的行首缩进空格数。以下实例包含了相同数目的行首缩进代码语句块的例子:
#!/usr/bin/python
import sys
try:
# open file stream
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file
break
(file_text)
("n")
()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
()
file_text = ()
()
print file_text
多行语句
Python 语句中一般以新行作为为语句的结束符。
但是我们可以使用斜杠( )将一行的语句分为多行显示,如下所示:
total = item_one +
item_two +
item_three
语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Python 引 号
Python 接收单引号(' ),双引号(" ),三引号(''' """) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,
被当做注释。
word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""
Python 注释
python 中单行注释采用 # 开头。
python 没有块注释,所以现在推荐的多行注释也是采用的 #比如:
#!/usr/bin/python
# First comment
print "Hello, Python!"; # second comment
输出结果:
Hello, Python!
注释可以在语句或表达式行末:
name = "Madisetti" # This is again comment
多条评论:
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
Python 空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
等待用户输入
下面的程序在按回车键后就会等待用户输入:
#!/usr/bin/python
raw_input("nnPress the enter key to exit.")
以上代码中 ,"nn"在结果输出前会输出两个新的空行。一旦用户按下键时,程序将退出。
同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
import sys; x = 'foo'; (x + 'n')
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像 if、while、def 和 class 这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。如下实例:
if expression :
suite
elif expression :
suite
else :
suite
命令行参数
很多程序可以执行一些操作来查看一些基本信,Python 可以使用-h 参数查看各参数帮助信息:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d
-E
-h
: debug output from parser (also PYTHONDEBUG=x)
: ignore environment variables (such as PYTHONPATH)
: print this help message and exit
[ etc. ]
Python 变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python 中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
#coding=utf-8
#!/usr/bin/python
counter = 100 # 赋值整型变量miles = 1000.0 # 浮 点 型name = "John" # 字符串
print counter
print miles
print name
以上实例中,100,1000.0 和"John"分别赋值给 counter,miles,name 变量。执行以上程序会输出如下结果:
100
1000.0
John
多个变量赋值
Python 允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为 1,三个变量被分配到相同的内存空间上。您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象"john"分配给变量 c。
标准数据类型
在内存中存储的数据可以有多种类型。
例如,person.s 年龄作为一个数值存储和他或她的地址是字母数字字符存储。Python 有一些标准类型用于定义操作上,他们和为他们每个人的存储方法可能。Python 有五个标准的数据类型:
•
•
•
•
•
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Python 数字
数字数据类型用于存储数值。
他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。当你指定一个值时,Number 对象就会被创建:
var1 = 1
var2 = 10
您也可以使用 del 语句删除一些对象引用。
del 语句的语法是:
del var1[,var2[,var3[. .. ,varN]]]]
您可以通过使用 del 语句删除单个或多个对象。例如:
del var
del var_a, var_b
Python 支持四种不同的数值类型:
•
•
•
•
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
实例
一些数值类型的实例:
int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -L -32.54e100 3e+26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
•
•
长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python
使用"L"来显示长整型。
Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a
complex(a,b)表示, 复数的实部 a 和虚部 b 都是浮点型
+ bj,或者Python 字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 :
s="a1a2···an"(n>=0)
它是编程语言中表示文本的数据类型。
python 的字串列表有 2 种取值顺序:
•
•
从左到右索引默认 0 开始的,最大范围是字符串长度少 1
从右到左索引默认-1 开始的,最大范围是字符串开头
如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
比如:
s = 'ilovepython'
s[1:5]的结果是 love。
当使用以冒号分隔的字符串,python 返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。
上面的结果包含了 s[1]的值 l,而取到的最大范围不包括上边界,就是 s[5]的值 p。加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:
#coding=utf-8
#!/usr/bin/python
str = 'Hello World!'
print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第五个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
以上实例输出结果:
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
Python 列表
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
列表用[ ]标识。是 python 最通用的复合数据类型。看这段代码就明白。
列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认 0
开始的,从右到左索引默认-1 开始,下标可以为空表示取到头或尾。加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:
#coding=utf-8
#!/usr/bin/python
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
以上实例输出结果:
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Python 元组
元组是另一个数据类型,类似于 List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
#coding=utf-8
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
以上实例输出结果:
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:
#coding=utf-8
#!/usr/bin/python
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
Python 元字典
字典(dictionary)是除列表以外 python 之中最灵活的内置数据结构类型。列表是有序的对象结合,
字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{ }"标识。字典由索引(key)和它对应的值 value 组成。
#coding=utf-8
#!/usr/bin/python
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print () # 输出所有键
print () # 输出所有值
输出结果为:
This is one This is two {'dept': 'sales', 'code': 6734, 'name':
'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']
Python 数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 描述
int(x [,base])
long(x [,base] )
float(x)
complex(real [,imag])
str(x)
repr(x)
eval(str)
tuple(s)
list(s)
set(s)
dict(d)
将 x 转换为一个整数
将 x 转换为一个长整数
将 x 转换到一个浮点数
创建一个复数
将对象 x 转换为字符串
将对象 x 转换为表达式字符串
用来计算在字符串中的有效 Python 表达式,并返回一个对象
将序列 s 转换为一个元组
将序列 s 转换为一个列表
转换为可变集合
创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)
chr(x)
unichr(x)
ord(x)
hex(x)
oct(x)
转换为不可变集合
将一个整数转换为一个字符
将一个整数转换为 Unicode 字符
将一个字符转换为它的整数值
将一个整数转换为一个十六进制字符串
将一个整数转换为一个八进制字符串
什么是运算符?
本章节主要说明Python 的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和5 被称为操作数,"+"
号为运算符。
Python 语言支持以下类型的运算符:
•
•
•
•
•
•
•
•
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
接下来让我们一个个来学习 Python 的运算符。
Python 算术运算符
以下假设变量 a 为 10,变量 b 为 20:
运算符 描述 实例
+
加 - 两个对象相加 a + b 输出结果 30
-
减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
*
乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/
除 - x 除以 y b / a 输出结果 2
%
取模 - 返回除法的余数 b % a 输出结果 0
**
幂 - 返回 x 的 y 次幂 a**b 为 10 的 20 次方, 输出结果
100000000
//
取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
以下实例演示了 Python 所有算术运算符的操作:
#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Line 1 - Value of c is ", c
c = a - b
print "Line 2 - Value of c is ", c
c = a * b
print "Line 3 - Value of c is ", c
c = a / b
print "Line 4 - Value of c is ", c
c = a % b
print "Line 5 - Value of c is ", c
a = 2
b = 3
c = a**b
print "Line 6 - Value of c is ", c
a = 10
b = 5
c = a//b
print "Line 7 - Value of c is ", c
以上实例输出结果:
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2
Python 比较运算符
运算符 描述
实例
==
等于 - 比较对象是否相等 (a == b) 返回 False。
!=
不等于 - 比较两个对象是否不相等 (a != b) 返 回 true.
<>
不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
>
大于 - 返回 x 是否大于 y (a > b) 返回 False。
<
小于 - 返回x 是否小于y。所有比较运算符返回 1 表示真, (a < b) 返回 true。
返回 0 表示假。
这分别与特殊的变量 True 和 False 等价。注意,
这些变量名的大写。
>=
大于等于 - 返回 x 是否大于等于 y。 (a >= b) 返回 False。
<=
小于等于 - 返回 x 是否小于等于 y。 (a <= b) 返回 true。
以下假设变量 a 为 10,变量 b 为 20:
以下实例演示了 Python 所有比较运算符的操作:
#!/usr/bin/python
a = 21
b = 10
c = 0
if ( a == b ):
print "Line 1 - a is equal to b"
else:
print "Line 1 - a is not equal to b"
if ( a != b ):
print "Line 2 - a is not equal to b"
else:
print "Line 2 - a is equal to b"
if ( a <> b ):
print "Line 3 - a is not equal to b"
else:
print "Line 3 - a is equal to b"
if ( a < b ):
print "Line 4 - a is less than b"
else:
print "Line 4 - a is not less than b"
if ( a > b ):
print "Line 5 - a is greater than b"
else:
print "Line 5 - a is not greater than b"
a = 5;
b = 20;
if ( a <= b ):
print "Line 6 - a is either less than or equal to b"
else:
print "Line 6 - a is neither less than nor equal to b"
if ( b >= a ):
print "Line 7 - b is either greater than or equal to b"
else:
print "Line 7 - b is neither greater than nor equal to b"
以上实例输出结果:
Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b
Python 赋值运算符
以下假设变量 a 为 10,变量 b 为 20:
运算符 描述 实例
=
简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+=
加法赋值运算符 c += a 等效于 c = c + a
-=
减法赋值运算符 c -= a 等效于 c = c - a
*=
乘法赋值运算符 c *= a 等效于 c = c * a
/=
除法赋值运算符 c /= a 等效于 c = c / a
%=
取模赋值运算符 c %= a 等效于 c = c % a
**=
幂赋值运算符 c **= a 等效于 c = c ** a
//=
取整除赋值运算符 c //= a 等效于 c = c // a
以下实例演示了 Python 所有赋值运算符的操作:
#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Line 1 - Value of c is ", c
c += a
print "Line 2 - Value of c is ", c
c *= a
print "Line 3 - Value of c is ", c
c /= a
print "Line 4 - Value of c is ", c
c = 2
c %= a
print "Line 5 - Value of c is ", c
c **= a
print "Line 6 - Value of c is ", c
c //= a
print "Line 7 - Value of c is ", c
以上实例输出结果:
Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864
Python 位运算符
按位运算符是把数字看作二进制来进行计算的。Python 中的按位运算法则如下:
运算符 描述 实例
&
按位与运算符 (a & b) 输出结果 12 ,二进制解释: 0000 1100
|
按位或运算符 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^
按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~
按位取反运算符 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,
在一个有符号二进制数的补码形式。
<<
左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000
>>
右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111
以下实例演示了 Python 所有位运算符的操作:
#!/usr/bin/python
a = 60
b = 13
c = 0
# 60 = 0011 1100
# 13 = 0000 1101
c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c
c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c
c = a ^ b; # 49 = 0011 0001
print "Line 3 - Value of c is ", c
c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c
c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c
c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c
以上实例输出结果:
Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
Python 逻辑运算符
Python 语言支持逻辑运算符,以下假设变量 a 为 10,变量 b 为 20:
运算符 描述 实例
and
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 true。
or
布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 true。
not
布尔"非" - 如果 x 为 True,返回 False。如果 x 为 False,它返回 True。 not(a and b) 返回 false。
以下实例演示了 Python 所有逻辑运算符的操作:
#!/usr/bin/python
a = 10
b = 20
c = 0
if ( a and b ):
print "Line 1 - a and b are true"
else:
print "Line 1 - Either a is not true or b is not true"
if ( a or b ):
print "Line 2 - Either a is true or b is true or both are true"
else:
print "Line 2 - Neither a is true nor b is true"
a = 0
if ( a and b ):
print "Line 3 - a and b are true"
else:
print "Line 3 - Either a is not true or b is not true"
if ( a or b ):
print "Line 4 - Either a is true or b is true or both are true"
else:
print "Line 4 - Neither a is true nor b is true"
if not( a and b ):
print "Line 5 - Either a is not true or b is not true or both are not
true"
else:
print "Line 5 - a and b are true"
以上实例输出结果:
Line 1 - a and b are true
Line 2 - Either a is true or b is true or both are true
Line 3 - Either a is not true or b is not true
Line 4 - Either a is true or b is true or both are true
Line 5 - Either a is not true or b is not true or both are not true
Python 成员运算符
除了以上的一些运算符之外,Python 还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 描述 实例
in
如果在指定的序列中找到值返回 True,
否则返回 False。
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in
如果在指定的序列中没有找到值返回 True, x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
否则返回 False。
以下实例演示了 Python 所有成员运算符的操作:
#!/usr/bin/python
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "Line 1 - a is available in the given list"
else:
print "Line 1 - a is not available in the given list"
if ( b not in list ):
print "Line 2 - b is not available in the given list"
else:
print "Line 2 - b is available in the given list"
a = 2
if ( a in list ):
print "Line 3 - a is available in the given list"
else:
print "Line 3 - a is not available in the given list"
以上实例输出结果:
Line 1 - a is not available in the given list
Line 2 - b is not available in the given list
Line 3 - a is available in the given list
Python 身份运算符
身份运算符用于比较两个对象的存储单元
运算符 描述 实例
is
is 是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not
is not 是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
以下实例演示了 Python 所有身份运算符的操作:
#!/usr/bin/python
a = 20
b = 20
if ( a is b ):
print "Line 1 - a and b have same identity"
else:
print "Line 1 - a and b do not have same identity"
if ( id(a) == id(b) ):
print "Line 2 - a and b have same identity"
else:
print "Line 2 - a and b do not have same identity"
b = 30
if ( a is b ):
print "Line 3 - a and b have same identity"
else:
print "Line 3 - a and b do not have same identity"
if ( a is not b ):
print "Line 4 - a and b do not have same identity"
else:
print "Line 4 - a and b have same identity"
以上实例输出结果:
Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity
Python 运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 描述
**
指数 (最高优先级)
~ + -
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //
乘,除,取模和取整除
+ -
加法减法
>> <<
右移,左移运算符
&
位 'AND'
^ |
位运算符
<= < > >=
比较运算符
<> == !=
等于运算符
= %= /= //= -=
赋值运算符
+= *= **=
is is not
身份运算符
in not in
成员运算符
not or and
逻辑运算符
以下实例演示了 Python 所有运算符优先级的操作:
#!/usr/bin/python
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ", e
e = ((a + b) * c) / d # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ", e
e = (a + b) * (c / d); # (30) * (15/5)
print "Value of (a + b) * (c / d) is ", e
e = a + (b * c) / d; # 20 + (150/5)
print "Value of a + (b * c) / d is ", e
以上实例输出结果:
Value of (a + b) * c / d is 90
版权声明:本文标题:(完整版)python教程(可编辑修改word版) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705475486h486301.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论