浙教版(2019)高中信息技术必修一3-2-5序列和字符串 课件(41张PPT)

文档属性

名称 浙教版(2019)高中信息技术必修一3-2-5序列和字符串 课件(41张PPT)
格式 pptx
文件大小 269.1KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-06-23 11:36:57

图片预览

文档简介

第三章 算法的程序实现
3.2 Python语言程序设计


必修1《数据与计算》
3.2.5 序列和字符串


学习目标
序列和字符串
序列
序列的操作
字符串常用方法
字符串


序列
序列和字符串
序列是指一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
·种类
1.字符串:'abc',”1aVc”
2.列表:[ 'python', 786 , 2.23, 'john', 70.2 ]
3.元组:( 'python', 786 , 2.23, 'john', 70.2 )
4.集合:{1, 2, 'c', (1, 2, 3)}
5.字典:{'name': 'john','code':6734, 'dept': 'sales'}
·定义


序列的操作
序列和字符串
1,序列索引
2,序列切片
3,序列相加
4,序列相乘
5,检查元素是否包含在序列中
注意:
对于字符串、列表、元组都支持以上操作。
但是对于集合和字典,不支持索引、切片、相加和相乘。
·常见的序列操作


序列的操作
序列和字符串
序列中,每个元素都有属于自己的编号(索引或下标)
·顺序:
从左向右计数,从起始元素开始,索引值从 0 开始递增
·序列索引
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}元素1
元素2
元素3
元素…
元素n
0
1
2

n-1
索引(下标)
·逆序:
从右向左计数,从最后一个元素开始,索引值从 -1开始递减
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}元素1
元素2
元素…
元素n-1
元素n
-n
-(n-1)

-2
-1
索引(下标)


序列的操作
序列和字符串
例如:
Str = 'abcdef'
print( Str[ 0 ] , ”==”, Str[ -6 ] )
print( Str[ 1 ] , ”==”, Str[ -5 ] )
print( Str[ 5 ] , ”==”, Str[ -1 ] )
·序列索引
输出结果:
a==a
b==b
f==f


序列的操作
序列和字符串
·定义
切片是对序列中抽取一部分元素组成一个新的序列的操作。是访问序列中元素的一种方法。
·语法格式: sname[start : end : step]
1、sname:表示序列的名称;
2、start:表示切片的开始索引位置(包括该位置),此参数也可以缺省,默认为 0,即从序列的开头进行切片;
3、end:表示切片的结束索引位置(不包括该位置),如果该参数缺省,则默认为序列的长度;
4、step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”。正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。
·序列切片


序列的操作
序列和字符串
例如:Str = ‘abcdefgh’
·序列切片操作
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
c
d
e
f
g
h
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
顺序→
←逆序
1.切取单个元素
Str[ 1 ]
Str[ -8 ]
Str[ -1 ]
'b'
'a'
'h'
注意:通过切片操作来切取单个元素,就是前面所说的索引操作


序列的操作
序列和字符串
·序列切片操作
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
c
d
e
f
g
h
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
2.切取完整的对象
Str[ : ]
Str[ 0 : ]
Str[ :: ]
Str[ ::-1 ]
Str[ -1:0:-1 ]
'abcdefgh' #从左到右
'abcdefgh' #从左到右
'abcdefgh' #从左到右
'hgfedcba' #从右到左
'hgfedcba' #从右到左
3.切取部分的对象
1.start 和 end 都为正数(+)
Str[ 1 : 4 ]
Str[ 1 : 4 : -1 ]
Str[ 4 : 1 ]
'bcd' #从左到右
'' #从左到右
'' #从右到左


序列的操作
序列和字符串
·序列切片操作
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
c
d
e
f
g
h
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
'abcd' #从左到右
'hgf' #从右到左
'bcdefgh' #从左到右
'ba' #从右到左
'efgh' #从左到右
'edcda' #从右到左
3.切取部分的对象
1.start 和 end 都为正数(+)
Str[ : 4 ]
Str[ : 4 : -1 ]
Str[ 1 : ]
Str[ 1 : :-1 ]
Str[ 4 : ]
Str[ 4 : :-1 ]
2.start 和 end 都为负数(-)
Str[ -1 : -4 ]
Str[ -1: -4 : -1 ]
'' #从右到左
'hgf ' #从右到左


