《Python程序设计》课件-第4讲 字符串_第1页
《Python程序设计》课件-第4讲 字符串_第2页
《Python程序设计》课件-第4讲 字符串_第3页
《Python程序设计》课件-第4讲 字符串_第4页
《Python程序设计》课件-第4讲 字符串_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

第4讲字符串字符串介绍格式化字符串字符串常见操作流程控制语句知识回顾作业解析课堂笔记学习目标本讲要点4.1字符串介绍思考:什么是字符串?4.1字符串介绍用户登录系统验证用户登录信息时,登录信息是如何验证的?什么是字符串4.1字符串介绍字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。'a'、'123'使用单引号使用双引号"a"、"123"使用三引号"""Hello"""Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。4.1字符串介绍Python使用反斜杠“\”转义。例如,在字符串中的引号前添加“\”,此时Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。print('let\'slearnPython')示例let'slearnPython结果4.1字符串介绍一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“\”和普通字符组合而成的具有特殊意义的字符就是转义字符。转义字符通常用于表示一些无法显示的字符,例如空格、回车等等。多学一招:转义字符转义字符代表含义\(在行尾时)反斜杠符号\\反斜杠符号\"

双引号\n换行\b

退格\t横向制表符多学一招:转义字符4.2格式化字符串字符串的输出比如有以下代码:print(“我今年10岁”)print(“我今年11岁”)print("我今年12岁")...可以通过字符串格式化来完成。大家试想一下,上述代码多次输出"我今年xx岁",是否有一种简化程序的方式呢?字符串的输出name="小明"age=12print("大家好,我叫%s,今年%d岁"%(name,age))下面是字符串的格式化输出格式化字符串是指将指定的字符串转换为想要的格式。Python字符串可通过%格式符格式化输出。format%values格式字符串真实数据4.2.1使用%格式化字符串不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。4.2.1使用%格式化字符串常见的格式化符号格式化符号转换%s

、%3s、%-3s通过str()字符串转换来格式化%d

、%4d、%-4d有符号十进制整数%f

、%8.2f、%-3.1f浮点实数数字——占位数,负号"-"表示左对齐,默认为右对齐小数——小数点前是占位数,小数点后为小数位数4.2.1使用%格式化字符串使用%对字符串进行格式化的方式不直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。str.format(values)格式字符串真实数据4.2.2使用format()方法格式化字符串str表示需要被格式化的字符串,字符串中包含单个或多个为真实数据占位的符号{};values表示单个或多个待替换的真实数据,多个数据之间以逗号分隔。4.2.2使用format()方法格式化字符串4.2.2使用format()方法格式化字符串format函数可以接受不限个参数,位置可以不按顺序。>>>"{}{}".format("hello","world")#不设置指定位置,按默认顺序'helloworld'>>>"{0}{1}".format("hello","world")#设置指定位置'helloworld'>>>"{1}{0}{1}".format("hello","world")#设置指定位置,三个占位符,2个实际参数'worldhelloworld'数字格式化本表展示了str.format()格式化数字的多种方法print("{:.2f}".format(3.1415926))f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。f('{变量名}')或F('{变量名}')格式4.2.3使用f-string格式化字符串age=20gender='男'print(f'年龄:{age},性别:{gender}')4.3精彩实例十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。本实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。4.3.1进制转换x=56

print(f"{x}的二进制是{bin(x)}")#f格式化

print("%d的八进制是%o"%(x,x))#%s格式化

print("{}的十六进制是{}".format(x,hex(x)))#format格式化4.3.1进制转换进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。本实例要求编写程序,实现如图所示的文本进度条。4.3.2文本进度条背景知识——字符串的运算符下表实例变量a值为字符串"Hello",b变量值为"Python":4.3.2文本进度条操作符描述实例+字符串连接a+b

结果:'HelloPython'*重复输出字符串a*2

结果:'HelloHello'[]通过索引获取字符串中字符,索引从0开始a[1]

结果:'e'[:]截取字符串中的一部分a[1:4]

结果:'ell'in成员运算符-如果字符串中包含给定的字符返回True"H"ina

结果:Truenotin成员运算符-如果字符串中不包含给定的字符返回True"M"notina

结果:Truer/R原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。printr'\n'

结果:\n

printR'\n'

结果:\n背景知识——怎么让程序睡一会儿?time库的sleep(t)函数,t——睡眠的秒数importtimetime.sleep(0.5)4.3.2文本进度条4.3.2文本进度条importtime

