Python程序开发基础(AI+微课版)课件 项目3 字符串_第1页
Python程序开发基础(AI+微课版)课件 项目3 字符串_第2页
Python程序开发基础(AI+微课版)课件 项目3 字符串_第3页
Python程序开发基础(AI+微课版)课件 项目3 字符串_第4页
Python程序开发基础(AI+微课版)课件 项目3 字符串_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

项目3字符串项目内容创建字符串格式化字符串字符串操作010203项目目标知识目标熟悉字符串的创建熟悉字符串的格式化熟悉字符串的常用操作会创建字符串会利用字符串的格式化方法完成输出会利用字符串解决实际问题技能目标

创建字符串01字符串的定义

字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。譬如:

'helloitcast'"helloitcast""""mynameisitcastmynameisitcast"""定义字符串时单引号与双引号可以嵌套使用,需要注意的是,使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号,同样,使用单引号表示的字符串中不允许包含单引号。譬如:‘Hesaid“hello!goodmorning.”’创建字符串在Python语言中,可以通过多种方式创建字符串,最常用的方式是直接使用单引号“'”或双引号“"”将文本包围起来。此外,三引号“'''”或“"""”(也称DocStrings)可用于创建多行字符串。转义字符转义字符是指控制字符和特殊含义的字符。Python中允许使用以反斜杠“\”开头的转义字符来表示某些普通字符。转义字符含义转义字符含义\n换行\\字符串中“\”号本身\t制表符(Tab)\”字符串中双引号本身\r回车\ddd3位八进制数对应的ASCII码字符\’字符串中的单引号本身\xhh2位十六进制数对应的ASCII字符>>>print('Thisisafunction\nReturnatuple.\n')ThisisafunctionReturnatuple.>>>'\123'#3位八进制数对应的ASCII字符S'S'>>>'\x2f'#2位十六进制数对应的ASCII字符“/“'/'>>>'asdf\'hjk'"asdf'hjk"字符串编码

在Python3中,字符的默认编码是UTF-8码,它是以Unicode码作为基础。它是以1字节表示英文字符,以3字节表示中文及其他语言。Unicode码是不同编码格式之间相互转换的基础,是统一码。它以1字节表示英文字符,以3字节表示中文及其他语言。用户可以通过程序代码来查看自己的默认字符编码。用户可以通过程序代码来查看自己的默认字符编码。>>>importsys>>>print(sys.getdefaultencoding())utf-8字符串编码

Python中内置的ord()函数可以返回一个字符所对应的整数;内置的chr()函数可以把整数编码转换为对应的字符。>>>print(ord('A'))65>>>print(chr(65))A任务实践-判断密码强度

用户输入一个字符串作为密码,判断密码强度。规则为:密码长度小于8弱密码,密码长度大于等于8且包含至少两种字符为中等强度,密码包含三种字符为强,包含全部四种字符为极强。本实例要求编写程序,实现判断密码强度,密码强度的判断结果分四种:弱、中、强、极强。

在本任务中,可以将密码作为一个字符串定义、根据密码规则,分别为四种字符设定标识,然后利用多分支对输入的密封进行强度判断。任务实践-判断密码强度根据分析可整理出以下实现思路:(1)定义密码字符串。(2)根据密码规则设定各种不同字符的标识。(3)使用多分支根据标识和长度判断密码的强弱等级。代码如下:#判断密码强度psw=input('请输入密码:')upp,low,dig,oth=0,0,0,0forchinpsw:if'A'<=ch<='Z':upp=1elif'a'<=ch<='z':low=1

elif'0'<=ch<='9':dig=1else:oth=1iflen(psw)<8:print('弱')else:ifupp+low+dig+oth==4:print('极强')elifupp+low+dig+oth==3:print('强')elifupp+low+dig+oth==2:print('中')else:print('弱')字符串操作02字符串的常用操作字符串拼接>>>str_one=“人工智能下">>>str_two="我用Python。">>>str_one+str_two人工智能下我用Python。字符串重复>>>str1="Python">>>str1*3PythonPythonPython字符串的replace()方法可使用新的子串替换目标字符串中原有的子串,该方法的语法格式如下:字符串替换str.replace(old,new,count=None)

old

--

表示原有子串

new

--

表示新的子串count

--

用于设定替换次数字符串的find()方法可实现字符串的查找操作,该方法可查找字符串中是否包含子串,若包含子串则返回子串首次出现的索引位置,否则返回-1。其语法格式如下:str.find(sub[,start[,end]])这里:sub用于指定要查找的子串,start开始索引,默认值为0,end结束索引,默认为字符串的长度。字符串查找字符串对象的strip()方法一般用于去除字符串两侧的空格,该方法的语法格式如下:去除字符串两侧空格str.strip(chars=None)chars

--要去除的字符,默认为空格。字符串的split()方法可以使用分隔符把字符串分割成序列,该方法的语法格式如下:字符串分割str.split(sep=None,maxsplit=-1)sep

--分隔符,默认为空格maxsplit

--

用于设定分割次数。字符串大小写转换

有一些特殊情况需要对字符串的大小写形式有要求。Python中支持字符串的字母大小写转换的方法有upper()方法、lower()方法、capitalize()方法和title()方法。方法功能说明upper()将字符串中的小写字母全部转换为大写字母lower()将字符串中的大写字母全部转换为小写字母capitalize()将字符串中第一个字母转换为大写字母title()将字符串中每个单词的首字母转换为大写字母字符串索引与切片

字符串是一个由元素组成的序列,每个元素所处的位置是固定的,并且对应着一个位置编号,编号从0开始,依次递增1,这个位置编号被称为索引或者下标。索引自0开始从左至右依次递增,这样的索引称为正向索引;若索引自-1开始,从右至左依次递减,则索引为反向索引。字符串索引索引用于获取字符串中的一个字符,通过索引可以获取指定位置的字符。格式如下:字符串[索引]

当通过索引访问字符串值时,索引的范围不能越界,否则程序会报索引越界的异常。字符串切片切片可以获取一个字符串的子串,即一串字符。切片是截取目标对象中一部分的操作,格式如下:[起始:结束:步长]

切片步长默认为1。注意,切片选取的区间属于左闭右开型,切下的子串包含起始位,但不包含结束位。字符串索引切片实例1:验证码校验。用户登录网站经常需要输入验证码。验证码包含大小写英文字母和数字,随机出现。用户在输入验证码时不区分大小写,只要各字符出现的顺序正确即可通过验证。本实例要求编写程序完成验证码的匹配验证。

假设当前显示的验证码是‘Zy6K’,如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”。

代码如下:bb='Zy6K'sc=input()foriinrange(4):ifbb[i]==sc[i].upper()orbb[i]==sc[i].lower():f=1else:print('验证码错误,请重新输入')breakifi==3:print('验证码正确')任务实践-过滤敏感词

敏感词是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语。大部分网站、论坛、社交软件都会使用敏感词过滤系统,考虑到该系统的复杂性,这里使用字符串中的replace()方法模拟敏感词过滤,将含有敏感词的语句使用“*”符号进行替换。

本任务要求编写程序,实现替换语句中敏感词功能。任务实践-过滤敏感词(1)设定一个敏感词库(本任务敏感词库设定为一个字符串);(2)使用for循环遍历敏感词库;(3)遍历过程中,使用if语句判断用户输入的语句中是否含有敏感词,如果包含敏感词,则使用replae()方法将其替换为“*”;(4)将替换后的语句赋值给变量test_sentence;(5)在for循环外使用print()函数输出变量test_sentence。代码如下:sensitive='你好' #敏感词库test_sentence=input('请输入一段话:')forlineinsensitive: #遍历输入的字符是存在敏感词库中iflineintest_sentence: #判断是否包含敏感词test_sentence=test_sentence.replace(line,'*')print(test_sentence)请输入一段话:你好,我是张三**,我是张三格式化字符串03格式化字符串Python字符串可通过占位符、format()方法和f-strings三种方式实现格式化。"hello,%s"%name占位符f-strings"hello,{}

".format(name)f"hello,{name}")format()占位符%一个字符串中可以同时包含多个占位符。>>>name="李强">>>age=18>>>"你好,我叫%s,今年我%d岁了。"%(name,age)你好!我叫李强,今年我18岁了。Python将一个带有格式符的字符串作为模板,使用该格式符为真实值预留位置,并说明真实值应该呈现的格式。>>>name="李强">>>"你好,我叫%s"%name。你好,我叫李强。使用占位符%时需要注意变量的类型,若变量类型与占位符不匹配,程序会产生异常。不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。符号说明%c

将对应的数据格式化为字符%s

将对应的数据格式化为字符串%d

将对应的数据格式化为整数%u

将对应的数据格式化为无符号整数%o

将对应的数据格式化为无符号八进制数%x

将对应的数据格式化为无符号十六进制数%f

将对应的数据格式化为浮点数,可指定小数点后的位数,默认为6format()方法format()方法也可以将字符串进行格式化输出,使用该方法无需再关注变量的类型。format()方法的基本使用格式如下:<字符串>.format(<参数列表>)若字符串中包含多个没有指定序号(默认从0开始)的“{}”,则按“{}”出现的顺序分别用format()方法中的参数进行替换,否则按照序号对应的format()方法的参数进行替换。>>>name="张明">>>age=21>>>"你好!我的名字是:{},今年我{}岁了。".format(name,age)你好!我的名字是:张明,今年我21岁了。format()方法还可以对数字进行格式化,包括保留n位小数、数字补齐和显示百分比。>>>pi=3.1415>>>"{:.2f}".format(pi)3.14保留2位小数>>>num=1>>>"{:0>3d}".format(num)001数字补齐>>>num=0.1>>>"{:.0%}".format(num)10%显示百分比f-stringsf-strings在格式上以f或F引领字符串,字符串中使用{}标明被格式化的变量。>>>address=‘北京’>>>f‘{address}欢迎你!‘北京欢迎你!使用f-strings还可以将多个变量进行格式化输出。>>>

name='张天'>>>

age=20 >>>

gender='男'>>>

f'我的名字是{name},今年{age}岁了,我的性别是:{gender}。'我的名字是张天,今年20岁了,我的性别是:男。

实例2:将任意十进制数转换为对应的二进制、八进制和十六进制。本实例利用每一进制对应的函数轻松完成进制转换。x=int(input('输入十进制数:'))b=bin(x)o=oct(x)h=hex(x)print('二进制是%s,八进制是%s,十六进制是%s'%(str(b),str(o),str(

温馨提示

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

评论

0/150

提交评论