序列的操作
序列和字符串
·序列切片操作
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
c
d
e
f
g
h
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
'efg' #从左到右
'abcd' #从左到右
'hgf' #从右到左
'efgh' #从左到右
'edcda' #从右到左
Str[ -4 : -1 ]
Str[ : -4 ]
Str[ : -4 : -1 ]
Str[ -4 : ]
Str[ -4 : :-1 ]
3.start 和 end 为正数(+)、负数(-)混合索引的情况
Str[ 1 : -4 ]
Str[ 1: -4 : -1 ]
Str[ -1 : 4 ]
Str[ -1 : 4:-1 ]
'abcd' #从左到右
'' #从左到右
'' #从右到左
'hgf' #从右到左
2.start 和 end 都为负数(-)


序列的操作
序列和字符串
·序列切片操作
总结:
1. start 、end 和 step 三者都可正可负。但是需遵循一个原则:
start 表示实际位置在 end 的左边,则是从左到右取值,step 必须为正
start 表示实际位置在 end 的右边,则是从右到左取值,step 必须为负
2. start 或 end 缺省时,取值的方向由 step 的正负决定的。此时不会出现取空的情况。
3. step 的正负是必须要考虑的,尤其是当 step 省略时。
4. 当取单个元素(如Str[0])时,返回的是对象的某个元素,其类型由元素本身的类型决定。而切片操作时,返回结果的类型与母对象相同。


序列的操作
序列和字符串
·序列切片操作
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
c
d
e
f
g
h
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1
4.多层切片操作
Str[ : 6 ][ -2 : : -1 ][ 1 : 3 ] = “dc”
相当于
Str[ : 6 ] = “abcdef”
Str[ : 6 ][ -2 : : -1 ] = “edcba”
Str[ : 6 ][ -2 : : -1 ][ 1 : 3 ] = “dc”
5.切片操作的三个参数可以用表达式
Str[ 1 + 1 : 3 * 2 : 6 % 4 ] = “ce”


序列的操作
序列和字符串
·序列切片操作
6.常用操作
1.取偶数位置
a = List[ : : 2 ]
2.取奇数位置
a = List[ 1 : : 2 ]
3.修改单个元素
List[ 3 ] = “MN”
4.在某个位置插入元素
List[ 3 : 3 ] = “MN”
5.替换一部分元素
List[ 3 : 6 ] = “MN”
List=['a','b','c','MN','e','f','g','h']
List=['a','b','c','MN','d','e','f','g','h']
List=['a','b','c','MN','g','h']
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}[
'a'
'b'
'c'
'd'
'e'
'f'
'g'
'h'
]
0
1
2
3
4
5
6
7
-8
-7
-6
-5
-4
-3
-2
-1


序列的操作
序列和字符串
·序列相加操作
Python 中,支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。
例如:
Str = “word”
name = “frist”+ ”next”
print( Str + name + “list”)
输出结果:
fristnestwordlist


序列的操作
序列和字符串
·序列相乘操作
Python 中,使用数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果。
例如:
Str = “word”
print( Str * 3 )
输出结果:
wordwordword
注意:
列表类型在进行乘法运算时,还可以实现初始化指定长度列表的功能。
例如:
list = [None] * 5
print( list )
输出结果:
[None, None, None, None, None]


序列的操作
序列和字符串
·检查元素是否包含在序列中
Python 中,可以使用 in 关键字检查某元素是否为序列的成员.
语法格式:
value in sequence
value :要检查的元素
sequence :指定的序列
例如:
Str = "abcdefg"
print( 'c' in Str )
输出结果:
True
注意:
not in 关键字和 in 关键字用法相同,但功能恰好相反的
例如:
Str = "abcdefg"
print( 'c' not in Str )
输出结果:
False


序列的操作
序列和字符串
·和序列相关的内置函数
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}函 数
功 能
len()
计算序列的长度,即返回序列中包含多少个元素。
max()
找出序列中的最大元素。
min()
找出序列中的最小元素。
list()
将序列转换为列表。
str()
将序列转换为字符串。
sum()
计算元素和。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。
sorted()
对元素进行排序。
reversed()
反向序列中的元素。
enumerate()
将序列组合为一个索引序列,多用在 for 循环中。