incomplete_sign=50#.的数量

print('='*23+'开始下载'+'='*25)

foriinrange(incomplete_sign+1):

completed="*"*i#表示已完成

incomplete="."*(incomplete_sign-i)#表示未完成

percentage=(i/incomplete_sign)*100#百分比

print("\r{:.0f}%[{}{}]".format(percentage,completed,incomplete),end="")

time.sleep(0.5)

print("\n"+'='*23+'下载完成'+'='*25)\r—退格键,回到行首,{:.0f}—输出0位小数4.4字符串的常见操作要点字符串的存储方式字符串中的每个字符都对应一个下标,下标编号是从0开始的。4.4字符串的常见操作补充知识:切片切片的语法格式如下所示:切片选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)[起始:结束:步长]4.4字符串的常见操作格式:

[start:stop:step]

截取子串假设有字符串name=“abcdef”,则:name[0:3]name[3:5]name[1:-1]name[2:])name[::-2]abcdebcdecdeffdb4.4字符串的常见操作start为负数,则从右端某一位置,开始向后截取stop为负数,则从右端某一位置,结束step为负数,则从右端向左提取元素使用切片4.4字符串的常见操作str='富强民主文明和谐,自由平等公正法治,爱国敬业诚信友善'

print(str[5:0:-1])截取子串使用切片4.4字符串的常见操作/python/python-strings.html——网络学习资源Python内置了很多字符串方法(其中:format()用于格式化字符串,find()用于查找子串),也叫内建函数。可轻松实现字符串查找、替换、拼接、大小写转换等。字符串一旦创建不可修改,修改会变成新的字符串。find()方法:该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。str.find(sub[,start[,end]])格式sub:指定要查找的子串。start:开始索引,默认为0。end:结束索引,默认为字符串的长度。word='t'string='Python'result=string.find(word)print(result)示例2结果4.4.1字符串的查找与替换replace()方法:将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。str.replace(old,new[,count])格式old:被替换的旧子串。new:替换旧子串的新子串。count:表示替换旧字符串的次数,默认全部替换。string='Hesaid,"youhavetogoforward,'\'Thenturnleft,Thengoforward,andThenturnright."'#指定替换两次new_string=string.replace("Then","then",2)print(new_string)示例Hesaid,"youhavetogoforward,thenturnleft,

thengoforward,andThenturnright."结果4.4.1字符串的查找与替换split()方法:按照指定分隔符对字符串进行分割,返回由分割后的子串组成的列表。str.split(sep=None,maxsplit=-1)格式sep:分隔符,默认为空字符。maxsplit:分割次数,默认值为-1,

表示不限制分割次数。string="Hello,mynameisWangHong"#以空格作为分割符,并分割2次print(string.split('',2))示例['Hello,','my','nameisWangHong']结果4.4.2字符串的分隔与拼接join()方法:使用将字符加入到指定字符串的中间并生成一个新的字符串。str.join(iterable)格式symbol='*'world='Python'print(symbol.join(world))示例P*y*t*h*o*n结果4.4.2字符串的分隔与拼接—加入iterable--原始“母”串,str--被加入的字符串Python还可以使用运算符“+”拼接字符串。“Py”“thon”+“Python”4.4.2字符串的分隔与拼接删除首尾空格:Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。4.4.3删除字符串的指定字符删除首尾指定字符,常用于删除空格4.4.3删除字符串的指定字符old_string='Lifeisshort,UsePython!'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}')在特定情况下会对英文单词的大小写形式进行要求,表示特殊简称时全字母大写,如CBA;表示月份、周日、节假日时每个单词首字母大写,如Monday。Python中支持字母大小写转换的方法有upper()、lower()、capitalize()和title()。4.4.4 字符串大小写转换4.4.4 字符串大小写转换old_string='hellowoRld'upper_str=old_string.upper()#字符串的字母转换为大写字母lower_str=old_string.lower()#字符串的字母转换为小写字母cap_str=old_string.capitalize()#字符串的首字母转换为大写字母title_str=old_string.title()#每个单词的首字母转换为大写字母print(f'upper方法:{upper_str}')print(f'lower方法:{lower_str}')print(f'capitalize方法:{cap_str}')print(f'title方法:{title_str}')在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。4.4.5字符串对齐4.4.5字符串对齐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}")4.5精彩实例2006年4月19日,中国互联

温馨提示

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

评论

0/150

提交评论