3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)

2024-08-19
| 26页
| 193人阅读
| 42人下载
普通

内容正文:

第3章 字符串 1 学习目标/Target 掌握字符串的定义方式,能够准确定义字符串 掌握字符串的索引和切片,能够通过索引和切片获取字符串的子串 掌握字符格式化方式,能够通过%、format()和f-string格式化字符串 2 学习目标/Target 掌握字符串的处理函数,能够通过len()函数和ord函数实现特定功能 掌握字符串的处理方法,能够根据需要选择合适的方法处理字符串 熟悉字符串的运算符,能够通过+和*运算符实现字符串的拼接和复制 3 章节概述/ Summary 日常生活中经常会看见一些文本类型的数据,比如电子邮件、评论、个人资料等,这些数据的内容形式比较复杂,包括字母、数字、标点符号、特殊符号、汉字等,程序中使用字符串表示这些信息。本章将针对字符串的内容进行详细讲解。 4 目录/Contents 01 字符串的定义 字符串的索引和切片 字符串格式化 实例:制作高铁名片 02 03 04 5 目录/Contents 05 字符串运算符 字符串处理函数 字符串处理方法 06 07 实例:文本检测程序 08 6 字符串的索引与切片 3.2 7 3.2 字符串的索引和切片 Python中字符串可以包含多个字符,这些字符按一定顺序排列,每个字符所在的位置有着固定的编号,以便用户通过该编号访问它们,这些位置编号被称为索引或者下标。 按照不同的方向,索引分为正向索引和逆向索引。 正向索引的值从0开始,逆向索引的值从-1开始。 8 3.2 字符串的索引和切片 通过索引可以其对应的单个字符,使用方式为“字符串[索引]”。 words = '精诚所至金石为开' char_one = words[1] # 获取索引为1的字符“诚” char_two = words[-7] # 获取索引为-7的字符“诚” 9 3.2 字符串的索引和切片 通过切片从字符串中截取子串,切片的语法格式如下。 字符串[起始索引:结束索引:步长] 起始索引:表示截取字符的起始位置,取值可以是正向索引或逆向索引。 结束索引:表示截取字符的结束位置,取值可以为正向索引或逆向索引。 步长:表示每隔指定数量的字符截取一次字符串,取值可以是正负整数,默认值为1。若步长为正整数,则会按照从左到右的顺序取值;若步长为负整数,则会按照从右到左的顺序取值。 需要注意的是,切片截取的子串包含起始索引对应的字符,但不包含结束索引对应字符。 10 3.2 字符串的索引和切片 切片的示例如下: print(words[:5]) # 获取从索引0到索引5之前的子串 print(words[5:]) # 获取从索引5到末尾的子串 print(words[4:6]) # 获取从索引4到索引6之前的子串 print(words[::2]) # 获取从索引0到末尾、步长为2的子串 print(words[-4:-2]) # 获取从索引-4到索引-2之前的子串 print(words[-4:6]) # 获取从索引-4到索引6之前的子串 精诚所至金 石为开 金石 精所金为 金石 金石 运行 结果 11 3.2 字符串的索引和切片 值得一提的是,Python中的字符串与其他编程语言不同,它是不可变的,一旦定义完成后不能被修改。如果尝试给某个索引对应的字符重新赋值时,则会出现语法错误信息。 words[3] = ',' TypeError: 'str' object does not support item assignment 运行代码,结果如下: 12 字符串格式 3.3 13 3.3.1 使用格式符%格式化字符串 在使用格式符对字符串格式化时,Python会使用一个带有格式符的字符串作为模板,这个格式符用于为真实值预留位置,并说明真实值应该呈现的格式。 "我叫%s" % "小明" 使用一个元组将多个真实值传递给字符串模板,元组中的每个值对应着一个格式符。 "我叫%s,今年%d岁了" % ("小明", 18) 14 Python还支持更多类型的格式符,每种格式符适用于不同的数据类型。 格式符 功能说明 %c 格式化单个字符及其ASCII码 %s 格式化字符串 %i或%d 格式化有符号的十进制整数 %o 格式化有符号的八进制整数 %x 格式化有符号的十六进制整数 %e 格式化科学计数法表示的浮点数,以e为底数 %E 格式化科学计数法表示的浮点数,以E为底数 %f 格式化十进制表示的浮点数 3.3.1 使用格式符%格式化字符串 15 当使用多个格式符对字符串进行格式化时,还可以通过字典传值,这时需要先以“(name)”形式对变量进行命名,每个命名对应字典的一个键,示例如下: format_string = "我叫%(name)s,今年%(age)d岁了" % {"name": "小明", "age": 18} print(format_string) 运行代码,结果如下所示。 我叫小明,今年18岁了 3.3.1 使用格式符%格式化字符串 16 3.3.2 使用format()方法格式化字符串 使用format()方法格式化字符串的语法格式如下: 模板字符串.format(值0, 值1, ...) format_string = "我叫{},今年18岁了".format("小明") print(format_string) 我叫小明,今年18岁了 示例代码: 运行结果: 17 3.3.2 使用format()方法格式化字符串 如果模板字符串中有多个符号{},并且{}内没有指定任何值的序号,则默认{}内的序号与值的顺序是互相对应的,序号从0开始递增,此时会按照从左到右的顺序依次用值替换。 18 3.3.2 使用format()方法格式化字符串 如果模板字符串的{}内明确指定了值的序号,则需要按照序号使用相应的值进行替换。 19 3.3.2 使用format()方法格式化字符串 在format()方法中,模板字符串的{}内除了参数序号以外,还可以加入其他控制信息,以便能定制更丰富的格式。{}内加入控制信息的语法格式如下: {<值序号>:<格式控制标记>} 格式控制标记包括<填充>、<对齐>、<宽度>、<,>、<.精度>、<类型>这六个字段,这些字段都是可选的,可以组合使用。 20 3.3.2 使用format()方法格式化字符串 (1)<填充>字段是一个字符,默认使用空格填充。 (2)<对齐>字段分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。 (3)<宽度>字段用于指定值转换字符串后字符串的宽度,如果设定的宽度值比字符串的实际长度小,则使用字符串的实际长度,否则就使用设定的宽度值。 words = "design" print("{:10}".format(words)) # 左对齐,填充空格至宽度为10 print("{:>10}".format(words)) # 右对齐,填充空格至宽度为10 print("{:@^10}".format(words)) # 居中对齐,填充@至宽度为10 print("{:@^1}".format(words)) # 宽度小于words的实际长度 design design @@design@@ design 运行 结果 21 3.3.2 使用format()方法格式化字符串 (4)<,>字段用于显示数字类型的千位分隔符。 words = 31415926 print("{0:,}".format(words)) # 显示千位分隔符 运行代码,结果如下所示。 31,415,926 22 3.3.2 使用format()方法格式化字符串 (5)<.精度>字段以小数点开头,适用于浮点数和字符串,如果值是浮点数,则精度表示小数部分输出的有效位数;如果值是字符串,精度表示输出字符串的最大长度。 运行代码,结果如下所示。 words = 3.1415926 print("{:.5f}".format(words)) # 输出浮点数,保留5位小数 words = "design" print("{:.5}".format(words)) # 字符串的长度为5 3.14159 desig 23 3.3.2 使用format()方法格式化字符串 (6)<类型>字段用于控制整型和浮点型的值的格式规则。 c:输出整型对应的Unicode字符; d:输出整型的十进制形式; o:输出整型的八进制形式; x:输出整型的十六进制形式; e:输出浮点数对应的小写字母e的指数形式; E:输出浮点数对应的大写字母E的指数形式; f:输出浮点数的标准形式; %:输出浮点数的百分比形式。 针对整型的输出格式 针对浮点型的输出格式 24 3.3.2 使用format()方法格式化字符串 (6)<类型>字段用于控制整型和浮点型的值的格式规则。 整型和浮点型输出格式的示例如下: print("{:c}".format(97)) # 输出97对应的Unicode字符 print("{:x}".format(11)) # 输出十六进制形式的整数 print("{:E}".format(1568.736)) # 输出科学计数法形式的浮点数 print("{:%}".format(0.80)) # 输出浮点数的百分比形式 a b 1.568736E+03 80.000000% 运行 结果 25 3.3.3 使用f-string格式化字符串 f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实值所在位置。 f"{变量名}" 或F"{变量名}" 使用f-string格式化字符串,示例如下: name = "小明" age = 18 format_string = f'我叫{name},今年{age}岁了' print(format_string) 我叫小明,今年18岁了 代码运行结果: 26 $$

资源预览图

3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
1
3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
2
3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
3
3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
4
3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
5
3.2字符串的索引与切片(课件)-《程序设计基础(Python)》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。