字符串
序列和字符串
·创建
字符串是 Python 中最常用的数据类型。
常用单引号(‘)和双引号(“)来创建。
例如:
var1 = 'Hello World!'
var2 = "Python"
·访问字符串中的值
使用[ ]来截取字符串。即:序列的索引和切片操作。
·字符串更新
Python中,不允许直接对字符串修改元素。需先放入容器(如列表)中再对容器内元素修改,最后用join()函数连接,完成对字符串元素的修改。


字符串
序列和字符串
·转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 【\】 转义字符。
详细的介绍,我们已经在《数据与数据类型》中学习过了。
·字符串运算符
+ :字符串连接
* :重复输出字符串
% :格式字符串
[ ]、[ : ] :获取字符串中字符
in、not in :成员运算符
r/R :原始字符串 - 抑制转义字符的实际含义。例如:print(r'\n') 或者 print(R'\n') 将打印 \n,要注意的是如果不加 r 或 R 作为前缀,打印的结果就是一个换行。


字符串
序列和字符串
·字符串格式化运算符( % )
详细的介绍,我们已经在《输入和输出函数》中学习过了。
·Python三引号
Python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
详细的介绍,我们已经在《基础语法》中学习过了。
·字符串存储方式
在Python3.x中,所有的字符串都是Unicode字符串。(例如:u”字符串”)
Unicode字符串就是将普通字符串给标准化了,它为 每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode字符串则存储为16位unicode字符串


字符串的常用方法
序列和字符串
·字符串拼接
1.直接拼接
1)直接将两个字符串常量紧挨着写在一起就可以了。
例如:
strname = "str1" "str2"
2)使用逗号运算符【,】,可以拼接字符串常量和变量
例如:
strname = "str1", "str2"
2.若有变量,则需【+】运算符拼接
【+】运算符也能拼接字符串常量
例如:str1 = “Python”
strname = str1 + “语言”
strname = “str1str2”
strname = “Python语言”
strname = “str1str2”


字符串的常用方法
序列和字符串
·字符串拼接
3.字符串和数字的拼接
在 Python 中,不允许直接拼接数字和字符串,所以需通过函数 str() 把数字转化成字符串,再拼接。
例如:
str1 = “Python”
strname = str1 + str( 3 )
4.使用 join() 方法合并字符串
join() 会将列表(或元组)中多个字符串采用固定的分隔符连接在一起。
例如:
list = [“Python”,”语言”,”课件” ]
strname = '_'.join( list )
strname = “Python3”
strname = “Python_语言_课件”


字符串的常用方法
序列和字符串
·len( )函数
·功能
获得字符串长度,或者获取一个字符串占用的字节数
·语法格式
len(string)
1)获得字符串长度
例如:
count_n = len("Python")
2)获取一个字符串占用的字节数
在 Python 中,不同的字符所占的字节数不同
1.数字、英文字母、小数点、下划线以及空格:一个字节
2.一个汉字: 2~4 个字节,具体字节数,取决于采用的编码方式
count_n = 6


字符串的常用方法
序列和字符串
·len( )函数
2)获取一个字符串占用的字节数
1.在 GBK/GB2312 编码中一个汉字占用 2 个字节
例如:
str1 = "人生苦短,我用Python"
count_n = len(str1.encode('gbk'))
2.在 UTF-8 编码中一个汉字一般占用 3 个字节
(Python 3.x 默认采用 UTF-8 编码格式)
例如:
str1 = "人生苦短,我用Python"
count_n = len(str1.encode())
count_n = 20
count_n = 27


字符串的常用方法
序列和字符串
·count( )函数
·功能
用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。
·语法格式
n = Str.count( sub [, start [, end ] ] )
1.Str:表示原字符串;
2.sub:表示要检索的字符串;
3.start:指定检索的起始位置。若缺省,默认从 0 开始检索;
4.end:指定检索的终止位置。若缺省,则表示一直检索到结尾。
例如:Str = "ab.cd.ef"
n_1 = Str.count('.',3,6)
n_2 = Str.count('.',3,-2)
n_1 = 1
n_2 = 1
注意:
检索一定是从左到右,否则返回 0


字符串的常用方法
序列和字符串
·find( )函数
·功能
用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。
·语法格式
n = Str.find( sub [, start [, end ] ] )
1.Str:表示原字符串;
2.sub:表示要检索的字符串;
3.start:指定检索的起始位置。若缺省,默认从 0 开始检索;
4.end:指定检索的终止位置。若缺省,则表示一直检索到结尾。
例如:Str = "ab.cd.ef"
n_1 = Str.find('.',3,4)
n_2 = Str.find('.',3,-2)
n_1 = -1
n_2 = 5
注意:
find检索是从左到右,
rfind检索是从右到左


