内容正文:
专题三 字符串、队列、栈及应用
思维导图
一、字符串
1.字符串的概念
(1)字符串是由零个或多个字符组成的有限序列。
(2)字符串长度:字符串中所包含字符的个数。
(3)主要形式有:′Python′、"Python"、 ‴Python‴。
归纳提炼
重难点剖析
正确区分空串和空格串
空串是指不包含任何字符的串,其长度为零。而空格串是指由空格组成的字符串,其长度为空格字符的个数。
2.字符串的特性
(1)有限序列性
字符串的数据元素个数是有限的。
(2)字符串的可比性
若比较的字符串中的字符为ASCII字符集,则按字符的ASCII码值进行比较。
3.字符串的基本操作
(1)子串判断
子串判断用于检查字符串a是否为字符串S的子串,可用in运算实现。
(2)求子串
求子串用于从字符串中取出其子串,可用切片实现。
(3)字符串的连接
字符串的连接用于把两个字符串连接在一起,用“+”号连接符实现。
4.Python字符串常用函数和方法
Python字符串常用函数和方法
函数和方法 功能 实例
len(x) 统计字符串x中字符的个数 x="Python"
len(x)的值为6
x.find(y) 返回字符串x中子串y出现的首字符下标,若找不到,则输出-1 x="Python"
y="on"
x.find(y)
返回的值为4
x.split(str="",
num=string.count(str)) 以str分隔符切片x,若num有指定值,则表示仅分隔num个子串。切片得到的值存储在列表中 x="1,2,3,4"
y=x.split(",")
y列表的内容为:
[′1′,′2′,′3′,′4′]
x.replace(old,new[,max]) 返回字符串中的old替换成new后生成的新字符串,若指定第三个参数max,则表示替换不超过max次 x="This data is new data."
x.replace("data","bag")
执行后x字符串为:
′This bag is new bag.′
x.upper() 把字符串x中的小写字母转换成大写字母 x="Python"
x.upper()
执行后x字符串为:
′PYTHON′
x.lower() 把字符串x中的大写字母转换成小写字母 x="Python"
x.lower()
执行后x字符串为:
′python′
5.正则表达式
(1)正则表达式是用一些特定的字符组成的一个“规则字符串”。
(2)作用:它可以实现检查一个字符串中是否含有某种子串、将匹配的子串替换或从字符串中取出符合某个条件的子串等操作。
二、队列
1.队列的概念
(1)队列是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端称为队首。
(2)队列中的数据元素称为队列元素。
2.队列的特性
(1)先进先出、后进后出。
(2)有限序列性。
重难点剖析
队头指针指向实际队头元素的前一个位置,而队尾指针指向实际队尾元素所在的位置。
3.队列的存储
(1)顺序结构存储
队列的顺序结构存储指用一段地址连续的内存单元依次存储在队列中的数据元素。
顺序存储的队列称为顺序队列,可用数组来实现。
(2)队列的链式存储
队列的链式存储指用一组任意(不要求连续)的内存单元存储队列中的数据元素及数据元素间的关系。
队列的链式存储称为链队列,用链表来实现,一个链队列由一个头指针和一个尾指针共同确定。
4.队列的操作(建队、入队、出队)的实现
(1)顺序队列
m=100 #队列规模
head=tail=0
que=[""]*m #建队
data=input("please input data:")
i=0
while data!="#": #入队操作,输入#结束
if tail==m:
print("队列已满!")
else:
que[tail]=data
tail+=1
data=input("please input data:")
while head<tail: #出队操作
print(que[head],end=′′)
head+=1
(2)循环队列
m=100 #队列规模
head=tail=0
que=[""]*m #建队
data=input("please input data:")
i=0
while data!="#": #入队操作,输入#结束
if (tail+1)%m==head:
print("队列已满!")
else:
que[tail]=data
tail=(tail+1)%m
data=input("please input data:")
while head<tail: #出队操作
print(que[head],end=′′)
he