导图社区 Python语法基础
python入门语法基础,内容有搭建环境、语言基础、流程控制语句、常见的数据结构、解密文件及目录操作、异常处理及程序调试、代码模块化方法、函数、字符串操作,适合新手入门对照使用,整理的比较完善。
编辑于2023-07-10 14:52:25 湖北省Python语法基础
章一 搭建环境
章二 语言基础
2.1 语法特点
2.1.1 注释
单行注释
#
多行注释
三个连续的单引号'''或者三个连续的双引号"""
2.1.2 代码缩进
用代码缩进或冒号区分代码层次
缩进
一个tab或四个空格
物理行与逻辑行
缩进是针对逻辑行的,因此首先要区分代码中的物理行和逻辑行。
物理行
源码中换行符分割的每一行代码,是一个物理行。
通常就是代码编辑工具中显示的每一行。 如果编辑器有自动换行(例如windows的记事本),需要将其关闭,否则代码会被编辑器重新换行,影响到源码的阅读。
a=1 b=2 c=3 print(a,b,c) // 这里一共5行代码,也是5个物理行
obj={ "a":1, "b":2 } // 这里一共4行代码,也是4个物理行
逻辑行
Python解释器对代码进行解释,一个语句是一个逻辑行。
obj={ "a":1, "b":2 } // 这里python解释器,作为一个赋值语句解释,是一个逻辑行
print("1\ 2\ 3") // 这里python解释器,作为一个函数调用语句解释,是一个逻辑行
相关的代码书写规则
A.可以使用";"号将多个逻辑行合并成一个物理行。
i=1;j=2;k=3;print(i,j,k) // 等效于 i = 1 j = 2 k = 3 print(i, j, k)
// 需要注意,多个逻辑行使用“;”连接时,它们属于同一个缩进。那么 if True:a=1; else: a=2 // 等效于 if True: a = 1 else: a = 2 // 所以 else 位置缩进出错了
B.可以使用"\"对一个逻辑行进行换行,书写为多个物理行。
C、字典、列表等变量赋值语句,是可以直接换行,书写为多个物理行的。
obj = {"a":1, "b":2, "c":3 } // 这段代码只是一个赋值语句,即一个逻辑行,缩进是针对逻辑行的 // 所以2,3,4行无论怎么缩进,都不影响程序运行
缩进规则
A.逻辑行的“首行”需要顶格
B.":"标记一个新的逻辑层
如:while循环、if分支、函数声明、类定义等等: 增加缩进表示进入下一个代码层 减少缩进表示返回上一个代码层
a=1 if a == 1: print(a) // 相对第2行if语句,增加了一个缩进即进入下一个逻辑层,即if条件为真执行的逻辑层 a += 1 // 相对第3行,减少了一个缩进返回上一个代码层,即if分支执行结束
2.1.3 编码规范
函数调用:import语句
每个语块尽量只导入一个模块
2.2 保留字与标识符
2.2.1 保留字
2.2.2 标识符
2.3 变量
2.3.1 理解python中的变量
2.1.2 变量的定义和使用
无需声明,直接定义
用不同类型数据赋值,变量直接转换数据类型
编写灵活
重新赋值后原数据地址不变,变量获得新地址储存数据,原数据由系统统一清理
运行时多出判别数据类型的步骤
运行更慢
2.4 基本数据类型
其余的与C语言没有不同
2.4.3 布尔类型
True
真 1
False
假 0
2.4.4 数据类型转换
格式
要转化的类型(变量名)
2.5 运算符
算术运算符
比较运算符
赋值运算符
位运算符
逻辑运算符
and
or
not
成员运算符
身份运算符
运算符的优先级
2.6 输入和输出
2.6.1基本输出输出
input输入
print输出
2.6.2格式化输出
0.占位符
1.%
语法格式:"... %[key][flags][width][.precision][length type]conversion type ..." % values
参数说明
%
必填。“%”字符,标记说明符的开头。
key
自选。映射键,由带括号的字符序列组成(例如,(somename)),一般用于后面的values是是字典的场景。
flags
标志
自选。转化标志,影响某些转化类型的结果。
width
宽度
自选。最小字段宽度。如果指定为“*”(星号),则从元组的下一个元素读取实际宽度的值,并且要转换的对象位于最小字段宽度和可选精度之后。
.precision
精度
自选。精度,以“.”(点)后跟精度。如果指定为“*”(星号),则从元组的下一个元素读取实际宽度的值,并且要转换的值位于精度之后。
length type
长度类型
自选。长度修饰符。
conversion type
自选。转化类型
常用
s
字符串(使用str()方法转换任何Python对象)
d
有符号的十进制整数。
f
十进制浮点数(小数), 自动保留六位小数。
其它
i
有符号整数十进制。
o
有符号的八进制值。
u
过时类型 – 它与 相同。
x
有符号十六进制(小写)。
X
有符号十六进制(大写)。
e
浮点指数格式(小写)。
E
浮点指数格式(大写)。
f
浮点十进制格式。
F
浮点十进制格式。
g
浮点格式。使用小写指数 如果指数小于 -4 或不小于 精度,否则为十进制格式。
G
浮点格式。使用大写指数 如果指数小于 -4 或不小于 精度,否则为十进制格式。
c
单个字符(接受整数或单个字符) 字符串)。
r
字符串(使用 转换
a
字符串(使用 转换
%
不转换任何参数,导致结果中出现字符。
values
值
必填。包含要替换转换类型的值的数字、字符串或容器。
2.format
3.f表达式
章三 流程控制语句
3.1 程序结构
3.2 选择语句
3.3 语句的嵌套
3.4 条件表达式
3.5 循环语句
3.6 跳转语句
3.7 pass空语句
章四 常见的数据结构
4.1序列
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
4.1.1索引
4.1.2切片
语法格式:name{start:end:step]
Name:表示序列的名称 Start:表示切片的开始位置(包括该位置),如不指定,则默认为0 End:表示切片的截止位置(不包括该位置),如不指定,默认为序列的长度 Step:表示切片的步长,如省略,默认为1
4.1.3序列相加
4.1.4乘法
4.1.5计算序列的长度、最大值和最小值
4.2列表
列表的定义
一些列按特定顺序排列的元素组成,是python中内置的可变序列。
形式上:列表中所有元素都放在一对中括号“[]”中,相邻两个元素间使用逗号分隔。
内容上:可将整数、实数、字符串、列表、元组等任何类型的内容放入到列表中,并且同一个列表里,元素类型可以不同,因为它们之间没有任何关系。
4.2.1列表的创建和删除
基础
1.使用赋值运算符直接创建列表
2.创建空列表
3.创建数值列表
4.删除列表
进阶
5.for循环生成列表
6.列表生成式(进阶)
在大多数情况下,列表生成式优先于for和if循环,因为:
它们比for循环快得多
它们被认为比循环和映射函数更具python特性
列表生成式的语法更容易阅读
语法结构:List=[expression for item in interable if conditional]
参数说明
expression
变量
for
表示变量取值范围
if
表示满足什么条件
4.2.2访问列表元素
4.2.3遍历列表
1.直接使用for循环实现
2.使用for循环和enumerate()函数实现
功能:可以实现同时输出索引值和元素内容
语法格式:
4.2.4添加、修改和删除列表元素
1.添加元素
添加单个元素
使用列表对象的append()方法
语法格式:listname.append(n)
参数说明
listname
要添加进元素的列表名称
n
元素(变量名或常量)
添加一个列表的元素
使用列表对象的extend()方法
语法格式:listname.extend(seq)
参数说明
listname
原列表
seq
要添加的列表
2.修改元素
3.删除元素
del关键字
删除单个元素
语法格式:del listname[index]
参数说明
listname
列表名称
index
元素索引
删除连续元素
语法格式:del listname[start : end]
左闭右开
参数说明
listname
列表名称
start
开始位置索引
end
结束位置索引(不包含结束位置)
pop()方法
语法格式:listname.pop(index)
参数说明
listname
列表名称
index
索引值。如果不写 index 参数,默认会删除列表中的最后一个元素,类似于数据结构中的“出栈”操作。
remove() 方法
功能:只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。所以对指定元素进行删除之前,最好判断一下列表中元素是否存在。
语法格式:listname.remove(element)
参数说明
listname
列表名称
element
要删除的元素
clear()方法
功能:清除列表中所有元素
语法格式:listname.clear()
4.2.5对列表进行统计和计算
1.获取指定元素出现的次数
2.获取指定元素首次出现的下标
3.统计数值列表的元素和
4.2.6对列表进行排序
1.使用列表对象的sort()方法
2.使用内置的sorted()函数实现
4.2.7二维列表的使用
4.3元组
定义
不可变的列表
由一系列按特定顺序排列的元素组成,但是是不可变序列。
形式上:所有元素都放在一对“()”中,两个香菱怨怒间使用逗号分隔
内容上:可以将整数、实数、字符串、列表、元组等任何类型的内容放入元组中,并且在同一个元组中,元素的类型可以不同,因为它们之间没有任何关系
注意
在python中,元组的小括号不是必须的,只要将一组值用逗号分隔开来,python就可以视其为元组
如果要创建只有一个元素的元组,在定义元组时在元素后面加一个逗号
4.3.1元组的创建和删除
1.使用赋值运算符直接创建元组
语法格式:tuplename=(element 1,elerent 2,element 3,…,element n)
参数说明
tuplename
元组名称
element 1,elerent 2,element 3,…,element n
都是元组的元素,个数没有限制
2.创建空元组
tuplename=()
3.创建数值元组
语法格式:tuplename=(data)
参数说明
data
表示可以转化为元组的数据,其类型可以是range对象、字符串、元组或者其它可迭代类型数据
特点
能够将可迭代数据转化为元组
如range()对象
4.删除元组
语法格式:del tuplename
4.3.2访问元组元素
1.全部输出直接使用print(tuplename)
2.通过索引输出单个元素
3.通过切片 tuplename[m:n] 方式输出一部分元素
4.3.3修改元组元素
1.重新赋值元组
元组是不可变序列,所以不能对单个元素修改,但是可以对元组重新赋值
2.修改元组中的列表
如果元组中含有类型为列表的元素,可以对列表的内容进行修改,但是不可以修改列表本身类型
例如
可以修改tuplename[2][3],但不能修改tuplename[2]
4.4字典
4.5集合
章九 解密文件及目录操作
9.1基本文件操作
9.1.1 创建和打开文件
open()函数
语法格式
file = open("filename","mode","buffering")
file = open(filename[,mode[,buffering]])
参数说明
file
被创建的文件对象指针
filename
要创建或打开的文件的文件名称,需要使用单引号或双引号括起来。
mode
可选参数,用于指定文件的打开模式
默认:
只读(即r)
参数值表
Buffering
功能
1.创建文件
在可写的模式(w,w+,a,a+)下,用open函数打开一个不存在的文件时会在当前目录(即与执行的文件相同的目录)下创建一个名为status.txt的文件
2.以二进制形式打开文件
open不仅可以以文本的形式打开文本文件,而且还可以以二进制形式打开非文本文件,如图片文件、音频文件、视频文件等。
子主题
以二进制方式打开文件并输出创建的对象的代码如下
file=open('Alcoho.png','rb') print(file)
9.1.2 关闭文件
close()方法
语法格式
file.close()
参数说明
file即已被打开的文件对象指针名称
功能
用close方法关闭文件后,文件内容从内存输出到硬盘被保存。
如果打开文件进行操作后没有关闭文件,可能造成数据丢失
9.1.3 打开文件时使用with语句
语法格式
with expression as target: with-body
参数说明
Expression
用于指定一个表达式,这里可以是打开文件的open()函数
Target
用于指定一个变量,并将expression的结果保存到该变量中
with-body
用于指定with语句体,其中可以是执行with语句后相关的一些操作语句,如果不想执行任何语句,可以直接使用pass语句代替
功能
使用close方法关闭文件容易遗忘,可以使用with语句打开文件,语句执行完,文件会自动关闭
9.1.4 写入文件内容
write()方法
语法格式
file.write(string)
参数说明
file
打开的文件对象
string
写入的字符串
9.1.5 读取文件
前提概念
文件指针
指向文件操作对应的起始位置
1.读取指定字符
read()方法
语法格式
file.read([size])
参数说明
file
size
可选参数,用于指定要读取的字符个数,若省略,一次读取全部内容
注意
read方法读取是从文件指针指向处开始,文件指针初始位于文件头,若全部内容被读取,文件指针移动到文件末尾。之后再进行读取操作就无法读到任何内容,因为之后的读取操作是从文件指针处开始,而文件指针位于末尾,之后没有任何内容。
seek()方法
使用场景
使用read()方法读取文件时,文件指针从文件头开始,读取也从头部开始。如果读取完全部内容,那如果想要读取中间内容,或是读取完文件想要再次读取怎么办?
操作文件指针到想要的位置
功能
移动文件指针的位置
语法格式
file.seek(offset[,whence])
参数说明
file
表示已经打开的文件对象
offset
用于指定移动的字符个数,其具体位置与whence参数有关
whence
用于指定从什么位置开始计算。
值为0表示从文件头开始计算,值为1表示从当前位置开始计算,值为2表示从文件尾开始计算,默认为0
注意
在使用seek()方法时如果采用GBK编码,那么offset的值是按照一个汉字(包括中文标点符号)占两个字符计算,而采用UTF-8编码,则一个汉字占3个字符。其余的字符任何编码都按一个字符算。
2.读取一行
readline()方法
使用场景
文件很大时,一次读取全部内容容易造成内存不足,所以通常采用逐行读取。
语法格式
file.readline()
参数说明
file
打开的文件对象
功能
对file使用一次,就读取file中的一行
3.读取全部行生成列表
readlines()方法
语法格式
file.readlines()
参数说明
file
打开的文件对象
功能
返回一个字符串列表,每个元素为文件中的一行内容
9.2目录操作
9.2.1 os和os.path语句
●os模块是Python内置的与操作系统功能和文件系统相关的模块, 该模块中的语句的执行结果通常与操作系统有关,在不同的操 作系统上运行,得到的结果可能不一-样。 ●os模块与os.path模块用于对目录或文件进行操作
导入
import os
说明
导入os模块后,也可以使用其子模块os.path
os模块系统操作
导入os模块后,可以使用该模块提供的通用变量获取与系统有关的信息。
常用的变量有:
name:用于获取操作系统类型
说明:若输出nt,则表示是Windows系统 若输出posix,则表示是Linux、Unix或Max OS系统
linesep:用于获取当前操作系统上的换行符
print('aaa'+os.linesep+'bbb')
结果是
aaa bbb
sep:用于获取当前操作系统所使用的路径分隔符
os模块操作目录的相关函数
getcwd()
返回当前的工作目录
listdir(path)
返回指定路径下的文件和目录信息
mkdir(path[,mode])
创建目录
makedirs(path1/path2...[,mode])
创建多级目录
rmdir(path)
删除目录
removedirs(path1/path2...[,mode])
删除多级目录
chdir(path)
将path设置为当前工作目录
walk(top[,topdowu[,onerror]])
遍历目录树,该方法返回一个元组,包括所有路径名、suo'you目录列表和文件列表3个元素
os.path模块操作目录相关函数
abspath('path')
用于获取文件或目录的绝对路径
print(os.path.abspath('baogao.py'))
exists(path)
用于判断文件或目录是否存在,存在返回True,否则返回False
join(path,name)
将目录与目录或文件名拼接起来
split()
分离文件名和路径
splitext()
分离文件名和扩展名
diname(path)
从一个路径中提取文件路径,不包括文件名
isdir(path)
用于判断是否为有效路径
9.2.2 路径
用于定位一个文件或目录的字符串
1.相对路径
当前工作目录
当前文件所在的目录,可以通过getcwd()函数获取当前工作目录
文件的实际路径=当前工作目录"E:\example"+相对路径"message.txt"
说明
指定文件路径时需要对路径分隔符"\"进行转义,例如对于相对路径为"demo\message.txt"需要使用"demo\message.txt"代替。另外,也可以将路径分隔符“\”采用“/”代替。
???
在指定文件路径时,也可以在表示路径字符串前面加上字母r(或R),那么该字符串将原样输出,这时路径中的分隔符就不需要再转义了
with open(r"demo\message.txt") as file # 通过相对路径打开文件 pass
2.绝对路径
获取
函数
os.abspath(path)
path是相对路径,可以是文件也可以是目录
3.拼接路径
将两个或多个路径拼接组成一个新路径
函数
os.join(path1[,path2[,...]])
说明
如果在要拼接的路径中没有一个绝对路径,那么最后拼接出来的将是一个相对路径
如果要拼接的路径中存在多个绝对路径,一从左到右为序最后一次出现的路径为准,该路径之前的参数都将被忽略
9.2.3 判断目录是否存在
os.path.exists(path)
用于判断文件或目录是否存在,存在返回True,否则返回False
9.2.4 创建目录
1.创建一级目录
语法格式
mkdir(path,mode=0777)
参数说明
path
用于指定要创建的目录,绝对路径或相对路径都可以
mode
用于指定数值模式,默认值为0777。该参数在非UNIX系统上无效或被忽略
只能创建指定路径中最后一级目录,如果该目录的上一级不存在,则抛出fileNotFoundError异常
若指定目录有多级,且最后一级的上级目录中有不存在的,则抛出FileNotFoundError异常,且目录创建不成功。两张解决方法,一是使用创建多级目录的方法,二是编写递归函数调用os.mkdir()
der mkdir(path): if not isdir(path): mkdir(os.path.split(path)[0]) else: return os.mkdir(path)
2.创建多级目录
语法格式
os.makedirs(name,mode=0777)
若指定目录已存在,则抛出FileExistsError异常。
可在创建目录前先判断目录是否存在
9.2.5 删除目录
9.2.6 遍历目录
将指定目录下全部目录(包括子目录)及文件访问一遍。
语法格式
os.walk(top[,topdown][,onerror][,followlinks])
参数说明
top
用于指定要遍历内容的根目录
topdown
可选参数,用于指定遍历的顺序,若值为True,表示自上而下遍历(先遍历根目录),False反之。默认为True。
onerror
可选参数,用于指定错误处理方式,默认为忽略。
followlinks
可选参数,默认情况下,walk()函数不会乡下转换成解析到目录的符号链接,将该参数值设置为True,表示用于指定在支持的系统上访问由符号链接指向的目录。
返回值
返回一个包括3个元素(dirpath,dimames,filenames)的元组生成器对象。其中,dirpath表示当前遍历的路径,是一个字符串。dimames表示当前路径下包含的子目录,是一个列表。filenames表示当前路径下包含的文件,也是一个列表。
9.3高级文件操作
9.3.1 删除文件
9.3.2 重命名文件和目录
9.3.3 获取文件基本信息
章八 异常处理及程序调试
8.1异常概述
8.2异常处理语句
8.2.1try…except语句
语法格式
try: block1 except [exceptionname [as alias]]: block2
参数说明
block1
表示可能出现错误的代码块
exceptionName[as alias]
可选参数,指定要捕获的异常类型。
exceptionName
表示异常名称,不指定则表示捕获全部异常。
如果加上as alias则表示为当前异常指定一个别名,通过该别名可以记录异常的具体内容。
block2
表示进行异常处理的代码块。在这里可以输出固定的提示信息,也可以通过别名输出异常的具体内容。
特点
当使用try语句处理异常后,程序出错时不会停止,输出错误信息后会继续执行。
同时捕获多个异常
在校括号内使用多个异常名称,以逗号间隔
8.2.2try…except…else语句
语法格式
try: block1 except [exceptionname [as alias]]: block2 else: block3
特点
在try…except语句基础山添加一个else语句
功能
在没有捕获到异常时,不执行except语句而执行else语句
8.2.3try…except…finally语句
语法格式
try: block1 except [exceptionname [as alias]]: block2 finally: block3
特点
在try…except语句基础山添加一个finally语句
功能
不论是否捕捉到异常,最终都执行finally语句
8.2.4使用raise语句抛出异常
语法格式
raise [ExceptionName[(reason)]]
参数说明
[ExceptionName[(reason)]]为可选参数,用于指定抛出的异常名称以及异常信息的相关描述。如果省略就会把当前的错误原样输出。
功能
如果某段代码会出现异常,但是不想在当前函数或方法中处理这个异常,则可以使用raise语句在函数或方法中抛出异常。
8.3程序调试
8.3.1使用自带的IDLE进行程序调试
8.3.2使用assert语句调试程序
使用场景:程序错误有语法错误和逻辑错误,语法错误好识别,程序会直接停止并给出提醒。但逻辑错误不好识别。assert(断言)用于对程序某个时刻必须满足的条件进行验证。
语法格式
assert expression [,reason]
参数说明
expression
条件表达式,如果该表达式的值为真时,什么都不做;如果该表达式的值为假,抛出AssertionError异常。
Reason
可选参数,用于判断条件进行描述。方便提示错误原因。
章七 代码模块化方法
章六 函数
6.1函数的创建和调用
6.1.1创建函数
语法格式: def functionname([parameterlist]) ['''comments'''] [functionbody]
参数说明: functionname:函数名称 parameterlist:可选参数。若有多个参数,用“,”分隔。
6.1.2调用函数
6.2参数传递
6.2.1形参和实参
6.2.2位置参数
6.2.3关键字参数
6.2.4为参数设置默认值
6.2.5可变参数
6.3返回值
函数的多返回值
return [False,True][(x%3==0)and(x%5==0)]
6.4变量的作用域
6.4.1局部变量
6.4.2全局变量
6.5lamda匿名函数
6.5.1定义
通过lamde关键字可以定义匿名函数(无名称)
语法格式:
lamda 传入参数:函数体(一行代码)
不用写return语句,默认返回
6.5.2特点
有名称的函数可以重复使用,匿名函数只能临时调用一次
章五 字符串操作
5.1字符串常用操作
5.1.1拼接
1.操作符(“+”) 方法
2.操作符(%) 方法
s='%s%s%s'%('py','th','on')
print('%s%s%s'%('py','th','on'))
3.join()方法
s=''.join(('py','th','on'))
注意开头是两个单引号
print(''.join(('py','th','on')))
5.1.2计算字符串的长度
5.1.3截取字符串
5.1.4分割、合并字符串
1.分割
定义:分割字符串是把字符串分割为列表
操作函数
split
语法格式:str.split(sep,maxslipt)
参数说明: str:表示要进行分割的字符串 sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行符“\n“、制表符”\t“等) maxsplit:可选参数,用于指定分割的次数,如不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数,个数最多为maxsplit+1 返回值:分割后的字符串列表
2.合并
定义:合并字符串是把列表合并为字符串
操作函数
join
语法格式:strnew=string.join(iterable)
5.1.5检索字符串
5.2字符串其他操作
5.2.1字母的大小写转换
5.2.2去除字符串中的空格和特殊字符
特殊字符指:制表符\t,回车符\r,换行符\n
strip()
去掉字符串左右两侧的空格和特殊字符
lstrip()
去掉左端
rstrip()
去掉右端
5.2.3格式化字符串
1.符号格式化
常用格式化符号
其他符号
辅助符号
举例: print("%c,%c" % (65, 97)) s = 'podjsd' print("%s" % (s)) print('%r'%42) print('%e'%200.21) print('%g'%200.21) print('%%'%())
结果: A,a podjsd 42 2.002100e+02 200.21 %
2.函数格式化
format()方法对字符串进行格式化操作,format()方法常用的匹配方法有三种: 不带编号,即“{}”; 带数字编号,可调换顺序,如“{0}”、“{1}”等; 带关键字,如“{name}”、“{age}”等。
3.字典格式化
5.2.4替换字符串(进阶)
字符串属于不可变对象,我们无法对其进行修改,所以不能直接替换原字符串。用一些函数可以替换字符串
1.replace()函数
2.translate()函数
3.正则表达式方法
5.2.5判断字符串是否以什么字符开头(进阶)
startswith() 方法
语法结构:stringname.starswith(str)
参数说明
stringname
被判断的字符串
str
用于判断的字符
返回值
布尔值
5.3正则表达式
5.3.1行定位符
5.3.2元字符
5.3.3限定符
5.3.4字符类
5.3.5排除字符
5.3.6选择字符
5.3.7转义字符
5.3.8分组
5.3.9在python中使用正则公式语法
5.4使用re模块实现正则表达式操作
一些函数
return [ False , True ][( x% 3 == 0 and x% 5 == 0 )]
enumerate() 函数
用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法结构:enumerate(sequence, [start=0])
参数说明
sequence
一个序列、迭代器或其他支持迭代对象。
start
下标起始位置的值。
实例
for 循环使用 enumerate >>> seq = ['one', 'two', 'three'] >>> for i, element in enumerate(seq): ... print i, element ... 0 one 1 two 2 three