字符串的常用方法
序列和字符串
·index( )函数
·功能
用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则会抛出异常。
·语法格式
n = Str.index( sub [, start [, end ] ] )
1.Str:表示原字符串;
2.sub:表示要检索的字符串;
3.start:指定检索的起始位置。若缺省,默认从 0 开始检索;
4.end:指定检索的终止位置。若缺省,则表示一直检索到结尾。
例如:Str = "ab.cd.ef"
n_1 = Str.index('.',3,4)
n_2 = Str.index('.',3,-2)
ValueError
n_2 = 5
注意:
index检索是从左到右,
rindex检索是从右到左


字符串的常用方法
序列和字符串
·字符串大小写转换的函数及用法
1.title()函数
·功能
用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,返回转换得到的字符串。
·语法格式
string_1= Str.title()

例如:str1 = "ab.cD.eF"
str2 = "I Love Python。"
string_1 = str1.title( )
string_2 = str2.title( )
string_1=”Ab.Cd.Ef”
string_2 =“I Love Python。”


字符串的常用方法
序列和字符串
·字符串大小写转换的函数及用法
2.lower()函数
·功能
用于将字符串中的所有大写字母转换为小写字母,返回转换得到的字符串。
·语法格式
string_1= Str.lower()

例如:str1 = "ab.cd.ef"
str2 = "I Love Python。"
string_1 = str1.lower( )
string_2 = str2.lower( )
string_1=”ab.cd.ef”
string_2 =“i love python。”


字符串的常用方法
序列和字符串
·字符串大小写转换的函数及用法
3.upper()函数
·功能
用于将字符串中的所有小写字母转换为大写字母,返回转换得到的字符串。
·语法格式
string_1= Str.upper()

例如:str1 = "ab.cd.ef"
str2 = "I Love Python。"
string_1 = str1.upper( )
string_2 = str2.upper( )
string_1=”AB.CD.EF”
string_2 =“I LOVE PYTHON。”


字符串的常用方法
序列和字符串
·split( )函数
·功能
用于拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)。
·语法格式
list = Str.split(sub,num)[n]
1.Str:表示原字符串;
2.sub:表示为分隔符,默认为空格,但是不能为空('');若字符串中没有分隔符,则把整个字符串作为列表的一个元素
3.num:表示分割次数;如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
4.[n]:表示选取第n个分片;
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略


