
python基础教程
-
2023年3月18日发(作者:品质文化)Python基础教程
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python由GuidovanRossum于1989年底发明,第一个公开发行版发行于
1991年。
像Perl语言一样,Python源代码同样遵循GPL(GNUGeneralPublic
License)协议。
现在开始学习Python!
PythonIDE(集成开发环境)介绍
Python3.X版本的教程
Python在线工具
谁适合阅读本教程?
本教程适合想从零开始学习Python编程语言的开发人员。当然本教程也会对一些模块进行深入,
让你更好的了解Python的应用。
学习本教程前你需要了解
在继续本教程之前,你应该了解一些基本的计算机编程术语。如果你学习过PHP,ASP等编程
语言,将有助于你更快的了解Python编程。
执行Python程序
对于大多数程序语言,第一个入门编程代码便是"HelloWorld!",以下代码为使用Python输出
"HelloWorld!":
#!/usr/bin/python
print"Hello,World!";
python3.0+版本已经把print作为一个内置函数,正确输出"HelloWorld!"代码如下:
#!/usr/bin/python
print("Hello,World!");
Python简介
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语
言。
Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他
语言的一些标点符号,它具有比其他语言更有特色语法结构。
•Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP
和Perl语言。
•Python是交互式语言:这意味着,您可以在一个Python提示符,直接互动执行写你
的程序。
•Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编
程技术。
•Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛
的应用程序开发,从简单的文字处理到WWW浏览器再到游戏。
Python发展历史
Python是由GuidovanRossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研
究所设计出来的。
Python本身也是由诸多其他语言发展而来的,这包括ABC、Modula-3、C、C++、Algol-68、
SmallTalk、Unixshell和其他的脚本语言等等。
像Perl语言一样,Python源代码同样遵循GPL(GNUGeneralPublicLicense)协议。
现在Python是由一个核心开发团队在维护,,GuidovanRossum仍然占据着至关重要的作用,
指导其进展。
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和MacOSX。
你可以通过终端窗口输入"python"命令来查看本地是否已经安装Python以
及Python的安装版本。
•Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IRIX,等等。)
•Win9x/NT/2000
•Macintosh(Intel,PPC,68K)
•OS/2
•DOS(多个DOS版本)
•PalmOS
•Nokia移动手机
•WindowsCE
•Acorn/RISCOS
•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
•makeinstall
执行以上操作后,Python会安装在/usr/local/bin目录中,Python库安装在
/usr/local/lib/pythonXX,XX为你使用的Python的版本号。
Window平台安装Python:
以下为在Window平台上安装Python的简单步骤:
•打开WEB浏览器访问/download/
•在下载列表中选择Window平台安装包,包格式为:文件,XYZ为
你要安装的版本号。
•要使用安装程序,Windows系统必须支持MicrosoftInstaller2.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不区分大小写)。
在MacOS中,安装程序过程中改变了python的安装路径。如果你需要在其他目录引用Python,
你必须在path中添加Python目录。
在Unix/Linux设置环境变量
•在cshshell:输入
setenvPATH"$PATH:/usr/local/bin/python"
,按下"Enter"。
•在bashshell(Linux):输入
exportPATH="$PATH:/usr/local/bin/python"
,按下"Enter"。
•在sh或者kshshell:输入
PATH="$PATH:/usr/local/bin/python"
,按下"Enter"。
注意:/usr/local/bin/python是Python的安装目录。
在Windows设置环境变量
在环境变量中添加Python目录:
•在命令提示框中(cmd):输入
path%path%;C:Python
,按下"Enter"。
注意:C:Python是Python的安装目录。
Python环境变量
下面几个重要的环境变量,它应用于Python:
运行Python
变量名描述
PYTHONPATHPYTHONPATH是Python搜索路径,默认我们import的模块都会从
PYTHONPATH里面寻找。
PYTHONSTARTUPPython启动后,先寻找PYTHONSTARTUP环境变量,
然后执行此文件中变量指定的执行代码。
PYTHONCASEOK加入PYTHONCASEOK的环境变量,就会使python导入模块的时候不区分大小写.
PYTHONHOME另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,
使得两个模块库更容易切换。
有三种方式可以运行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版本之后基于内建的异常(仅仅用于字符串)已过时。
-ccmd执行Python脚本,并将运行结果作为cmd字符串。
file在给定的python文件执行python脚本。
2、命令行脚本
在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:
$#Unix/Linux
或者
python%#Unix/Linux
或者
C:>#Windows/DOS
注意:在执行脚本时,请检查脚本是否有可执行权限。
3、集成开发环境(IDE:IntegratedDevelopmentEnvironment)
您可以使用图形用户界面(GUI)环境来编写及运行Python代码。以下推荐各个平台上使用的
IDE:
•Unix:IDLE是UNIX上最早的PythonIDE。
•Windows:PythonWin是一个Python集成开发环境,在许多方面都比IDE优秀
•Macintosh:Python的Mac可以使用IDLEIDE,你可以在网站上下载对应MAC的
IDLE。
继续下一章之前,请确保您的环境已搭建成功。如果你不能够建立正确的环境,那么你就可以从
您的系统管理员的帮助。
在以后的章节中给出的例子已在Centos(Linux)下Python2.4.3版本测试通过。
Python中文编码
前面章节中我们已经学会了如何用Python输出"Hello,World!",英文没有问题,但是如果你
输出中文字符"你好,世界"就有可能会碰到中文编码问题。
Python文件中如果未指定编码,在执行过程会出现报错:
#!/usr/bin/python
print"你好,世界";
以上程序执行输出结果为:
File"",line2
SyntaxError:Non-ASCIIcharacter'xe4'ne2,but
noencodingdeclared;see/peps/r
details
以上出错信息显示了我们为指定编码,解决方法为只要在文件开头加入#-*-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
Python2.4.3(#1,Nov112010,13:34:43)
[GCC4.1.220080704(RedHat4.1.2-48)]onlinux2
Type"help","copyright","credits"or"license"formoreinformation.
>>>
Window上在安装Python时已经已经安装了默认的交互式编程客户端,提示窗口如下:
在python提示符中输入以下文本信息,然后按Enter键查看运行效果:
>>>print"Hello,Python!";
在Python2.4.3版本中,以上事例输出结果如下:
Hello,Python!
如果您运行的是新版本的Python,那么你就需要在print语句中使用括号如:
>>>print("Hello,Python!");
脚本式编程
通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有
效。
让我们写一个简单的Python脚本程序。所有Python文件将以.py为扩展名。将以下的源代码拷
贝至文件中。
print"Hello,Python!";
这里,假设你已经设置了Python解释器PATH变量。使用以下命令运行程序:
$
输出结果:
Hello,Python!
让我们尝试另一种方式来执行Python脚本。修改文件,如下所示:
#!/usr/bin/python
print"Hello,Python!";
这里,假定您的Python解释器在/usr/bin目录中,使用以下命令执行脚本:
$chmod+#脚本文件添加可执行权限
$./
输出结果:
Hello,Python!
Python标识符
在python里,标识符有字母、数字、下划线组成。
在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,
需通过类提供的接口进行访问,不能用"fromxxximport*"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python
里特殊方法专用的标识,如__init__()代表类的构造函数。
Python保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符
名称。
所有Python的关键字只包含小写字母。
行和缩进
学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数
以及其他逻辑判断。python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执
行。如下所示:
andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield
ifTrue:
print"True"
else:
print"False"
以下代码将会执行错误:
ifTrue:
print"Answer"
print"True"
else:
print"Answer"
print"False"
因此,在Python的代码块中必须使用相同数目的行首缩进空格数。
以下实例包含了相同数目的行首缩进代码语句块的例子:
#!/usr/bin/python
importsys
try:
#openfilestream
file=open(file_name,"w")
exceptIOError:
print"Therewasanerrorwritingto",file_name
()
print"Enter'",file_finish,
print"'Whenfinished"
whilefile_text!=file_finish:
file_text=raw_input("Entertext:")
iffile_text==file_finish:
#closethefile
break
(file_text)
("n")
()
file_name=raw_input("Enterfilename:")
iflen(file_name)==0:
print"Nexttimepleaseentersomething"
()
try:
file=open(file_name,"r")
exceptIOError:
print"Therewasanerrorreadingfile"
()
file_text=()
()
printfile_text
多行语句
Python语句中一般以新行作为为语句的结束符。
但是我们可以使用斜杠()将一行的语句分为多行显示,如下所示:
total=item_one+
item_two+
item_three
语句中包含[],{}或()括号就不需要使用多行连接符。如下实例:
days=['Monday','Tuesday','Wednesday',
'Thursday','Friday']
Python引号
Python接收单引号('),双引号("),三引号('''""")来表示字符串,引号的开始与结束必须的相
同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,
被当做注释。
word='word'
sentence="Thisisasentence."
paragraph="""
madeupofmultiplelinesandsentences."""
Python注释
python中单行注释采用#开头。
python没有块注释,所以现在推荐的多行注释也是采用的#比如:
#!/usr/bin/python
#Firstcomment
print"Hello,Python!";#secondcomment
输出结果:
Hello,Python!
注释可以在语句或表达式行末:
name="Madisetti"#Thisisagaincomment
多条评论:
#Thisisacomment.
#Thisisacomment,too.
#Thisisacomment,too.
#Isaidthatalready.
Python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空
行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运
行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重
构。
记住:空行也是程序代码的一部分。
等待用户输入
下面的程序在按回车键后就会等待用户输入:
#!/usr/bin/python
raw_input("nnPresstheenterkeytoexit.")
以上代码中,"nn"在结果输出前会输出两个新的空行。一旦用户按下键时,程序将退出。
同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
importsys;x='foo';(x+'n')
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一
行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
如下实例:
ifexpression:
suite
elifexpression:
suite
else:
suite
命令行参数
很多程序可以执行一些操作来查看一些基本信,Python可以使用-h参数查看各参数帮助信息:
$python-h
usage:python[option]...[-ccmd|-mmod|file|-][arg]...
Optionsandarguments(andcorrespondingenvironmentvariables):
-ccmd:programpassedinasstring(terminatesoptionlist)
-d:debugoutputfromparser(alsoPYTHONDEBUG=x)
-E:ignoreenvironmentvariables(suchasPYTHONPATH)
-h:printthishelpmessageandexit
[etc.]
Python变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储
在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
#coding=utf-8
#!/usr/bin/python
counter=100#赋值整型变量
miles=1000.0#浮点型
name="John"#字符串
printcounter
printmiles
printname
以上实例中,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语句的语法是:
delvar1[,var2[,var3[....,varN]]]]
您可以通过使用del语句删除单个或多个对象。例如:
delvar
delvar_a,var_b
Python支持四种不同的数值类型:
•int(有符号整型)
•long(长整型[也可以代表八进制和十六进制])
•float(浮点型)
•complex(复数)
实例
一些数值类型的实例:
intlongfloatcomplex
1051924361L0.03.14j
100-0x19323L15.2045.j
-7860122L-21.99.322e-36j
0800xDEFABCECBDAECBFBAEl32.3+e18.876j
-9843L-90.-.6545+0J
-0x260-L-32.54e1003e+26J
0x69-4721885298529L70.2-E124.53e-7j
•长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python
使用"L"来显示长整型。
•Python还支持复数,复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)
表示,复数的实部a和虚部b都是浮点型
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='HelloWorld!'
printstr#输出完整字符串
printstr[0]#输出字符串中的第一个字符
printstr[2:5]#输出字符串中第三个至第五个之间的字符串
printstr[2:]#输出从第三个字符开始的字符串
printstr*2#输出字符串两次
printstr+"TEST"#输出连接的字符串
以上实例输出结果:
HelloWorld!
H
llo
lloWorld!
HelloWorld!HelloWorld!
HelloWorld!TEST
Python列表
List(列表)是Python中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所
谓嵌套)。
列表用[]标识。是python最通用的复合数据类型。看这段代码就明白。
列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认
0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:
#coding=utf-8
#!/usr/bin/python
list=['abcd',786,2.23,'john',70.2]
tinylist=[123,'john']
printlist#输出完整列表
printlist[0]#输出列表的第一个元素
printlist[1:3]#输出第二个至第三个的元素
printlist[2:]#输出从第三个开始至列表末尾的所有元素
printtinylist*2#输出列表两次
printlist+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')
printtuple#输出完整元组
printtuple[0]#输出元组的第一个元素
printtuple[1:3]#输出第二个至第三个的元素
printtuple[2:]#输出从第三个开始至列表末尾的所有元素
printtinytuple*2#输出元组两次
printtuple+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']="Thisisone"
dict[2]="Thisistwo"
tinydict={'name':'john','code':6734,'dept':'sales'}
printdict['one']#输出键为'one'的值
printdict[2]#输出键为2的值
printtinydict#输出完整的字典
()#输出所有键
()#输出所有值
输出结果为:
ThisisoneThisistwo{'dept':'sales','code':6734,'name':
'john'}['dept','code','name']['sales',6734,'john']
Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数
名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数描述
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转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d必须是一个序列(key,value)元组。
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
unichr(x)将一个整数转换为Unicode字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
什么是运算符?
本章节主要说明Python的运算符。举个简单的例子4+5=9。例子中,4和5被称为操作数,
"+"号为运算符。
Python语言支持以下类型的运算符:
•算术运算符
•比较(关系)运算符
•赋值运算符
•逻辑运算符
•位运算符
•成员运算符
•身份运算符
•运算符优先级
接下来让我们一个个来学习Python的运算符。
Python算术运算符
以下假设变量a为10,变量b为20:
运算符描述实例
+加-两个对象相加a+b输出结果30
-减-得到负数或是一个数减去另一个数a-b输出结果-10
*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200
/除-x除以yb/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"Line1-Valueofcis",c
c=a-b
print"Line2-Valueofcis",c
c=a*b
print"Line3-Valueofcis",c
c=a/b
print"Line4-Valueofcis",c
c=a%b
print"Line5-Valueofcis",c
a=2
b=3
c=a**b
print"Line6-Valueofcis",c
a=10
b=5
c=a//b
print"Line7-Valueofcis",c
以上实例输出结果:
Line1-Valueofcis31
Line2-Valueofcis11
Line3-Valueofcis210
Line4-Valueofcis2
Line5-Valueofcis1
Line6-Valueofcis8
Line7-Valueofcis2
Python比较运算符
以下假设变量a为10,变量b为20:
以下实例演示了Python所有比较运算符的操作:
#!/usr/bin/python
运算符描述实例
==等于-比较对象是否相等(a==b)返回False。
!=不等于-比较两个对象是否不相等(a!=b)返回true.
不等于-比较两个对象是否不相等(ab)返回true。这个运算符类似!=。
>大于-返回x是否大于y(a>b)返回False。
<小于-返回x是否小于y。所有比较运算符返回1表示真,
返回0表示假。
这分别与特殊的变量True和False等价。注意,
这些变量名的大写。
(a
>=大于等于-返回x是否大于等于y。(a>=b)返回False。
<=小于等于-返回x是否小于等于y。(a<=b)返回true。
a=21
b=10
c=0
if(a==b):
print"Line1-aisequaltob"
else:
print"Line1-aisnotequaltob"
if(a!=b):
print"Line2-aisnotequaltob"
else:
print"Line2-aisequaltob"
if(ab):
print"Line3-aisnotequaltob"
else:
print"Line3-aisequaltob"
if(a
print"Line4-aislessthanb"
else:
print"Line4-aisnotlessthanb"
if(a>b):
print"Line5-aisgreaterthanb"
else:
print"Line5-aisnotgreaterthanb"
a=5;
b=20;
if(a<=b):
print"Line6-aiseitherlessthanorequaltob"
else:
print"Line6-aisneitherlessthannorequaltob"
if(b>=a):
print"Line7-biseithergreaterthanorequaltob"
else:
print"Line7-bisneithergreaterthannorequaltob"
以上实例输出结果:
Line1-aisnotequaltob
Line2-aisnotequaltob
Line3-aisnotequaltob
Line4-aisnotlessthanb
Line5-aisgreaterthanb
Line6-aiseitherlessthanorequaltob
Line7-biseithergreaterthanorequaltob
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"Line1-Valueofcis",c
c+=a
print"Line2-Valueofcis",c
c*=a
print"Line3-Valueofcis",c
c/=a
print"Line4-Valueofcis",c
c=2
c%=a
print"Line5-Valueofcis",c
c**=a
print"Line6-Valueofcis",c
c//=a
print"Line7-Valueofcis",c
以上实例输出结果:
Line1-Valueofcis31
Line2-Valueofcis52
Line3-Valueofcis1092
Line4-Valueofcis52
Line5-Valueofcis2
Line6-Valueofcis2097152
Line7-Valueofcis99864
Python位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
运算符描述实例
&按位与运算符(a&b)输出结果12,二进制解释:00001100
|按位或运算符(a|b)输出结果61,二进制解释:00111101
^按位异或运算符(a^b)输出结果49,二进制解释:00110001
~按位取反运算符(~a)输出结果-61,二进制解释:11000011,
在一个有符号二进制数的补码形式。
<<左移动运算符a<<2输出结果240,二进制解释:11110000
>>右移动运算符a>>2输出结果15,二进制解释:00001111
以下实例演示了Python所有位运算符的操作:
#!/usr/bin/python
a=60#60=00111100
b=13#13=00001101
c=0
c=a&b;#12=00001100
print"Line1-Valueofcis",c
c=a|b;#61=00111101
print"Line2-Valueofcis",c
c=a^b;#49=00110001
print"Line3-Valueofcis",c
c=~a;#-61=11000011
print"Line4-Valueofcis",c
c=a<<2;#240=11110000
print"Line5-Valueofcis",c
c=a>>2;#15=00001111
print"Line6-Valueofcis",c
以上实例输出结果:
Line1-Valueofcis12
Line2-Valueofcis61
Line3-Valueofcis49
Line4-Valueofcis-61
Line5-Valueofcis240
Line6-Valueofcis15
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量a为10,变量b为20:
运算符描述实例
and布尔"与"-如果x为False,xandy返回False,否则它返回y的计算值。(aandb)返回true。
or布尔"或"-如果x是True,它返回True,否则它返回y的计算值。(aorb)返回true。
not布尔"非"-如果x为True,返回False。如果x为False,它返回True。not(aandb)返回false。
以下实例演示了Python所有逻辑运算符的操作:
#!/usr/bin/python
a=10
b=20
c=0
if(aandb):
print"Line1-aandbaretrue"
else:
print"Line1-Eitheraisnottrueorbisnottrue"
if(aorb):
print"Line2-Eitheraistrueorbistrueorbotharetrue"
else:
print"Line2-Neitheraistruenorbistrue"
a=0
if(aandb):
print"Line3-aandbaretrue"
else:
print"Line3-Eitheraisnottrueorbisnottrue"
if(aorb):
print"Line4-Eitheraistrueorbistrueorbotharetrue"
else:
print"Line4-Neitheraistruenorbistrue"
ifnot(aandb):
print"Line5-Eitheraisnottrueorbisnottrueorbothareno
ttrue"
else:
print"Line5-aandbaretrue"
以上实例输出结果:
Line1-aandbaretrue
Line2-Eitheraistrueorbistrueorbotharetrue
Line3-Eitheraisnottrueorbisnottrue
Line4-Eitheraistrueorbistrueorbotharetrue
Line5-Eitheraisnottrueorbisnottrueorbotharenottrue
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包
括字符串,列表或元组。
运算符描述实例
in如果在指定的序列中找到值返回True,
否则返回False。
x在y序列中,如果x在y序列中返回True。
notin如果在指定的序列中没有找到值返回True,
否则返回False。
x不在y序列中,如果x不在y序列中返回True。
以下实例演示了Python所有成员运算符的操作:
#!/usr/bin/python
a=10
b=20
list=[1,2,3,4,5];
if(ainlist):
print"Line1-aisavailableinthegivenlist"
else:
print"Line1-aisnotavailableinthegivenlist"
if(bnotinlist):
print"Line2-bisnotavailableinthegivenlist"
else:
print"Line2-bisavailableinthegivenlist"
a=2
if(ainlist):
print"Line3-aisavailableinthegivenlist"
else:
print"Line3-aisnotavailableinthegivenlist"
以上实例输出结果:
Line1-aisnotavailableinthegivenlist
Line2-bisnotavailableinthegivenlist
Line3-aisavailableinthegivenlist
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符描述实例
isis是判断两个标识符是不是引用自一个对象xisy,如果id(x)等于id(y),is返回结果1
isnotisnot是判断两个标识符是不是引用自不同对象xisnoty,如果id(x)不等于id(y).isnot返回结果1
以下实例演示了Python所有身份运算符的操作:
#!/usr/bin/python
a=20
b=20
if(aisb):
print"Line1-aandbhavesameidentity"
else:
print"Line1-aandbdonothavesameidentity"
if(id(a)==id(b)):
print"Line2-aandbhavesameidentity"
else:
print"Line2-aandbdonothavesameidentity"
b=30
if(aisb):
print"Line3-aandbhavesameidentity"
else:
print"Line3-aandbdonothavesameidentity"
if(aisnotb):
print"Line4-aandbdonothavesameidentity"
else:
print"Line4-aandbhavesameidentity"
以上实例输出结果:
Line1-aandbhavesameidentity
Line2-aandbhavesameidentity
Line3-aandbdonothavesameidentity
Line4-aandbdonothavesameidentity
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符描述
**指数(最高优先级)
~+-按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
*/%//乘,除,取模和取整除
+-加法减法
>><<右移,左移运算符
&位'AND'
^|位运算符
<=>=比较运算符
==!=等于运算符
=%=/=//=-=
+=*=**=
赋值运算符
isisnot身份运算符
innotin成员运算符
notorand逻辑运算符
以下实例演示了Python所有运算符优先级的操作:
#!/usr/bin/python
a=20
b=10
c=15
d=5
e=0
e=(a+b)*c/d#(30*15)/5
print"Valueof(a+b)*c/dis",e
e=((a+b)*c)/d#(30*15)/5
print"Valueof((a+b)*c)/dis",e
e=(a+b)*(c/d);#(30)*(15/5)
print"Valueof(a+b)*(c/d)is",e
e=a+(b*c)/d;#20+(150/5)
print"Valueofa+(b*c)/dis",e
以上实例输出结果:
Valueof(a+b)*c/dis90
Valueof((a+b)*c)/dis90
Valueof(a+b)*(c/d)is90
Valueofa+(b*c)/dis50
Python条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(null)值为true,0或者null为false。
Python编程中if语句用于控制程序的执行,基本形式为:
if判断条件:
执行语句……
else:
执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示
同一范围。
else为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,具体例子如下:
#coding=utf8
#例1:if基本用法
flag=False
name='luren'
ifname=='python':#判断变量否为'python'
flag=True#条件成立时设置标志为真
print'welcomeboss'#并输出欢迎信息
else:
printname#条件不成立时输出变量名称
输出结果为:
>>>luren#输出结果
if语句的判断条件可以用>(大于)、=(大于等于)、<=(小于等于)
来表示其关系。
当判断条件为多个值是,可以使用以下形式:
if判断条件1:
执行语句1……
elif判断条件2:
执行语句2……
elif判断条件3:
执行语句3……
else:
执行语句4……
实例如下:
#coding=utf8
#例2:elif用法
num=5
ifnum==3:#判断num的值
print'boss'
elifnum==2:
print'user'
elifnum==1:
print'worker'
elifnum<0:#值小于零时输出
print'error'
else:
print'roadman'#条件均不成立时输出
输出结果为:
>>>roadman#输出结果
由于python并不支持switch语句,所以多个条件判断,只能用elif来实现,如果判断需要
多个条件需同时判断时,可以使用or(或),表示两个条件有一个成立时判断条件成功;使用
and(与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
#coding=utf8
#例3:if语句多个条件
num=9
ifnum>=0andnum<=10:#判断值是否在0~10之间
print'hello'
>>>hello#输出结果
num=10
ifnum10:#判断值是否在小于0或大于10
print'hello'
else:
print'undefine'
>>>undefine#输出结果
num=8
#判断值是否在0~5或者10~15之间
if(num>=0andnum=10andnum<=15):
print'hello'
else:
print'undefine'
>>>undefine#输出结果
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外and和or
的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或
要优先判断。
简单的语句组
你也可以在同一行的位置上使用if条件判断语句,如下实例:
#!/usr/bin/python
var=100
if(var==100):print"Valueofexpressionis100"
print"Goodbye!"
以上代码执行输出结果如下:
Valueofexpressionis100
Goodbye!
Python循环语句
本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形
式:
Python提供了for循环和while循环(在Python中没有do..while循环):
循环类型描述
while循环在给定的判断条件为true时执行循环体,否则退出循环体。
for循环重复执行语句
嵌套循环你可以在while循环体中嵌套for循环
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句描述
break语句在语句块执行过程中终止循环,并且跳出整个循环
continue语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass语句pass是空语句,是为了保持程序结构的完整性。
PythonWhile循环语句
Python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要
重复处理的相同任务。其基本形式为:
while判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的
值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
实例:
#!/usr/bin/python
count=0
while(count<9):
print'Thecountis:',count
count=count+1
print"Goodbye!"
以上代码执行输出结果:
Thecountis:0
Thecountis:1
Thecountis:2
Thecountis:3
Thecountis:4
Thecountis:5
Thecountis:6
Thecountis:7
Thecountis:8
Goodbye!
while语句时还有另外两个重要的命令continue,break来跳过循环,continue用于跳过该次
循环,break则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用
法如下:
#continue和break用法
i=1
whilei<10:
i+=1
ifi%2>0:#非双数时跳过输出
continue
printi#输出双数2、4、6、8、10
i=1
while1:#循环条件为1必定成立
printi#输出1~10
i+=1
ifi>10:#当i大于10时跳出循环
break
无限循环
如果条件判断语句永远为true,循环将会无限的执行下去,如下实例:
#coding=utf-8
#!/usr/bin/python
var=1
whilevar==1:#该条件永远为true,循环将无限执行下去
num=raw_input("Enteranumber:")
print"Youentered:",num
print"Goodbye!"
以上实例输出结果:
Enteranumber:20
Youentered:20
Enteranumber:29
Youentered:29
Enteranumber:3
Youentered:3
Enteranumberbetween:Traceback(mostrecentcalllast):
File"",line5,in
num=raw_input("Enteranumber:")
KeyboardInterrupt
注意:以上的无限循环你可以使用CTRL+C来中断循环。
循环使用else语句
在python中,for…else表示这样的意思,for中的语句和普通的没有区别,else中的语句
会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行,while…else也
是一样。
#!/usr/bin/python
count=0
whilecount<5:
printcount,"islessthan5"
count=count+1
else:
printcount,"isnotlessthan5"
以上实例输出结果为:
0islessthan5
1islessthan5
2islessthan5
3islessthan5
4islessthan5
5isnotlessthan5
简单语句组
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一
行中,如下所示:
#!/usr/bin/python
flag=1
while(flag):print'Givenflagisreallytrue!'
print"Goodbye!"
注意:以上的无限循环你可以使用CTRL+C来中断循环。
Pythonfor循环语句
Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
foriterating_varinsequence:
statements(s)
流程图:
实例:
#!/usr/bin/python
forletterin'Python':#FirstExample
print'CurrentLetter:',letter
fruits=['banana','apple','mango']
forfruitinfruits:#SecondExample
print'Currentfruit:',fruit
print"Goodbye!"
以上实例输出结果:
CurrentLetter:P
CurrentLetter:y
CurrentLetter:t
CurrentLetter:h
CurrentLetter:o
CurrentLetter:n
Currentfruit:banana
Currentfruit:apple
Currentfruit:mango
Goodbye!
通过序列索引迭代
另外一种执行循环的遍历方式是通过索引,如下实例:
#!/usr/bin/python
fruits=['banana','apple','mango']
forindexinrange(len(fruits)):
print'Currentfruit:',fruits[index]
print"Goodbye!"
以上实例输出结果:
Currentfruit:banana
Currentfruit:apple
Currentfruit:mango
Goodbye!
以上实例我们使用了内置函数len()和range(),函数len()返回列表的长度,即元素的个数。
range返回一个序列的数。
循环使用else语句
在python中,for…else表示这样的意思,for中的语句和普通的没有区别,else中的语句
会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行,while…else也
是一样。
如下实例:
#!/usr/bin/python
fornuminrange(10,20):#toiteratebetween10to20
foriinrange(2,num):#toiterateonthefactorsofthenumber
ifnum%i==0:#todeterminethefirstfactor
j=num/i#tocalculatethesecondfactor
print'%dequals%d*%d'%(num,i,j)
break#tomovetothenextnumber,the#firstFOR
else:#elsepartoftheloop
printnum,'isaprimenumber'
以上实例输出结果:
10equals2*5
11isaprimenumber
12equals2*6
13isaprimenumber
14equals2*7
15equals3*5
16equals2*8
17isaprimenumber
18equals2*9
19isaprimenumber
Python循环嵌套
Python语言允许在一个循环体里面嵌入另一个循环。
Pythonfor循环嵌套语法:
foriterating_varinsequence:
foriterating_varinsequence:
statements(s)
statements(s)
Pythonwhile循环嵌套语法:
whileexpression:
whileexpression:
statement(s)
statement(s)
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环,反之,你可以在for
循环中嵌入while循环。
实例:
以下实例使用了嵌套循环输出2~100之间的素数:
#coding=utf-8
#!/usr/bin/python
i=2
while(i<100):
j=2
while(j<=(i/j)):
ifnot(i%j):break
j=j+1
if(j>i/j):printi,"是素数"
i=i+1
print"Goodbye!"
以上实例输出结果:
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是素数
Goodbye!
Pythonbreak语句
Pythonbreak语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停
止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
Python语言break语句语法:
break
流程图:
实例:
#!/usr/bin/python
forletterin'Python':#FirstExample
ifletter=='h':
break
print'CurrentLetter:',letter
var=10#SecondExample
whilevar>0:
print'Currentvariablevalue:',var
var=var-1
ifvar==5:
break
print"Goodbye!"
以上实例执行结果:
CurrentLetter:P
CurrentLetter:y
CurrentLetter:t
Currentvariablevalue:10
Currentvariablevalue:9
Currentvariablevalue:8
Currentvariablevalue:7
Currentvariablevalue:6
Goodbye!
Pythoncontinue语句
Pythoncontinue语句跳出本次循环,而break跳出整个循环。
continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
Python语言continue语句语法格式如下:
continue
流程图:
实例:
#!/usr/bin/python
forletterin'Python':#FirstExample
ifletter=='h':
continue
print'CurrentLetter:',letter
var=10#SecondExample
whilevar>0:
var=var-1
ifvar==5:
continue
print'Currentvariablevalue:',var
print"Goodbye!"
以上实例执行结果:
CurrentLetter:P
CurrentLetter:y
CurrentLetter:t
CurrentLetter:o
CurrentLetter:n
Currentvariablevalue:9
Currentvariablevalue:8
Currentvariablevalue:7
Currentvariablevalue:6
Currentvariablevalue:4
Currentvariablevalue:3
Currentvariablevalue:2
Currentvariablevalue:1
Currentvariablevalue:0
Goodbye!
Pythonpass语句
Pythonpass是空语句,是为了保持程序结构的完整性。
Python语言pass语句语法格式如下:
pass
实例:
#!/usr/bin/python
forletterin'Python':
ifletter=='h':
pass
print'Thisispassblock'
print'CurrentLetter:',letter
print"Goodbye!"
以上实例执行结果:
CurrentLetter:P
CurrentLetter:y
CurrentLetter:t
Thisispassblock
CurrentLetter:h
CurrentLetter:o
CurrentLetter:n
Goodbye!
Python数字
Python数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间。
以下实例在变量赋值时数字对象将被创建:
var1=1
var2=10
您也可以使用del语句删除一些数字对象引用。
del语句的语法是:
delvar1[,var2[,var3[....,varN]]]]
您可以通过使用del语句删除单个或多个对象,例如:
delvar
delvar_a,var_b
Python支持四种不同的数值类型:
•整型(Int)-通常被称为是整型或整数,是正或负整数,不带小数点。
•长整型(longintegers)-无限大小的整数,整数最后是一个大写或小写的L。
•浮点型(floatingpointrealvalues)-浮点型由整数部分与小数部分组成,浮点型也可
以使用科学计数法表示(2.5e2=2.5x102=250)
•复数((complexnumbers))-复数的虚部以字母J或j结尾。如:2+3i
intlongfloatcom
1051924361L0.03.1
100-0x19323L15.2045.
-7860122L-21.99.3
0800xDEFABCECBDAECBFBAEl32.3+e18.87
-9843L-90.-.65
-0x260-L-32.54e1003e+
0x69-4721885298529L70.2-E124.5
•长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python
使用"L"来显示长整型。
•Python还支持复数,复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)
表示,复数的实部a和虚部b都是浮点型
Python数字类型转换
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)返回数字的上入整数,如(4.1)返回5
cmp(x,y)如果xy返回1
exp(x)返回e的x次幂(ex),如(1)返回2.7045
fabs(x)返回数字的绝对值,如(-10)返回10.0
floor(x)返回数字的下舍整数,如(4.9)返回4
log(x)如(math.e)返回1.0,(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如10(100)返回2.0
max(x1,x2,...)返回给定参数的最大值,参数可以为序列。
min(x1,x2,...)返回给定参数的最小值,参数可以为序列。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x,y)x**y运算后的值。
round(x[,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)返回数字x的平方根,数字可以为负数,返回类型为实数,如(4)返回2+0j
Python随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提
高程序的安全性。
Python包含以下常用随机数函数:
函数描述
choice(seq)从序列的元素中随机挑选一个元素,比如(range(10)),从0到9中随
randrange([start,]stop
[,step])
从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()随机生成下一个实数,它在[0,1)范围内。
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Pytho
shuffle(lst)将序列的所有元素随机排序
uniform(x,y)随机生成下一个实数,它在[x,y]范围内。
Python三角函数
Python包括以下三角函数:
函数描述
acos(x)返回x的反余弦弧度值。
asin(x)返回x的反正弦弧度值。
atan(x)返回x的反正切弧度值。
atan2(y,x)返回给定的X及Y坐标值的反正切值。
cos(x)返回x的弧度的余弦值。
hypot(x,y)返回欧几里德范数sqrt(x*x+y*y)。
sin(x)返回的x弧度的正弦值。
tan(x)返回x弧度的正切值。
degrees(x)将弧度转换为角度,如degrees(/2),返回90.0
radians(x)将角度转换为弧度
Python数学常量
常量描述
pi数学常量pi(圆周率,一般以π来表示)
e数学常量e,e即自然常数(自然常数)。
Python字符串
字符串是Python中最常用的数据类型。我们可以使用引号来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1='HelloWorld!'
var2="PythonProgramming"
Python访问字符串中的值
Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
Python访问子字符串,可以使用方括号来截取字符串,如下实例:
#!/usr/bin/python
var1='HelloWorld!'
var2="PythonProgramming"
print"var1[0]:",var1[0]
print"var2[1:5]:",var2[1:5]
以上实例执行结果:
var1[0]:H
var2[1:5]:ytho
Python字符串更新
你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:
#!/usr/bin/python
var1='HelloWorld!'
print"UpdatedString:-",var1[:6]+'Python'
以上实例执行结果
UpdatedString:-HelloPython
Python转义字符
在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:
转义字符描述
(在行尾时)续行符
反斜杠符号
转义字符描述
'单引号
"双引号
a响铃
b退格(Backspace)
e转义
000空
n换行
v纵向制表符
t横向制表符
r回车
f换页
oyy八进制数,yy代表的字符,例如:o12代表换行
xyy十六进制数,yy代表的字符,例如:x0a代表换行
other其它的字符以普通格式输出
Python字符串运算符
下表实例变量a值为字符串"Hello",b变量值为"Python":
操作符描述实例
+字符串连接a+
Hel
*重复输出字符串a*2
Hel
[]通过索引获取字符串中字符a[1
[:]截取字符串中的一部分a[1
in成员运算符-如果字符串中包含给定的字符返回TrueHin
notin成员运算符-如果字符串中不包含给定的字符返回TrueMn
r/R原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能
打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字
符串有着几乎完全相同的语法。
prin
和p
%格式字符串请看
Python字符串格式化
Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法
是将一个值插入到一个有字符串格式符%s的字符串中。
在Python中,字符串格式化使用与C中sprintf函数一样的语法。
如下实例:
#!/usr/bin/python
print"Mynameis%sandweightis%dkg!"%('Zara',21)
以上实例输出结果:
MynameisZaraandweightis21kg!
python字符串格式化符号:
符号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f和%E的简写
%p用十六进制数格式化变量的地址
格式化操作符辅助指令:
符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号(+)
在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m是显示的最小总宽度,n是小数点后的位数(如果可用的话)
Python三引号(triplequotes)
python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
>>>hi='''hi
there'''
>>>hi#repr()
'hinthere'
>>>printhi#str()
hi
there
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是
所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将
会非常的繁琐。
errHTML='''
FriendsCGIDemo
ERROR
%s
'''
e('''
CREATETABLEusers(
loginVARCHAR(8),
uidINTEGER,
pridINTEGER)
''')
Unicode字符串
Python中定义一个Unicode字符串和定义一个普通字符串一样简单:
>>>u'HelloWorld!'
u'HelloWorld!'
引号前小写的"u"表示这里创建的是一个Unicode字符串。如果你想加入一个特殊字符,可以使
用Python的Unicode-Escape编码。如下例所示:
>>>u'Hellou0020World!'
u'HelloWorld!'
被替换的u0020标识表示在给定位置插入编码值为0x0020的Unicode字符(空格符)。
python的字符串内建函数
字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。
这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有
的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。
方法描述
lize()把字符串的第一个字符大写
(width)返回一个原字符串居中,并使用空格填充至长度width的新字符串
(str,beg=0,end=len(string))返回str在string里面出现的次数,如果beg或者end指定则返回
的次数
(encoding='UTF-8',
errors='strict')
以encoding指定的编码格式解码string,如果出错默认报一个Valu
除非errors指定的是'ignore'或者'replace'
(encoding='UTF-8',
errors='strict')
以encoding指定的编码格式编码string,如果出错默认报一个Value
errors指定的是'ignore'或者'replace'
th(obj,beg=0,
end=len(string))
检查字符串是否以obj结束,如果beg或者end指定则检查指定的范
束,如果是,返回True,否则返回False.
tabs(tabsize=8)把字符串string中的tab符号转为空格,默认的空格数tabsize是
(str,beg=0,end=len(string))检测str是否包含在string中,如果beg和end指定范围,则检查
内,如果是返回开始的索引值,否则返回-1
(str,beg=0,end=len(string))跟find()方法一样,只不过如果str不在string中会报一个异常.
m()如果string至少有一个字符并且所有字符都是字母或数字则返
回True,否则返回False
a()如果string至少有一个字符并且所有字符都是字母则返回True,
否则返回False
mal()如果string只包含十进制数字则返回True否则返回False.
t()如果string只包含数字则返回True否则返回False.
r()如果string中包含至少一个区分大小写的字符,并且所有这些(区分大
写,则返回True,否则返回False
ric()如果string中只包含数字字符,则返回True,否则返回False
e()如果string中只包含空格,则返回True,否则返回False.
e()如果string是标题化的(见title())则返回True,否则返回False
r()如果string中包含至少一个区分大小写的字符,并且所有这些(区分大
写,则返回True,否则返回False
(seq)Merges(concatenates)以string作为分隔符,将seq中所有的元素(的
一个新的字符串
(width)返回一个原字符串左对齐,并使用空格填充至长度width的新字符串
()转换string中所有大写字符为小写.
()截掉string左边的空格
ans(intab,outtab])maketrans()方法用于创建字符映射的转换表,对于接受两个参数的最
一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示
max(str)返回字符串str中最大的字母。
min(str)返回字符串str中最小的字母。
ion(str)有点像find()和split()的结合体,从str出现的第一个位置起,把字符
个3元素的元组(string_pre_str,str,string_post_str),如果string
string_pre_str==string.
e(str1,
str2,num=(str1))
把string中的str1替换成str2,如果num指定,则替换不超过num
(str,beg=0,end=len(string))类似于find()函数,不过是从右边开始查找.
(str,beg=0,end=len(string))类似于index(),不过是从右边开始.
(width)返回一个原字符串右对齐,并使用空格填充至长度width的新字符串
tion(str)类似于partition()函数,不过是从右边开始查找.
()删除string字符串末尾的空格.
(str="",
num=(str))
以str为分隔符切片string,如果num有指定值,则仅分隔num个
ines(num=('n'))按照行分隔,返回一个包含各行作为元素的列表,如果num指定则仅
with(obj,
beg=0,end=len(string))
检查字符串是否是以obj开头,是则返回True,否则返回False。如
值,则在指定范围内检查.
([obj])在string上执行lstrip()和rstrip()
se()翻转string中的大小写
()返回"标题化"的string,就是说所有单词都是以大写开始,其余字母均为
ate(str,del="")根据str给出的表(包含256个字符)转换string的字符,
要过滤掉的字符放到del参数中
()转换string中的小写字母为大写
(width)返回长度为width的字符串,原字符串string右对齐,前面填充0
mal()isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于
Python列表(Lists)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,
第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1=['physics','chemistry',1997,2000];
list2=[1,2,3,4,5];
list3=["a","b","c","d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
#!/usr/bin/python
list1=['physics','chemistry',1997,2000];
list2=[1,2,3,4,5,6,7];
print"list1[0]:",list1[0]
print"list2[1:5]:",list2[1:5]
以上实例输出结果:
list1[0]:physics
list2[1:5]:[2,3,4,5]
更新列表
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
#!/usr/bin/python
list=['physics','chemistry',1997,2000];
print"Valueavailableatindex2:"
printlist[2];
list[2]=2001;
print"Newvalueavailableatindex2:"
printlist[2];
注意:我们会在接下来的章节讨论append()方法的使用
以上实例输出结果:
Valueavailableatindex2:
1997
Newvalueavailableatindex2:
2001
删除列表元素
可以使用del语句来删除列表的的元素,如下实例:
#!/usr/bin/python
list1=['physics','chemistry',1997,2000];
printlist1;
dellist1[2];
print"Afterdeletingvalueatindex2:"
printlist1;
以上实例输出结果:
['physics','chemistry',1997,2000]
Afterdeletingvalueatindex2:
['physics','chemistry',2000]
注意:我们会在接下来的章节讨论remove()方法的使用
Python列表脚本操作符
列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表。
如下所示:
Python表达式结果描述
len([1,2,3])3长度
[1,2,3]+[4,5,6][1,2,3,4,5,6]组合
['Hi!']*4['Hi!','Hi!','Hi!','Hi!']重复
3in[1,2,3]True元素是否存在于列表中
forxin[1,2,3]:printx,123迭代
Python列表截取
Python的列表截取与字符串操作类型,如下所示:
L=['spam','Spam','SPAM!']
操作:
Python表达式结果描述
L[2]'SPAM!'读取列表中第三个元素
L[-2]'Spam'读取列表中倒数第二个元
L[1:]['Spam','SPAM!']从第二个元素开始截取列
Python列表函数&方法
Python包含以下函数:
序号函数
1cmp(list1,list2)
比较两个列表的元素
2len(list)
列表元素个数
3max(list)
返回列表元素最大值
4min(list)
返回列表元素最小值
5list(seq)
将元组转换为列表
Python包含以下方法:
序号方法
(obj)
在列表末尾添加新的对象
(obj)
统计某个元素在列表中出现的次数
(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
(obj)
从列表中找出某个值第一个匹配项的索引位置
(index,obj)
将对象插入列表
(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
(obj)
移除列表中某个值的第一个匹配项
e()
反向列表中元素
([func])
对原列表进行排序
Python元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
如下实例:
tup1=('physics','chemistry',1997,2000);
tup2=(1,2,3,4,5);
tup3="a","b","c","d";
创建空元组
tup1=();
元组中只包含一个元素时,需要在元素后面添加逗号
tup1=(50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
访问元组
元组可以使用下标索引来访问元组中的值,如下实例:
#!/usr/bin/python
tup1=('physics','chemistry',1997,2000);
tup2=(1,2,3,4,5,6,7);
print"tup1[0]:",tup1[0]
print"tup2[1:5]:",tup2[1:5]
以上实例输出结果:
tup1[0]:physics
tup2[1:5]:(2,3,4,5)
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#coding=utf-8
#!/usr/bin/python
tup1=(12,34.56);
tup2=('abc','xyz');
#以下修改元组元素操作是非法的。
#tup1[0]=100;
#创建一个新的元组
tup3=tup1+tup2;
printtup3;
以上实例输出结果:
(12,34.56,'abc','xyz')
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/python
tup=('physics','chemistry',1997,2000);
printtup;
deltup;
print"Afterdeletingtup:"
printtup;
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('physics','chemistry',1997,2000)
Afterdeletingtup:
Traceback(mostrecentcalllast):
File"",line9,in
printtup;
NameError:name'tup'isnotdefined
元组运算符
与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运
算后会生成一个新的元组。
Python表达式结果描述
len((1,2,3))3计算元素个数
(1,2,3)+(4,5,6)(1,2,3,4,5,6)连接
['Hi!']*4['Hi!','Hi!','Hi!','Hi!']复制
3in(1,2,3)True元素是否存在
forxin(1,2,3):printx,123迭代
元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段
元素,如下所示:
元组:
L=('spam','Spam','SPAM!')
Python表达式结果描述
L[2]'SPAM!'读取第三个元素
L[-2]'Spam'反向读取;读取倒数第二
L[1:]('Spam','SPAM!')截取元素
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
#!/usr/bin/python
print'abc',-4.24e93,18+6.6j,'xyz';
x,y=1,2;
print"Valueofx,y:",x,y;
以上实例允许结果:
abc-4.24e+93(18+6.6j)xyz
Valueofx,y:12
元组内置函数
Python元组包含了以下内置函数
序号方法及描述
1cmp(tuple1,tuple2)
比较两个元组元素。
2len(tuple)
计算元组元素个数。
3max(tuple)
返回元组中元素最大值。
4min(tuple)
返回元组中元素最小值。
5tuple(seq)
将列表转换为元组。
Python字典(Dictionary)
字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型。
字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:
dict={'Alice':'2341','Beth':'9102','Cecil':'3258'}
也可如此创建字典:
dict1={'abc':456};
dict2={'abc':123,98.6:37};
每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
访问字典里的值
把相应的键放入熟悉的方括弧,如下实例:
#!/usr/bin/python
dict={'Name':'Zara','Age':7,'Class':'First'};
print"dict['Name']:",dict['Name'];
print"dict['Age']:",dict['Age'];
以上实例输出结果:
dict['Name']:Zara
dict['Age']:7
如果用字典里没有的键访问数据,会输出错误如下:
#!/usr/bin/python
dict={'Name':'Zara','Age':7,'Class':'First'};
print"dict['Alice']:",dict['Alice'];
以上实例输出结果:
dict['Zara']:
Traceback(mostrecentcalllast):
File"",line4,in
print"dict['Alice']:",dict['Alice'];
KeyError:'Alice'
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
#!/usr/bin/python
dict={'Name':'Zara','Age':7,'Class':'First'};
dict['Age']=8;#updateexistingentry
dict['School']="DPSSchool";#Addnewentry
print"dict['Age']:",dict['Age'];
print"dict['School']:",dict['School'];
以上实例输出结果:
dict['Age']:8
dict['School']:DPSSchool
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
#coding=utf-8
#!/usr/bin/python
dict={'Name':'Zara','Age':7,'Class':'First'};
deldict['Name'];#删除键是'Name'的条目
();#清空词典所有条目
deldict;#删除词典
print"dict['Age']:",dict['Age'];
print"dict['School']:",dict['School'];
但这会引发一个异常,因为用del后字典不再存在:
dict['Age']:
Traceback(mostrecentcalllast):
File"",line8,in
print"dict['Age']:",dict['Age'];
TypeError:'type'objectisunsubscriptable
注:del()方法后面也会讨论。
删除字典元素
字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键
不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
#!/usr/bin/python
dict={'Name':'Zara','Age':7,'Name':'Manni'};
print"dict['Name']:",dict['Name'];
以上实例输出结果:
dict['Name']:Manni
2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:
#!/usr/bin/python
dict={['Name']:'Zara','Age':7};
print"dict['Name']:",dict['Name'];
以上实例输出结果:
Traceback(mostrecentcalllast):
File"",line3,in
dict={['Name']:'Zara','Age':7};
TypeError:listobjectsareunhashable
字典内置函数&方法
Python字典包含了以下内置函数:
序号函数及描述
1cmp(dict1,dict2)
比较两个字典元素。
2len(dict)
计算字典元素个数,即键的总数。
3str(dict)
输出字典可打印的字符串表示。
4type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置函数:
序号函数及描述
()
删除字典内所有元素
()
返回一个字典的浅复制
ys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
(key,default=None)
返回指定键的值,如果值不在字典中返回default值
_key(key)
如果键在字典dict里返回true,否则返回false
()
以列表返回可遍历的(键,值)元组数组
()
以列表返回一个字典所有的键
ault(key,default=None)
和get()类似,但如果键不已经存在于字典中,将会添加键并将值设为default
(dict2)
把字典dict2的键/值对更新到dict里
()
以列表返回字典中的所有值
Python日期和时间
Python程序能用很多方式处理日期和时间。转换日期格式是一个常见的例行
琐事。Python有一个timeandcalendar模组可以帮忙。
什么是Tick?
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python附带的受欢迎的time模块下有很多函数可以转换常见日期格式。如函数()用
ticks计时单位返回从12:00am,January1,1970(epoch)开始的记录的当前操作系统时间,如下
实例:
#!/usr/bin/python
importtime;#Thisisrequiredtoincludetimemodule.
ticks=()
print"Numberoftickssince12:00am,January1,1970:",ticks
以上实例输出结果:
Numberoftickssince12:00am,January1,1970:7186862.73399
Tick单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,
UNIX和Windows只支持到2038年某日。
什么是时间元组?
很多Python函数用一个元组装起来的9组数字处理时间:
Yahei','HelveticaNeue',Helvetica,Arial,sans-serif;font-size:12px; font-style:normal;font-variant:normal;font-weight:normal; letter-spacing:normal;line-height:normal;orphans:auto;text-align: start;text-indent:0px;text-transform:none;white-space:normal; widows:auto;word-spacing:0px;-webkit-text-stroke-width:0px; background-color:rgb(255,255,255);">
序号字段值
04位数年2008
1月1到12
2日1到31
3小时0到23
4分钟
5秒0到61(60或61是闰秒)
6一周的第几日0到6(0是周一)
7一年的第几日1到366(儒略历)
8夏令时-1,0,1,-1是决定是否为夏令时的旗帜
上述也就是struct_time元组。这种结构具有如下属性:
序号属性值
0tm_year2008
1tm_mon1到12
2tm_mday1到31
3tm_hour0到23
4tm_min0到59
5tm_sec0到61(60或61是闰秒)
6tm_wday0到6(0是周一)
7tm_yday1到366(儒略历)
8tm_isdst-1,0,1,-1是决定是否为夏令时的旗帜
获取当前时间
从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
#!/usr/bin/python
importtime;
localtime=ime(())
print"Localcurrenttime:",localtime
以上实例输出结果:
Localcurrenttime:_time(tm_year=2013,tm_mon=7,
tm_mday=17,tm_hour=21,tm_min=26,tm_sec=3,tm_wday=2,tm_yday=198,t
m_isdst=0)
获取格式化的时间
你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
#!/usr/bin/python
importtime;
localtime=e(ime(()))
print"Localcurrenttime:",localtime
以上实例输出结果:
Localcurrenttime:TueJan1310:17:092009
获取某月日历
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
#!/usr/bin/python
importcalendar
cal=(2008,1)
print"Hereisthecalendar:"
printcal;
以上实例输出结果:
Hereisthecalendar:
January2008
MoTuWeThFrSaSu
123456
78910111213
920
227
28293031
Time模块
Time模块包含了以下内置函数,既有时间处理相的,也有转换时间格式的:
序
号
函数及描述
e
返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。
能使用。
e([tupletime])
接受时间元组并返回一个可读的形式为"TueDec1118:07:142008"(2008年12月11日周二18时07分14
字符串。
()
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比()更有用。
([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()
([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:_isdst始终为0
ime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(_isdst可取0或1,取决于当地
(tupletime)
接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
(secs)
推迟调用线程的运行,secs指秒数。
me(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
me(str,fmt='%a%b%d%H:%M:%S%Y')
根据fmt的格式把一个时间字符串解析为时间元组。
()
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
()
根据环境变量TZ重新初始化时间相关设置。
Time模块包含了以下2个非常重要的属性:
序号属性及描述
ne
属性ne是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲
属性包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。
日历(Calendar)模块
此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用
stweekday()函数。模块包含了以下内置函数:
序
号
函数及描述
ar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为2
每星期行数。
eekday()
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
(year)
是闰年返回True,否则为false。
ys(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度
星期的行数。
alendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围
第几日表示,从1开始。
ange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月
(year,w=2,l=1,c=6)
相当于ar(year,w,l,c).
h(year,month,w=2,l=1)
相当于ar(year,w,l,c)。
stweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
(tupletime)
和相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。
y(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为1(一月)到12(12月)。
其他相关模块和函数
在Python种,其他处理日期和时间的模块还有:
•datetime模块
•pytz模块