《Python程序设计任务驱动教程》 课件-第4章 字符串_第1页
《Python程序设计任务驱动教程》 课件-第4章 字符串_第2页
《Python程序设计任务驱动教程》 课件-第4章 字符串_第3页
《Python程序设计任务驱动教程》 课件-第4章 字符串_第4页
《Python程序设计任务驱动教程》 课件-第4章 字符串_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章字符串《Python程序设计任务驱动教程》学习目标/Target

掌握字符串的定义方式,能够准确定义字符串类型的变量

掌握格式化字符串的方式,能够使用%、format()和f-string格式化字符串

掌握字符串的分割操作,能够使用split()方法实现字符串的分割操作

掌握字符串的拼接操作,能够使用join()方法或+运算符实现字符串的拼接操作学习目标/Target

熟悉字符串的索引和切片,能够使用索引和切片访问字符串的字符或子串

掌握字符串的查找与替换,能够使用find()与replace()方法查找与替换字符串

掌握字符串长度的计算方式,能够使用len()函数实现计算字符串的长度

掌握字符串大小写转换,能够使用upper()与lower()方法实现字符串大小写转换学习目标/Target

掌握count()方法的使用,能够使用count()方法实现子串出现次数统计操作

掌握strip()、lstrip()和rstrip()方法,能够使用它们删除头部或尾部的指定字符

掌握center()、ljust()和rjust()方法的使用,能够使用它们实现字符串的对齐

掌握字符判断方法的使用,能够使用这些方法对字符串中的字符进行判断章节概述/Summary日常生活中我们经常会看见一些文本类型的信息,比如电子邮件、评论、个人资料等,程序中若需要保存这些信息,可以使用字符串保存。本章将通过6个任务对字符串相关的知识进行详细讲解。目录/Contents任务4-1制作名片任务4-2日期格式转换任务4-3过滤不良词语目录/Contents任务4-4考勤管理任务4-5古诗排版工具任务4-6密码强度检测制作名片任务4-1任务描述本任务要求将用户输入的姓名、职位、电话、邮箱,套用统一格式的模板制作成一张个人名片。名片模板的格式如下。【任务目标】=============================姓名:XXXXXXXXXX职位:XXXXXXXXXX电话:XXXXXXXXXX邮箱:XXXXXXXXXX=============================知识储备掌握字符串的定义方式,能够准确定义字符串类型的变量掌握特殊字符的处理方式,能够处理字符串中包含的特殊字符学习目标1.字符串定义知识储备1.字符串定义字符串是由字母、符号、数字或汉字组成的字符序列,Python支持使用单引号、双引号和三引号(包括三单引号和三双引号)定义字符串。'使用单引号定义的字符串' #使用单引号定义字符串"使用双引号定义的字符串" #使用双引号定义字符串"""使用三双引号定义的字符串""" #使用三双引号定义字符串知识储备1.字符串定义如果字符串的内容中包含单引号,例如,英文语句let‘slearnPython,这时若仍然使用单引号定义包含该英文语句的字符串,则Python解释器会将let’slearnPython中的单引号与定义字符串的第一个单引号进行配对,认为字符串的内容至此结束,因此会出现语法错误。File"E:/python_study/test.py",line1print('let'slearnPython')^SyntaxError:invalidsyntaxprint('let'slearnPython')let'slearnPythonlet'slearnPythonprint("let'slearnPython")print("""let'slearnPython""")正确定义错误定义知识储备掌握格式化字符串的方式,能够熟练地使用%格式化字符串学习目标2.使用%格式化字符串知识储备2.使用%格式化字符串格式化字符串是指将指定的字符串转换为想要的格式。字符串具有一种特殊的内置操作,它可以使用%进行格式化。format%values语法格式format:需要被格式化的字符串,该字符串中包含单个或多个真实数据占位的格式符。values:单个或多个真实数据,多个真实数据以元组的形式进行存储。%:执行格式化操作,即将format中的格式符替换为values。知识储备2.使用%格式化字符串格式符说明%c将对应的数据格式化为字符%s将对应的数据格式化为字符串%d将对应的数据格式化为整数%u将对应的数据格式化为无符号整型%o将对应的数据格式化为无符号八进制数%x将对应的数据格式化为无符号十六进制数%f将对应的数据格式化为浮点数,可指定小数点后的精度,默认保留6位小数常见的格式符真实数据被转换的类型知识储备2.使用%格式化字符串示例:字符串中有一个格式符age=10format_str='我今年%d岁。'print(format_str%age)示例:字符串中有多个格式符name='小明'age=10format_str='我叫%s,今年%d岁。'print(format_str%(name,age))需要注意的是,如果被格式化数据的类型不能转换为格式符中指定的数据类型,那么程序会出现类型错误。知识储备

