python3基础教程

更新时间:2024-01-26 14:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Python 基础教程

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。 现在开始学习 Python! 谁适合阅读本教程?

本教程适合想从零开始学习Python编程语言的开发人员。当然本教程也会对一些模块进行深入,让你更好的了解Python的应用。

学习本教程前你需要了解

在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过PHP,ASP等编程语言,将有助于你更快的了解Python编程。 执行Python程序

对于大多数程序语言,第一个入门编程代码便是\!\,以下代码为使用Python输出\!\: 实例(Python 2.0+) #!/usr/bin/python print \

运行实例 ?

Python 3.0+版本已经把print作为一个内置函数,正确输出\!\代码如下: 实例(Python 3.0+) #!/usr/bin/python

print(\

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.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

8.数据库:Python提供所有主要的商业数据库的接口。

9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得\脚本化\的能力。 Python 环境搭建

本章节我们将向大家介绍如何在本地搭建Python开发环境。

Python可应用于多平台包括 Linux 和 Mac OS X。

你可以通过终端窗口输入 \命令来查看本地是否已经安装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官网:http://www.python.org/

你可以在一下链接中下载Python的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。 Python文档下载地址:www.python.org/doc/ Python安装

Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。 您需要下载适用于您使用平台的二进制代码,然后安装Python。

如果您平台的二进制代码是不可用的,你需要使用C编译器手动编译源代码。 编译的源代码,功能上有更多的选择性, 为python安装提供了更多的灵活性。 以下为不同平台上安装Python的方法: Unix & Linux 平台安装 Python:

以下为在Unix & Linux 平台上安装 Python 的简单步骤: 打开WEB浏览器访问http://www.python.org/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浏览器访问http://www.python.org/download/

在下载列表中选择Window平台安装包,包格式为:python-XYZ.msi 文件 , XYZ 为你要安装的版本号。 要使用安装程序 python-XYZ.msi, Windows系统必须支持Microsoft Installer 2.0搭配使用。只要保存安装文件到本地计算机,然后运行它,看看你的机器支持MSI。Windows XP和更高版本已经有MSI,很多老机器也可以安装MSI。

下载后,双击下载包,进入Python安装向导,安装非常简单,你只需要使用默认的设置一直点击\下一步\直到安装完成即可。

MAC 平台安装 Python:

最近的Macs系统都自带有Python环境,你也可以在链接 http://www.python.org/download/ 上下载最新版安装。 环境变量配置

程序和可执行文件可以在许多目录,而这些路径很可能不在操作系统提供可执行文件的搜索路径中。

path(路径)存储在环境变量中,这是由操作系统维护的一个命名的字符串。这些变量包含可用的命令行解释器和其他程序的信息。

Unix或Windows中路径变量为PATH(UNIX区分大小写,Windows不区分大小写)。 在Mac OS中,安装程序过程中改变了python的安装路径。如果你需要在其他目录引用Python,你必须在path中添加Python目录。

在 Unix/Linux 设置环境变量 在 csh shell: 输入

setenv PATH \ , 按下\。

在 bash shell (Linux): 输入

export PATH=\

,按下\。

在 sh 或者 ksh shell: 输入

PATH=\ , 按下\。

注意: /usr/local/bin/python 是Python的安装目录。 在 Windows 设置环境变量

在环境变量中添加Python目录: 在命令提示框中(cmd) : 输入 path=%path%;C:\\Python 按下\。

注意: C:\\Python 是Python的安装目录。 也可以通过以下方式设置:

右键点击\计算机\,然后点击\属性\ 然后点击\高级系统设置\

选择\系统变量\窗口下面的\双击即可!

然后在\行,添加python安装路径即可(我的D:\\Python32),所以在后面,添加该路径即可。用分号\;\隔开!

最后设置成功以后,在cmd命令行,输入命令\,就可以有相关显示。

ps:记住,路径直接

Python 环境变量

下面几个重要的环境变量,它应用于Python: 变量名 描述

PYTHONPATH PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

PYTHONSTARTUP Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。 PYTHONCASEOK 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写.

PYTHONHOME 另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。

运行Python

有三种方式可以运行Python: 1、交互式解释器:

你可以通过命令行窗口进入python并开在交互式解释器中开始编写Python代码。

你可以在Unix,DOS或任何其他提供了命令行或者shell的系统进行python编码工作。 $ 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 script.py # Unix/Linux 或者

C:>python script.py # 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 。

继续下一章之前,请确保您的环境已搭建成功。如果你不能够建立正确的环境,那么你就可以从您的系统管理员的帮助。 在以后的章节中给出的例子已在 Python2.7.6 版本测试通过。 Python 中文编码

前面章节中我们已经学会了如何用 Python 输出 \World!\,英文没有问题,但是如果你输出中文字符\你好,世界\就有可能会碰到中文编码问题。

Python 文件中如果未指定编码,在执行过程会出现报错: #!/usr/bin/python

print \你好,世界\

以上程序执行输出结果为: File \

SyntaxError: Non-ASCII character '\\xe4' in file test.py on line 2, but no encoding declared; http://www.python.org/peps/pep-0263.html for details

Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。 解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了。 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- print \你好,世界\ 输出结果为: 你好,世界

所以如果大家再学习过程中,代码中包含中文,就需要在头部指定编码。

注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。

注意:如果你使用编辑器,同时需要设置好编辑器的编码,如 Pycharm 设置步骤:

进入 file > Settings,在输入框搜索 encoding。

找到 Editor > File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。

see

Python 基础语法

Python语言与Perl,C和Java等语言有许多相似之处。但是,也存在一些差异。 在本章中我们将来学习Python的基础语法,让你快速学会Python编程。

第一个Python程序 交互式编程

交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。 linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:

$ pythonPython 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwinType \

Window上在安装Python时已经已经安装了默认的交互式编程客户端,提示窗口如下:

在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果: >>> print \

在 Python 2.7.6 版本中,以上实例输出结果如下: Hello, Python! 脚本式编程

通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。

让我们写一个简单的Python脚本程序。所有Python文件将以.py为扩展名。将以下的源代码拷贝至test.py文件中。 print \

这里,假设你已经设置了Python解释器PATH变量。使用以下命令运行程序:

$ python test.py 输出结果: Hello, Python!

让我们尝试另一种方式来执行Python脚本。修改test.py文件,如下所示: #!/usr/bin/python print \

这里,假定您的Python解释器在/usr/bin目录中,使用以下命令执行脚本: $ chmod +x test.py # 脚本文件添加可执行权限 $ ./test.py 输出结果: Hello, Python!

Python 标识符

在python里,标识符有字母、数字、下划线组成。

在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 python中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用\而导入;

以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。

Python保留字符

下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。 所有Python的关键字只包含小写字母。 and assert break class def del elif else

exec for from if in is

not pass print return while with

行和缩进

学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示: if True:

print \ print \

以下代码将会执行错误:

#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py

if True:

print \ print \ print \

finally or

continue global raise

import try

except lambda yield

# 没有严格缩进,在执行时保持 print \

执行以上代码,会出现如下错误提醒: $ python test.py File \ if True:

^IndentationError: unexpected indent

IndentationError: unexpected indent 错误是python编译器是在告诉你\,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题\,所有python对格式要求非常严格。

如果是 IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。

因此,在Python的代码块中必须使用相同数目的行首缩进空格数。

建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用

多行语句

Python语句中一般以新行作为为语句的结束符。

但是我们可以使用斜杠( \\)将一行的语句分为多行显示,如下所示: total = item_one + \\ item_two + \\ item_three

语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例: days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

Python 引号

Python 接收单引号(' ),双引号(\,三引号(''' \来表示字符串,引号的开始与结束必须的相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。 word = 'word'

sentence = \这是一个句子。\paragraph = \这是一个段落。 包含了多个语句\

Python注释

python中单行注释采用 # 开头。

#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py # 第一个注释print \ # 第二个注释 输出结果: Hello, Python!

注释可以在语句或表达式行末: name = \这是一个注释

python 中多行注释使用三个单引号(''')或三个双引号(\。 #!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:test.py '''

这是多行注释,使用单引号。 这是多行注释,使用单引号。 这是多行注释,使用单引号。 ''' \

这是多行注释,使用双引号。 这是多行注释,使用双引号。 这是多行注释,使用双引号。

\

Python空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。 记住:空行也是程序代码的一部分。

等待用户输入

下面的程序在按回车键后就会等待用户输入: #!/usr/bin/python

raw_input(\

以上代码中 ,\在结果输出前会输出两个新的空行。一旦用户按下键时,程序将退出。

同一行显示多条语句

Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例: #!/usr/bin/python

import sys; x = 'runoob'; sys.stdout.write(x + '\\n') 执行以上代码,输入结果为: $ python test.py runoob

多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

像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 : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]

我们在使用脚本形式执行 Python 时,可以接收命令行输入的参数,具体使用可以参照 Python 命令行参数。

Python 变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。

基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如: #!/usr/bin/python# -*- coding: UTF-8 -*-

counter = 100 # 赋值整型变量 miles = 1000.0 # 浮点型 name = \字符串

print counterprint milesprint name 运行实例 ?

以上实例中,100,1000.0和\分别赋值给counter,miles,name变量。 执行以上程序会输出如下结果: 1001000.0John

多个变量赋值

Python允许你同时为多个变量赋值。例如: a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。 您也可以为多个对象指定多个变量。例如: a, b, c = 1, 2, \

以上实例,两个整型对象1和2的分配给变量a和b,字符串对象\分配给变量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 10

long

51924361L

float 0.0

3.14j

complex

100 -786 080

-0x19323L 0122L

15.20 -21.9 -90. 70.2-E12

45.j 9.322e-36j .876j -.6545+0J 4.53e-7j

0xDEFABCECBDAECBFBAEl 32.3+e18

-0490 535633629843L -0x260 -052318172735L 0x69

? ?

-32.54e100 3e+26J

-4721885298529L

长整型也可以使用小写\,但是还是建议您使用大写\,避免与数字\混淆。Python使用\来显示长整型。 Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。 一般记为 :

s=\

它是编程语言中表示文本的数据类型。 python的字串列表有2种取值顺序:

? ?

从左到右索引默认0开始的,最大范围是字符串长度少1 从右到左索引默认-1开始的,最大范围是字符串开头

如果你的实要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。 比如:

s = 'ilovepython' s[1:5]的结果是love。

当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。 加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例: #!/usr/bin/python

# -*- coding: UTF-8 -*-

str = 'Hello World!'

print str # 输出完整字符串

print str[0] # 输出字符串中的第一个字符

print str[2:5] # 输出字符串中第三个至第五个之间的字符串 print str[2:] # 输出从第三个字符开始的字符串 print str * 2 # 输出字符串两次

print str + \输出连接的字符串 以上实例输出结果: Hello World! H llo

llo World!

Hello World!Hello World! Hello World!TEST

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。 列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。 加号(+)是列表连接运算符,星号(*)是重复操作。如下实例: #!/usr/bin/python

# -*- coding: UTF-8 -*-

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(列表)。

元组用\标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。 #!/usr/bin/python

# -*- coding: UTF-8 -*-

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')

以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的: #!/usr/bin/python

# -*- coding: UTF-8 -*-

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组成。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

dict = {}

dict['one'] = \dict[2] = \

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print dict['one'] # 输出键为'one' 的值 print dict[2] # 输出键为 2 的值 print tinydict # 输出完整的字典 print tinydict.keys() # 输出所有键 print tinydict.values() # 输出所有值 输出结果为:

This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。 以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数

int(x [,base]) 将x转换为一个整数 long(x [,base] ) float(x)

将x转换为一个长整数 将x转换到一个浮点数

描述

complex(real

创建一个复数

[,imag]) str(x) repr(x) eval(str) tuple(s) list(s) set(s) dict(d) chr(x) unichr(x) ord(x) hex(x)

将对象 x 转换为字符串 将对象 x 转换为表达式字符串

用来计算在字符串中的有效Python表达式,并返回一个对象 将序列 s 转换为一个元组 将序列 s 转换为一个列表 转换为可变集合

创建一个字典。d 必须是一个序列 (key,value)元组。 将一个整数转换为一个字符 将一个整数转换为Unicode字符 将一个字符转换为它的整数值 将一个整数转换为一个十六进制字符串

frozenset(s) 转换为不可变集合

oct(x)

将一个整数转换为一个八进制字符串

Python 运算符

什么是运算符?

本章节主要说明Python的运算符。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,\+\称为运算符。

Python语言支持以下类型的运算符:

? ? ? ? ? ? ? ?

算术运算符

比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级

接下来让我们一个个来学习Python的运算符。

Python算术运算符

以下假设变量a为10,变量b为20: 运

描算

述 符

加 - 两个+ a + b 输出结果 30 对象相加 减 - 得

- 到a - b 输出结果 -10 负数或

实例

是一个数减去另一个数

乘 - 两个数相乘或是返回

* 一a * b 输出结果 200 个被重复若干次的字符串 除 - x

/ 除b / a 输出结果 2 以y 取模 - 返% 回除b % a 输出结果 0 法的余数

** - a**b 为10的20次方,返

输出结果 100000000000000000000 回x的y次幂

取整除 - 返回// 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 商的整数部分 以下实例演示了Python所有算术运算符的操作: #!/usr/bin/python# -*- coding: UTF-8 -*-

a = 21 b = 10 c = 0

c = a + bprint \的值为:\

c = a - bprint \的值为:\

c = a * bprint \的值为:\

c = a / bprint \的值为:\

c = a % bprint \的值为:\# 修改变量 a 、b 、c a = 2 b = 3

c = a**b print \的值为:\

a = 10 b = 5

c = a//b print \的值为:\尝试一下 ? 以上实例输出结果:

1 - c 的值为: 312 - c 的值为: 113 - c 的值为: 2104 - c 的值为: 25 - c 的值为: 16 - c 的值为: 87 - c 的值为: 2

Python比较运算符

以下假设变量a为10,变量b为20: 运算符

描述

等于 - 比较对

(a == b) 返回 False。

象是否相等

不等于 - 比较两个

(a != b) 返回 true.

对象是否不相等

不等于 - 比较两个

(a <> b) 返回 true。这个运算符类似 != 。

对象是否不相等

大于 - 返回x

(a > b) 返回 False。

是否大于y

小于 - 返回x是否小于y。所有比较运

算符(a < b) 返回 true。 返回1表示真,返回0表示假。这分别与

实例

==

!=

<>

>

<

特殊的变量True和False等价。注意,这些变量名的大写。

大于等于 - 返回x

(a >= b) 返回 False。

是否大于等于y。

小于等于 - 返回x

(a <= b) 返回 true。

是否小于等于y。

>=

<=

以下实例演示了Python所有比较运算符的操作: #!/usr/bin/python# -*- coding: UTF-8 -*-

a = 21 b = 10 c = 0

if ( a == b ):

print \等于 b\ print \不等于 b\if ( a != b ):

print \不等于 b\ print \等于 b\if ( a <> b ):

print \不等于 b\ print \等于 b\if ( a < b ):

print \小于 b\ print \大于等于 b\if ( a > b ):

print \大于 b\ print \小于等于 b\

# 修改变量 a 和 b 的值 a = 5;

b = 20;if ( a <= b ):

print \小于等于 b\ print \大于 b\if ( b >= a ):

print \大于等于 b\ print \小于 b\以上实例输出结果:

1 - a 不等于 b2 - a 不等于 b3 - a 不等于 b4 - a 大于等于 b5 - a 大于 b6 - a 小于等于 b7 - b 大于等于 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# -*- coding: UTF-8 -*-

a = 21 b = 10 c = 0

c = a + bprint \的值为:\

c += aprint \的值为:\

c *= aprint \的值为:\

c /= a print \的值为:\

c = 2

c %= aprint \的值为:\

c **= aprint \的值为:\

c //= aprint \的值为:\以上实例输出结果:

1 - c 的值为: 312 - c 的值为: 523 - c 的值为: 10924 - c 的值为: 525 - c 的值为: 26 - c 的值为: 20971527 - c 的值为: 99864

Python位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13。 运算描述 符

按位与运算符:参与运算的两个值,& 如果两个相应位都(a & b) 输出结果 12 ,二进制解释:为1,则该位的结果为1,否则为0 按位或运算符:只要对应的| 二个二进位有一个(a | b) 输出结果 61 ,二进制解释:为1时,结果位就为1。 按位异或运算符:^ 当两对应的二进位(a ^ b) 输出结果 49 ,二进制解释:相异时,结果为1

按位取反运算符:对数据的每个二进

~ 制位取(~a ) 输出结果 -61 ,二进制解释:反,即把1变为0,把0变为1

实例

,在一个有符号二进制数的补码形式。 0000 1100 0011 1101 0011 0001 1100 0011 左移动运算符:运算数的各二进位全部左移若干位,由<< a << 2 输出结果 240 ,二进制解释: 1111 0000 \右边的数指定移动的位数,高位丢弃,低位补0。 右移动运算符:把\左边的运算数的各二进

>> 位全部右a >> 2 输出结果 15 ,二进制解释: 0000 1111 移若干位,\右边的数指定移动的位数 以下实例演示了Python所有位运算符的操作:

#!/usr/bin/python# -*- coding: UTF-8 -*-

a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0

c = a & b; # 12 = 0000 1100print \的值为:\

c = a | b; # 61 = 0011 1101 print \的值为:\

c = a ^ b; # 49 = 0011 0001print \的值为:\

c = ~a; # -61 = 1100 0011print \的值为:\

c = a << 2; # 240 = 1111 0000print \的值为:\

c = a >> 2; # 15 = 0000 1111print \的值为:\以上实例输出结果:

1 - c 的值为: 122 - c 的值为: 613 - c 的值为: 494 - c 的值为: -615 - c 的值为: 2406 - c 的值为: 15

Python逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20: 逻运辑算表符 达

描述 实例

布尔\与\- 如果 x 为

False,x x

and y 返

and and (a and b) 返回 20。

回 y

False,否则它返回 y 的计算值。 布尔\或\- 如果 x 是非 0,x

它返回 x

or or (a or b) 返回 10。

的值,否y

则它返回 y 的计算值。 布尔\非\- 如果 x 为 True,返回 not False 。not not(a and b) 返回 False

x 如果 x

为 False,它返回 True。 以上实例输出结果:

#!/usr/bin/python# -*- coding: UTF-8 -*-

a = 10 b = 20

if ( a and b ):

print \变量 a 和 b 都为 true\ print \变量 a 和 b 有一个不为 true\if ( a or b ):

print \变量 a 和 b 都为 true,或其中一个变量为 true\ print \变量 a 和 b 都不为 true\# 修改变量 a 的值 a = 0if ( a and b ):

print \变量 a 和 b 都为 true\

print \变量 a 和 b 有一个不为 true\if ( a or b ):

print \变量 a 和 b 都为 true,或其中一个变量为 true\ print \变量 a 和 b 都不为 true\if not( a and b ):

print \变量 a 和 b 都为 false,或其中一个变量为 false\ print \变量 a 和 b 都为 true\以上实例输出结果:

1 - 变量 a 和 b 都为 true2 - 变量 a 和 b 都为 true,或其中一个变量为 true3 - 变量 a 和 b 有一个不为 true4 - 变量 a 和 b 都为 true,或其中一个变量为 true5 - 变量 a 和 b 都为 false,或其中一个变量为 false

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。 运算符

描述 实例

如果在指定的序列中找到值in x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

返回 True,否则返回 False。 如果在指定的序列中没有找not

到值返x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 in

回 True,否则返回 False。 以下实例演示了Python所有成员运算符的操作: #!/usr/bin/python# -*- coding: UTF-8 -*-

a = 10 b = 20

list = [1, 2, 3, 4, 5 ]; if ( a in list ):

print \变量 a 在给定的列表中 list 中\ print \变量 a 不在给定的列表中 list 中\

if ( b not in list ):

print \变量 b 不在给定的列表中 list 中\ print \变量 b 在给定的列表中 list 中\# 修改变量 a 的值

a = 2if ( a in list ):

print \变量 a 在给定的列表中 list 中\ print \变量 a 不在给定的列表中 list 中\以上实例输出结果:

1 - 变量 a 不在给定的列表中 list 中2 - 变量 b 不在给定的列表中 list 中3 - 变量 a 在给定的列表中 list 中

Python身份运算符

身份运算符用于比较两个对象的存储单元 运

描算

述 符

实例

is是判断两个标识符

is 是x is y, 如果 id(x) 等于 id(y) , is 返回结果 1

不是引用自一个对象

is not是判is 断

x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

not 两

个标识符

是不是引用自不同对象

以下实例演示了Python所有身份运算符的操作: #!/usr/bin/python# -*- coding: UTF-8 -*-

a = 20 b = 20

if ( a is b ):

print \和 b 有相同的标识\ print \和 b 没有相同的标识\if ( id(a) == id(b) ):

print \和 b 有相同的标识\ print \和 b 没有相同的标识\# 修改变量 b 的值 b = 30if ( a is b ):

print \和 b 有相同的标识\ print \和 b 没有相同的标识\if ( a is not b ):

print \和 b 没有相同的标识\ print \和 b 有相同的标识\以上实例输出结果:

1 - a 和 b 有相同的标识2 - a 和 b 有相同的标识3 - a 和 b 没有相同的标识4 - a 和 b 没有相同的标识

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符: 运算符 **

指数 (最高优先级)

描述

~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) * / %

乘,除,取模和取整除

// + - &

加法减法 位 'AND'

>><< 右移,左移运算符

^ | 位运算符

<=

比较运算符

<>>=

<>

等于运算符

== !=

= %= /= //=

赋值运算符

-= += *= **=

is is

身份运算符

not

in

not 成员运算符 in

not

or 逻辑运算符 and

以下实例演示了Python所有运算符优先级的操作:

#!/usr/bin/python# -*- coding: UTF-8 -*-

a = 20 b = 10 c = 15 d = 5 e = 0

e = (a + b) * c / d #( 30 * 15 ) / 5print \运算结果为:\

e = ((a + b) * c) / d # (30 * 15 ) / 5print \运算结果为:\

e = (a + b) * (c / d); # (30) * (15/5)print \运算结果为:\

e = a + (b * c) / d; # 20 + (150/5)print \运算结果为:\以上实例输出结果:

(a + b) * c / d 运算结果为: 90((a + b) * c) / d 运算结果为: 90(a + b) * (c / d) 运算结果为: 90

a + (b * c) / d 运算结果为: 50

Python 条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件:

执行语句……else: 执行语句……

其中\判断条件\成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。 else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,具体例子如下: #!/usr/bin/python# -*- coding: UTF-8 -*- # 例1:if 基本用法

flag = False

name = 'luren'if name == 'python': # 判断变量否为'python' flag = True # 条件成立时设置标志为真 print 'welcome boss' # 并输出欢迎信息else:

print name # 条件不成立时输出变量名称 输出结果为: >>> luren

# 输出结果

if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。

当判断条件为多个值时,可以使用以下形式: if 判断条件1:

执行语句1……elif 判断条件2:

执行语句2……elif 判断条件3: 执行语句3……else: 执行语句4…… 实例如下:

#!/usr/bin/python# -*- coding: UTF-8 -*-# 例2:elif用法

num = 5 if num == 3: # 判断num的值 print 'boss' elif num == 2: print 'user'elif num == 1:

print 'worker'elif num < 0: # 值小于零时输出 print 'error'else:

print 'roadman' # 条件均不成立时输出 输出结果为: >>> roadman

# 输出结果

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

#!/usr/bin/python# -*- coding: UTF-8 -*- # 例3:if语句多个条件

num = 9if num >= 0 and num <= 10: # 判断值是否在0~10之间 print 'hello'>>> hello # 输出结果

num = 10if num < 0 or num > 10: # 判断值是否在小于0或大于10 print 'hello'else: print 'undefine'>>> undefine # 输出结果

num = 8# 判断值是否在0~5或者10~15之间if (num >= 0 and num <= 5) or (num >= 10 and num <= 15): print 'hello'else:

print 'undefine'>>> undefine # 输出结果 当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

简单的语句组

你也可以在同一行的位置上使用if条件判断语句,如下实例: #!/usr/bin/python # -*- coding: UTF-8 -*- var = 100

if ( var == 100 ) : print \变量 var 的值为100\ print \以上代码执行输出结果如下: 变量 var 的值为100Good bye!

Python 循环语句

本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的。 编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:

Python提供了for循环和while循环(在Python中没有do..while循环):

循环类型

while 循环 for 循环 嵌套循环

描述

在给定的判断条件为 true 时执行循环体,否则退出循环体。 重复执行语句

你可以在while循环体中嵌套for循环

循环控制语句

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

控制语句

break 语句 continue 语句 pass 语句

描述

在语句块执行过程中终止循环,并且跳出整个循环

在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 pass是空语句,是为了保持程序结构的完整性。

Python While循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为: while 判断条件: 执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。 当判断条件假false时,循环结束。 执行流程图如下:

实例:

#!/usr/bin/python

count = 0while (count < 9):

print 'The count is:', count count = count + 1 print \运行实例 ?

以上代码执行输出结果:

The count is: 0The count is: 1The count is: 2The count is: 3The count is: 4The count is: 5The count is: 6The count is: 7The count is: 8Good bye!

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外\判断条件\还可以是个常值,表示循环必定成立,具体用法如下: # continue 和 break 用法

i = 1while i < 10: i += 1

if i%2 > 0: # 非双数时跳过输出 continue

print i # 输出双数2、4、6、8、10

i = 1while 1: # 循环条件为1必定成立 print i # 输出1~10 i += 1

if i > 10: # 当i大于10时跳出循环 break

无限循环

如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例: #!/usr/bin/python# -*- coding: UTF-8 -*-

var = 1while var == 1 : # 该条件永远为true,循环将无限执行下去 num = raw_input(\ print \print \以上实例输出结果:

Enter a number :20You entered: 20Enter a number :29You entered: 29Enter a number :3You entered: 3Enter a number between :Traceback (most recent call last): File \

num = raw_input(\注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。 #!/usr/bin/python

count = 0while count < 5:

print count, \ count = count + 1else:

print count, \以上实例输出结果为:

0 is less than 51 is less than 52 is less than 53 is less than 54 is less than 55 is not less than 5

简单语句组

类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:

#!/usr/bin/python

flag = 1

while (flag): print 'Given flag is really true!' print \

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

Python for 循环语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法:

for循环的语法格式如下: for iterating_var in sequence: statements(s) 流程图:

实例:

#!/usr/bin/python# -*- coding: UTF-8 -*- for letter in 'Python': # 第一个实例 print '当前字母 :', letter

fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二个实例 print '当前字母 :', fruit print \尝试一下 ? 以上实例输出结果:

当前字母 : P当前字母 : y当前字母 : t当前字母 : h当前字母 : o当前字母 : n当前字母 : banana当前字母 : apple当前字母 : mangoGood bye!

通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-

fruits = ['banana', 'apple', 'mango']for index in range(len(fruits)): print '当前水果 :', fruits[index] print \以上实例输出结果:

当前水果 : banana当前水果 : apple当前水果 : mangoGood bye!

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。

循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。 如下实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-

for num in range(10,20): # 迭代 10 到 20 之间的数字 for i in range(2,num): # 根据因子迭代 if num%i == 0: # 确定第一个因子 j=num/i # 计算第二个因子 print '%d 等于 %d * %d' % (num,i,j) break # 跳出当前循环

else: # 循环的 else 部分 print num, '是一个质数' 以上实例输出结果:

10 等于 2 * 511 是一个质数12 等于 2 * 613 是一个质数14 等于 2 * 715 等于 3 * 516 等于 2 * 817 是一个质数18 等于 2 * 919 是一个质数

Python 循环嵌套

Python 语言允许在一个循环体里面嵌入另一个循环。 Python for 循环嵌套语法:

for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s)

Python while 循环嵌套语法: while expression: while expression: statement(s) statement(s)

你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。 实例:

以下实例使用了嵌套循环输出2~100之间的素数: #!/usr/bin/python# -*- coding: UTF-8 -*-

i = 2while(i < 100): j = 2

while(j <= (i/j)): if not(i%j): break j = j + 1

if (j > i/j) : print i, \是素数\ i = i + 1

print \以上实例输出结果:

2 是素数3 是素数5 是素数7 是素数11 是素数13 是素数17 是素数19 是素数23 是素数29 是素数31 是素数37 是素数41 是素数43 是素数47 是素数53 是素数59 是素数61 是素数67 是素数71 是素数73 是素数79 是素数83 是素数89 是素数97 是素数Good bye!

Python break 语句

Python break语句,就像在C语言中,打破了最小封闭for或while循环。

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

break语句用在while和for循环中。

如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。 Python语言 break 语句语法: break 流程图:

实例:

#!/usr/bin/python

for letter in 'Python': # First Example if letter == 'h': break

print 'Current Letter :', letter

var = 10 # Second Examplewhile var > 0: print 'Current variable value :', var var = var -1 if var == 5: break

print \以上实例执行结果:

Current Letter : PCurrent Letter : yCurrent Letter : tCurrent variable value : 10Current variable value : 9Current variable value : 8Current variable value : 7Current variable value : 6Good bye!

Python continue 语句

Python continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。 continue语句用在while和for循环中。 Python 语言 continue 语句语法格式如下: continue 流程图:

实例:

#!/usr/bin/python# -*- coding: UTF-8 -*- for letter in 'Python': # 第一个实例 if letter == 'h': continue

print '当前字母 :', letter

var = 10 # 第二个实例while var > 0: var = var -1 if var == 5: continue

print '当前变量值 :', varprint \以上实例执行结果:

当前字母 : P当前字母 : y当前字母 : t当前字母 : o当前字母 : n当前变量值 : 9当前变量值 : 8当前变量值 : 7当前变量值 : 6当前变量值 : 4当前变量值 : 3当前变量值 : 2当前变量值 : 1当前变量值 : 0Good bye!

Python pass 语句

Python pass是空语句,是为了保持程序结构的完整性。 pass 不做任何事情,一般用做占位语句。 Python 语言 pass 语句语法格式如下: pass 实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 输出 Python 的每个字母for letter in 'Python': if letter == 'h': pass

print '这是 pass 块' print '当前字母 :', letter print \以上实例执行结果:

当前字母 : P当前字母 : y当前字母 : t这是 pass 块当前字母 : h当前字母 : o当前字母 : nGood bye!

Python Number(数字)

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。 以下实例在变量赋值时 Number 对象将被创建: var1 = 1 var2 = 10

您也可以使用del语句删除一些 Number 对象引用。 del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

您可以通过使用del语句删除单个或多个对象,例如: del vardel var_a, var_b Python 支持四种不同的数值类型:

? ? ? ?

整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。

长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。

浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

复数( (complex numbers)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

int 10 100 -786 080

long

51924361L -0x19323L 0122L

float 0.0 15.20 -21.9 -90. 70.2-E12

3.14j 45.j 9.322e-36j .876j -.6545+0J 4.53e-7j

complex

0xDEFABCECBDAECBFBAEl 32.3+e18

-0490 535633629843L -0x260 -052318172735L 0x69

? ?

-32.54e100 3e+26J

-4721885298529L

长整型也可以使用小写\,但是还是建议您使用大写\,避免与数字\混淆。Python使用\来显示长整型。 Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

Python Number 类型转换

int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数

str(x ) 将对象 x 转换为字符串

repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值

hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串

Python数学函数

函数 abs(x)

返回值 ( 描述 )

返回数字的绝对值,如abs(-10) 返回 10

ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x,

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

y)

exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0 floor(x) 返回数字的下舍整数,如 math.floor(4.9)返回 4 log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 log10(x) 返回以 10为基数的x的对数,如math.log10(100)返回 2.0 max(x1, 返回给定参数的最大值,参数可以为序列。

x2,...)

min(x1,

返回给定参数的最小值,参数可以为序列。

x2,...)

modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 pow(x,

x**y 运算后的值。

y)

round(x

返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

[,n])

sqrt(x) 返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j

Python随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

Python包含以下常用随机数函数:

函数 choice(seq) randrange ([start,] stop

[,step]) random() seed([x])

描述

从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

随机生成下一个实数,它在[0,1)范围内。

改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

shuffle(lst) 将序列的所有元素随机排序

uniform(x,

随机生成下一个实数,它在[x,y]范围内。

y)

Python三角函数

Python包括以下三角函数: 函数 acos(x) asin(x) atan(x)

返回x的反余弦弧度值。 返回x的反正弦弧度值。 返回x的反正切弧度值。

描述

atan2(y,

返回给定的 X 及 Y 坐标值的反正切值。

x) cos(x)

返回x的弧度的余弦值。

hypot(x,

返回欧几里德范数 sqrt(x*x + y*y)。

y) sin(x) tan(x)

返回的x弧度的正弦值。 返回x弧度的正切值。

degrees(x

将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

)

radians(x

将角度转换为弧度

)

Python数学常量

常量

pi 数学常量 pi(圆周率,一般以π来表示) e 数学常量 e,e即自然常数(自然常数)。

描述

Python 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或\来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = \

Python访问字符串中的值

Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。 Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/python

var1 = 'Hello World!' var2 = \

print \以上实例执行结果: var1[0]: H

var2[1:5]: ytho

Python字符串更新

你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例: #!/usr/bin/python# -*- coding: UTF-8 -*-

var1 = 'Hello World!'

print \更新字符串 :- \以上实例执行结果

更新字符串 :- Hello Runoob!

Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\\)转义字符。如下表: 转义字符

\\(在行

续行符

尾时) \\\\ \\' \\\ \\a \\b \\e \\000 \\n \\v \\t \\r \\f \\oyy \\xyy

反斜杠符号 单引号 双引号 响铃

退格(Backspace) 转义 空 换行 纵向制表符 横向制表符 回车 换页

八进制数,yy代表的字符,例如:\\o12代表换行 十六进制数,yy代表的字符,例如:\\x0a代表换行

描述

\\other 其它的字符以普通格式输出

Python字符串运算符

下表实例变量a值为字符串\,b变量值为\: 操作符 描述 +

字符

a + b 输出结果: HelloPython 串连

实例

*

[]

[ : ]

in

not in r/R

重复输出

字符a*2 输出结果:HelloHello 串

通过索引获取

字符a[1] 输出结果 e 串中字符

截取字符

串中a[1:4] 输出结果 ell 的一部分

成员运算符 - 如果字符串中

包含H in a 输出结果 1 给定的字符返回 True

成员运算符 - 如果字符串中

不包M not in a 输出结果 1 含给定的字符返回 True

原始字符串 - 原始字符

串:print r'\\n' 输出 \\n 和 print R'\\n' 输出 \\n 所有的字符串都是

直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母\(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

%

格式

字符请看下一章节 串

实例如下:

#!/usr/bin/python# -*- coding: UTF-8 -*-

a = \

b = \

print \+ b 输出结果:\a + b print \* 2 输出结果:\a * 2 print \输出结果:\a[1] print \输出结果:\if( \

print \在变量 a 中\ print \不在变量 a 中\if( \

print \不在变量 a 中\ print \在变量 a 中\print r'\\n'print R'\\n' 以上程序执行结果为:

a + b 输出结果: HelloPython a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a 中 M 不在变量 a 中 \\n \\n

Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。 如下实例:

#!/usr/bin/python

print \以上实例输出结果:

My name is Zara and weight is 21 kg! python字符串格式化符号:

符 号

%c %s %d %u %o %x %X

格式化字符及其ASCII码 格式化字符串 格式化整数 格式化无符号整型 格式化无符号八进制数 格式化无符号十六进制数 格式化无符号十六进制数(大写)

描述

%f %e %E %g %G %p

格式化浮点数字,可指定小数点后的精度 用科学计数法格式化浮点数

作用同%e,用科学计数法格式化浮点数 %f和%e的简写 %f 和 %E 的简写

用十六进制数格式化变量的地址

格式化操作符辅助指令: 符号 * - + # 0 %

定义宽度或者小数点精度 用做左对齐

在正数前面显示加号( + )

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') 显示的数字前面填充'0'而不是默认的空格 '%%'输出一个单一的'%'

功能

在正数前面显示空格

(var) 映射变量(字典参数)

m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python三引号(triple quotes)

python中三引号可以将复杂的字符串进行复制:

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。 三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。 >>> hi = '''hi

there'''>>> hi # repr()'hi\\nthere'>>> print hi # str() hi there

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。 errHTML = '''

</p><p>Friends CGI Demo

ERROR

%s

'''

cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')

Unicode 字符串

Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单: >>> u'Hello World !' u'Hello World !'

引号前小写的\表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示: >>> u'Hello\ World !' u'Hello World !'

被替换的 \ 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。

python的字符串内建函数

字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。

这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。

方法

string.capitalize() string.center(width) string.count(str, beg=0, end=len(string))

string.decode(encoding='UTF-8', errors='strict')

string.encode(encoding='UTF-8', errors='strict')

string.endswith(obj, beg=0, end=len(string))

string.expandtabs(tabsize=8) string.find(str, beg=0, end=len(string)) string.index(str, beg=0, end=len(string))

把字符串的第一个字符大写

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 跟find()方法一样,只不过如果str不在 string中会报一个异常.

描述

如果 string 至少有一个字符并且所有字符都是字母或数字则返

string.isalnum()

回 True,否则返回 False

如果 string 至少有一个字符并且所有字符都是字母则返回 True,

string.isalpha()

否则返回 False

string.isdecimal() string.isdigit() string.islower() string.isnumeric() string.isspace() string.istitle() string.isupper() string.join(seq) string.ljust(width) string.lower() string.lstrip()

string.maketrans(intab, outtab]) max(str) min(str)

string.partition(str) string.replace(str1, str2, num=string.count(str1)) string.rindex( str, beg=0,end=len(string)) string.rjust(width) string.rpartition(str) string.rstrip() string.split(str=\num=string.count(str))

string.splitlines(num=string.count('\\n')) string.startswith(obj, beg=0,end=len(string)) string.strip([obj]) string.swapcase() string.title()

如果 string 只包含十进制数字则返回 True 否则返回 False. 如果 string 只包含数字则返回 True 否则返回 False.

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False 如果 string 中只包含数字字符,则返回 True,否则返回 False 如果 string 中只包含空格,则返回 True,否则返回 False. 如果 string 是标题化的(见 title())则返回 True,否则返回 False 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 转换 string 中所有大写字符为小写. 截掉 string 左边的空格

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 返回字符串 str 中最大的字母。 返回字符串 str 中最小的字母。

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组

(string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.

把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

string.rfind(str, beg=0,end=len(string) ) 类似于 find()函数,不过是从右边开始查找.

类似于 index(),不过是从右边开始.

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 类似于 partition()函数,不过是从右边开始查找. 删除 string 字符串末尾的空格.

以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串

按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. 在 string 上执行 lstrip()和 rstrip() 翻转 string 中的大小写

返回\标题化\的 string,就是说所有单词都是以大写开始,其余字母均为

本文来源:https://www.bwwdw.com/article/fe0w.html

Top