字符串的常用方法
序列和字符串
·split( )函数
例如:
Str = “I LOVE PYTHON !”
list1 = Str.split( )
list2 = Str.split( '.')
list3 = Str.split( ' ',0 )
list4 = Str.split( ' ',2 )
list5 = Str.split( ' ',-1 )
list6 = Str.split( ' ',2 )[ 1 ]
list7,list8,list9 = Str.split( ' ',2 )
list1= ['I','LOVE','PYTHON','!']
list7 = 'I'
list8 = 'LOVE'
list9 = 'PYTHON !'
list2 = ['I LOVE PYTHON !']
list3 = ['I LOVE PYTHON !']
list4 = [['I','LOVE','PYTHON !']
list5 = ['I','LOVE','PYTHON','!']
list6 = 'LOVE'


字符串的常用方法
序列和字符串
·os.path.split( )函数
·功能
用于按照路径将文件名和路径分割开。
·语法格式
tup= os.path.split('PATH')
1.PATH:指一个文件的全路径作为参数
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和为空文件名
例如:import os
tup1 = os.path.split('/test/soft/python/')
tup2 = os.path.split('/dodo/soft/python')
tup1= ('/dodo/soft/python', '')
tup2= ('/dodo/soft', 'python')


字符串的常用方法
序列和字符串
·删除字符串中多余的空格和特殊字符
·strip():删除字符串前后(左右两侧)的空格或特殊字符。
·lstrip():删除字符串前面(左边)的空格或特殊字符。
·rstrip():删除字符串后面(右边)的空格或特殊字符。
·语法格式
str1 = Str.strip([chars])
str2 = Str.lstrip([chars])
str3 = Str.rstrip([chars])
1.Str:原字符串
2.[chars] :要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。
例如:Str = 'I LOVE PYTHON!\n\t\r'
str1 = Str.strip()
str2 = Str.strip(" \r\t")
str1= 'ILOVEPYTHON!'
str2= 'I LOVE PYTHON!\n'


字符串的常用方法
序列和字符串
·字符串对齐方法
·ljust():向指定字符串的右侧填充指定字符,从而达到左对齐。
·rjust():向指定字符串的左侧填充指定字符,从而达到右对齐。
·center():向指定字符串的左右两侧填充指定字符,从而达到文本居中。
·语法格式
str1 = Str.ljust(width[, fillchar])
str2 = Str.rjust(width[, fillchar])
str3 = Str.ljust(center[, fillchar])
1.Str:原字符串
2.width:表示包括str本身长度在内,字符串要占的总长度;
3.fillchar:用来指定填充字符串时所用的字符,默认情况使用空格。
例如:Str = 'I LOVE PYTHON!'
str1 = Str.ljust(18,'-')
str2 = Str.center(18)
str1= 'I LOVE PYTHON!----'
str2= ' I LOVE PYTHON! '


字符串的常用方法
序列和字符串
·startswith( )函数
·功能
用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。
·语法格式
Bool_1= Str.startswith(sub [,start[,end]])
1.Str:表示原字符串;
2.sub:表示要检索的子串
3.start:表示指定检索开始的起始位置索引,若缺省,则默认从 0 开始检索;
4.end:表示指定检索的结束位置索引,若缺省,则默认一直检索到结束;
例如:Str = 'I LOVE PYTHON!'
Bool_1 = Str.startswith('O',4)
·endswith( )函数
用于检索字符串是否以指定字符串结尾,如果是返回 True;反之返回 False。
其用法和startswith一样。
Bool_1 = True


字符串的常用方法
序列和字符串
·字符串编码转换
·encode():将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
·decode():将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
·语法格式
bytes = Str.encode([encoding="utf-8"][,errors="strict"])
str1 = Str.decode([encoding="utf-8"][,errors="strict"])
1.Str:原字符串
2.encoding:表示采用的编码格式,默认采用 utf-8 编码;
3.errors:指定错误处理方式,默认值为 strict。
例如:Str = 'Python语言'
bytes = Str.encode()
str1= Str.encode().decode()
bytes= 'b'Python\xe8\xaf\xad\xe8\xa8\x80''
str1= 'Python语言'


字符串的常用方法
序列和字符串
·其他函数(例:str1.isspace( ))
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}函数
描述
capitalize()
将字符串的第一个字符转换为大写
swapcase()
将字符串中大写转换为小写,小写转换为大写
replace(old, new [, max])
将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
isalnum()
至少有一个字符,并且所有字符都是字母或数字则返 回 True,否则返回 False
isalpha()
至少有一个字符,并且所有字符都是字母或中文字则返回 True, 否则返回 False
islower()
至少有一个字符,并且所有字符都是小写,则返回 True,否则返回 False
isupper()
至少有一个字符,并且所有字符都是大写,则返回 True,否则返回 False
isspace()
只包含空白,则返回 True,否则返回 False.
isdigit()
只包含数字则返回 True 否则返回 False..
isnumeric()
只包含数字字符,则返回 True,否则返回 False
isdecimal()
只包含十进制字符,如果是返回 true,否则返回 false。
istitle()
字符串是标题化的,则返回 True,否则返回 False


字符串的常用方法
序列和字符串
·思考
在现阶段的学习中,直接让我们调用字符串的常用函数是不常出现的。也就意味着我们需要用其他的方法来实现这些常用函数的功能。我想在今后的考试中,这会是考字符串的一大考点。
当然我们对字符串的常用函数也必须要了解其功能。
例如:
请编写一个Python程序,实现 lower 函数的功能。
代码:
str1 = input("请输入字符")
s = ''
list1 = list(str1)
for i in range(len(list1)):
if list1[i] >= 'A' and list1[i] <= 'Z':
list1[i] = chr(ord(list1[i]) + 32)
for i in range(len(list1)):
s += list1[i]
print(s)
输出结果:
请输入字符:ABC123! sdDFS
abc123! sddfs


字符串的常用方法
序列和字符串
·作业
请思考编写Python程序,实现capitalize()函数、center()函数、count()函数、startswith()函数、endswith()函数、title()函数、lower()函数、upper()函数、find()函数、index()函数、strip()函数等