3.使用format()方法格式化字符串掌握format()方法的使用,能够熟练地使用format()方法格式化字符串学习目标知识储备虽然使用%可以对字符串进行格式化操作,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。

3.使用format()方法格式化字符串知识储备str.format(values)语法格式str:表示需要被格式化的字符串,字符串中包含单个或多个为真实数据占位的符号{}。values:表示单个或多个待替换的真实数据,多个数据之间以逗号分隔。

3.使用format()方法格式化字符串知识储备示例:字符串中有一个占位符{}示例:字符串中有多个占位符{}name='小明'age=25string='我叫{},今年{}岁。'print(string.format(name,age))name='小明'string='我叫{}'print(string.format(name))

3.使用format()方法格式化字符串知识储备示例:占位符{}中指定编号示例:占位符{}中指定变量名称name='小明'age=25string='我叫{name},今年{age}岁。'print(string.format(name=name,age=age))name='小明'age=25string='我叫{1},今年{0}岁。'print(string.format(age,name))示例:占位符{}中指定浮点型数据的精度points=19total=22print('所占百分比:{:.2%}'.format(points/total))

3.使用format()方法格式化字符串知识储备4.使用f-string格式化字符串掌握f-string的使用,能够熟练地使用f-string格式化字符串学习目标知识储备4.使用f-string格式化字符串f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以修饰符f或F引领字符串,在字符串的指定位置使用{变量名}标明被替换的真实数据。任务分析获取用户基本信息,包括姓名、职位、电话和邮箱。插入用户基本信息。实现思路=============================姓名:XXXXXXXXXX职位:XXXXXXXXXX电话:XXXXXXXXXX邮箱:XXXXXXXXXX=============================上分割线用户基本信息下分割线任务实现1.创建项目Chapter04及01_visitingcard.py文件。2.在01_visitingcard.py文件中编写代码。获取用户的基本信息。插入用户的基本信息。3.运行01_visitingcard.py文件。实现步骤日期格式转换任务4-2任务描述日期一般有多种表现形式,比如2022年2月4日、2022-2-4、2022/2/4、2022.2.4。本任务要求编写代码,将各种表现形式的日期均转换为“X年X月X日”的日期格式。【任务目标】知识储备掌握字符串的分割操作,能够使用split()方法实现字符串的分割操作学习目标1.字符串的分割知识储备1.字符串的分割str.split(sep=None,maxsplit=-1)语法格式sep:表示分隔符。如果没有指定分隔符或者为None,那么分隔符默认是所有空白字符或空字符串。maxsplit:分割次数,默认值为-1,表示不限制分割次数。split()方法可以按照指定分隔符对字符串进行分割,该方法的返回值是一个列表,用于保存分割后的的字符串。知识储备1.字符串的分割string_example='Themoreeffortsyoumake,themorefortuneyouget.‘#以空格作为分隔符print(string_example.split())#以字母m作为分隔符

print(string_example.split('m'))#以字母e作为分割符,并分割2次print(string_example.split('e',2))示例下面以空格、字母m和字母e为分隔符对字符串“Themoreeffortsyoumake,themorefortuneyouget.”进行分割。知识储备掌握字符串的拼接操作,能够使用join()方法或+运算符实现字符串的拼接操作学习目标2.字符串的拼接知识储备2.字符串的拼接str.join(iterable)语法格式

以上格式中,参数iterable表示可迭代对象,例如字符串、列表、元组、字典等都是可迭代对象。Python中有两种拼接字符串的方式,分别是join()方法和运算符“+”,其中join()方法用于将可迭代对象中的每个元素分别与指定的字符拼接,并生成一个新的字符串。知识储备2.字符串的拼接运算符“+”也可以拼接字符串,它会将两个字符串按先后顺序拼接后生成一个新的字符串。start='Py'end='thon'print(start+end)#使用+运算符拼接字符串任务分析利用split()方法将日期分割成包含年、月、日的列表。利用列表的索引取出年、月、日。按照“X年X月X日”的格式利用+运算符进行拼接。实现思路2022-2-42022/2/42022.2.4分隔符任务实现在Chapter04项目中创建02_dateformat.py文件。在02_dateformat.py文件中编写代码。运行02_dateformat.py文件。实现步骤过滤不良词语任务4-3任务描述在很多品牌宣传中有些用词过度宣传,没有客观依据证明,给消费者造成消费诱导。这种过度宣传的用词属于不良词语种类的一种。我们作为内容的生产者和发布者,都是形成网络语言生态的一份子,保持网络环境的健康纯洁,需要我们每个人从自身做起。任务描述本任务要求对一段文本进行检测,一旦文本中出现不良词语“最优秀”,就将不良词语替换成“较优秀”,从而实现过滤不良词语的功能。文本内容如下:【任务目标】我们拥有多年的品牌战略规划及标志设计、商标注册经验;专业提供公司标志设计与商标注册一条龙服务。我们拥有最优秀且具有远见卓识的设计师,使我们的策略分析严谨,设计充满创意。我们有信心为您缔造最优秀的品牌形象设计服务,将您的企业包装得更富价值。知识储备熟悉字符串的索引和切片,能够使用索引和切片访问字符串的字符或子串学习目标1.字符串的索引与切片知识储备1.字符串的索引与切片正向索引(1)索引字符串是一个由元素组成的序列,每个元素所处的位置是固定的,并且对应着一个位置编号,这个位置编号被称为索引或者下标。反向索引索引自0开始,从左至右依次递增索引自-1开始,从右至左依次递减知识储备1.字符串的索引与切片(1)索引通过索引可以获取字符串中指定位置的字符。字符串[索引]语法格式为了大家更好理解如何通过索引获取字符串中的指定字符,大家可以这么想象,每个字符都放在一个盒子中,索引相当于盒子的开口方向,开口方向均在盒子左侧。获取某个索引对应的字符,相当于从某个盒子获取字符。

需要注意的是,当通过索引访问字符串中的字符时,索引的范围不能越界,否则程序会报索引越界的异常。知识储备1.字符串的索引与切片(2)切片切片用于截取字符串中一部分子串。字符串[起始索引:结束索引:步长]语法格式起始索引:表示截取字符的起始位置(包含起始索引)。结束索引:表示截取字符的结束位置(不包含结束索引)。步长:表示每隔指定数量的字符截取一次字符串,取值正负数均可,默认值为1。若步长为正数,则会按照从左到右的顺序取值;若步长为负数,则会按照从右到左的顺序取值。需要注意的是,切片选取的区间属于左闭右开型,切下的子串包含起始索引,但不包含结束索引。知识储备掌握字符串的查找操作,能够使用find()方法实现字符串的查找操作学习目标2.字符串的查找知识储备2.字符串的查找Python中提供了实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含子串则返回子串首次出现的索引位置,否则返回-1。str.find(sub[,start[,end]])语法格式sub:指定要查找的子串。start:开始索引,默认为0。end:结束索引,默认为字符串的长度。知识储备掌握字符串的替换操作,能够使用replace()方法实现字符串的替换操作学习目标3.字符串的替换知识储备3.字符串的替换Python中提供了实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。str.replace(old,new[,count])语法格式old:被替换的旧子串。new:替换旧子串的新子串。count:表示替换旧字符串的次数,默认会替换字符串中的所有旧子串。知识储备3.字符串的替换示例:不指定替换次数string='AllthingsAredifficultbeforetheyAreeasy.'new_string=string.replace('Are','are')

print(new_string)示例:指定替换次数string='Hesaid,"youhavetogoforward,Thenturnleft,Thengoforward,andThenturnright."'new_string=string.replace('Then','then',2)

print(new_string)知识储备掌握len()函数的使用,能够熟练使用len()函数计算字符串长度学习目标4.计算字符串的长度知识储备4.计算字符串的长度Python中提供了计算字符串长度的函数len()。len(s)语法格式上述函数中,参数s表示待计算长度的序列,它的值可以是字符串、元组、列表等。#字符串中包含字母、数字、特殊符号string='ab23*&'print(len(string))#字符串中包含字母、数字、汉字string='ab23汉字'print(len(string))示例:计算字符串的长度任务分析通过find()方法查找目标词语。通过replace()方法替换目标词语。实现思路任务实现在Chapter04项目中创建03_bad_words.py文件。在03_bad_words.py中编写代码。定义3个变量分别保存待过滤的文本、最优秀和较优秀。通过find()方法查找不良词语“最优秀”。判断查找结果是否为-1。若查找结果不是-1,则通过replace()方法将“最优秀”替换为“较优秀”。运行03_bad_words.py文件。实现步骤考勤管理任务4-4任务描述为了避免公司员工发生早退、迟到、旷工等违纪行为,严肃工作纪律,有效提高员工工作的积极性和责任心,做到奖罚分明,某公司结合自身的实际情况制定了考勤管理制度。缺勤次数(A)迟到次数(L)奖罚金额002000L<=201L<=2-1002L<=2-200A>2/-500任务描述已知1月份的工作日为22天,假设用P代表考勤正常,员工小明1月份的出勤情况为PPPpPPPPLPPPPPPpPPPPPP。本任务要求读者编写程序,输出小明1月份是否可以拿到奖金。【任务目标】知识储备掌握字符串大小写转换操作,能够使用upper()与lower()方法对字符串中字母进行大小写转换学习目标1.字符串的大小写转换知识储备1.字符串的大小写转换在一些特定情况下会对英文单词的大小写形式有着特殊的要求。例如,专有名词的简称必须是全字母大写,包括CBA、CCTV等;英文人名的每个单词首字母必须大写,如ThomasAlvaEdison。知识储备1.字符串的大小写转换方法功能说明upper()将字符串中的小写字母全部转换为大写字母,并生成一个新的字符串lower()将字符串中的大写字母全部转换为小写字母,并生成一个新的字符串capitalize()将字符串中首个单词的首个字母转换为大写,其余字母转为小写,并生成一个新的字符串title()将字符串中每个单词的首字母转换为大写形式,其余字母转换为小写形式,并生成一个新的字符串大小写转换方法知识储备掌握子串出现次数统计方法的使用,能够使用count()方法实现子串出现次数统计操作学习目标2.子串出现次数统计知识储备2.子串出现次数统计Python中提供了用于统计字符串中子串出现次数的count()方法,count()方法的语法格式如下所示。str.count(sub[,

start[,

end]])语法格式sub:待统计出现次数的子串。start:开始索引,默认值为0,表示从头部的第一个字符开始搜索。end:结束索引,默认值为字符串长度,表示到尾部的最后一个字符停止搜索,统计结果不包括结束索引对应的字符。知识储备2.子串出现次数统计示例:统计字符串中'o'的出现次数string='hellowoRld'sub_str='o'#待统计出现次数的子串#从字符串的开头位置到结尾位置统计子串出现的次数print(string.count(sub_str))#从字符串中索引5处的位置到结尾位置统计子串出现的次数print(string.count(sub_str,5))#从字符串中索引5到索引7的范围内统计子串出现的次数print(string.count(sub_str,5,7))任务分析获取当月的出勤情况根据考勤管理制度处理当月的出勤情况考勤管理制度可以分成5种情况,这5种情况可以使用if-elif语句完成。在if-elif语句中,每个子句都需要通过count()方法统计字母A和字母L出现的次数。实现思路任务实现在Chapter04项目中创建04_attendance.py文件。在04_attendance.py中编写代码。定义两个变量分别保存工作日天数和出勤情况。使用if语句判断出去情况是否等于工作天数。若等于,则使用if-elif语句处理考勤管理制度的5种情况。若不等于,则输出考勤有误的提示信息。运行04_attendance.py文件。实现步骤古诗排版工具任务4-5任务描述古诗分为古体诗和近体诗,古体诗有四言体、五言体、七言体和杂言体等几种形式,近体诗包括绝句、律诗、排律这3种形式,常见的有五言绝句、七言绝句、五言律诗、七言律诗等。任务描述本任务要求读者从键盘输入古诗(包括四言诗、五言诗和七言诗)的标题、作者(包括朝代和姓名)和诗句(包括标点符号和汉字),并按照格式要求完成一个古诗排版工具。【任务目标】四言诗五言诗七言诗知识储备掌握删除头尾字符的方法,能够使用strip()、lstrip()和rstrip()方法删除字符串中头部或尾部的指定字符学习目标1.删除头尾的指定字符知识储备1.删除头尾的指定字符方法功能说明strip(chars)删除字符串头尾的指定字符chars,默认为空格lstrip(chars)删除字符串头部的指定字符chars,默认为空格rstrip(chars)删除字符串尾部的指定字符chars,默认为空格删除指定字符的方法知识储备1.删除头尾的指定字符示例:删除字符串中头部或尾部的空格old_string='Experienceisthebestteacher'strip_str=old_string.strip()#删除字符串头尾的空格lstrip_str=old_string.lstrip()#删除字符串头部的空格rstrip=old_string.rstrip()#删除字符串尾部的空格print(f'使用strip方法删除字符串头尾空格:{strip_str}。')print(f'使用lstrip方法删除字符串头部空格:{lstrip_str}。')print(f'使用rstrip方法删除字符串尾部空格:{rstrip}。')知识储备掌握字符串对齐方法的使用,能够使用center()、ljust()和rjust()方法实现字符串对齐学习目标2.字符串的对齐知识储备2.字符串的对齐方法功能说明center(width[,fillchar])返回长度为width的字符串,字符串居中显示ljust(width[,fillchar])返回长度为width的字符串,字符串左对齐显示rjust(width[,fillchar])返回长度为width的字符串,字符串右对齐显示字符串对齐的方法表格里面各方法都有相同的参数width和fillchar,其中参数width表示字符串的长度,如果参数width指定的长度小于或等于原字符串的长度,那么以上各方法会返回原字符串;参数fillchar表示填充的字符,默认为空格。知识储备2.字符串的对齐示例:对字符串进行对齐操作sentence='helloworld'center_str=sentence.center(13,'-') #长度为13,居中显示,使用-补齐ljust_str=sentence.ljust(13,'*') #长度为13,左对齐,使用*补齐rjust_st=sentence.rjust(13,'%') #长度为13,右对齐,使用%补齐print(f'居中显示:{center_str}')print(f'左对齐显示:{ljust_str}')print(f'右对齐显示:{rjust_st}')任务分析获取古诗的标题、作者和诗句。记录一行诗的字数。按范例样式排版古诗。实现思路任务实现在Chapter04项目中创建05_poetry_typesetting.py文件。在05_poetry_typesetting.py中编写代码。获取古诗的标题、作者和诗句。记录一行诗的字数。按范例样式排版古诗。运行05_poetry_typesetting.py文件。实现步骤密码强度检测任务4-6任务描述采用高强度密码是保障信息安全的手段之一。本任务要求完成一个密码强度检测程序,密码强度有四种级别,分别是弱、中、强和极强。级别级别分值级别要求弱1包含数字、大写字母、小写字母或符号中的一种字符长度小于8中2同时包含数字、大写字母、小写字母或符号中的两种字符长度不小于8强3同时包含数字、大写字母、小写字母或符号中的三种字符长度不小于8极强4同时包含数字、大写字母、小写字母和符号字符长度不小于8任务描述请编写程序,对用户输入的密码进行强度检测,并根据检测结果给予提示信息。【任务目标】知识储备掌握字符判断方法的使用,能够使用这些方法对字符串中的字符进行判断学习目标字符判断知识储备字符判断网站对用户填写的注册信息有着一定的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论