首页 > Python资料 博客日记
在python中如何判断回文串(一)?
2024-10-17 16:00:05Python资料围观36次
👨💻个人主页:@开发者-曼亿点
👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
👨💻 本文由 曼亿点 原创
👨💻 收录于专栏:机器学习
⭐🅰⭐
—
⭐前言⭐
如果一个字符串从前往后和从后往前读是一样的,则称为回文串。因此,判断一个字符串是否是回文串,可以先获得字符串的长度,然后从首尾字符开始依次判断。本任务带领大家编写 Python 程序,判断回文串。
🎶 一、通用序列
序列是程序设计中经常用到的数据结构,它是一块用来存放多个值的连续内存空间。Python 中常用的序列有字符串、列表、元组等,所有序列都可以进行某些特定的操作,包括索引、分片、相加、相乘、计算序列长度、获取最大值和最小值、查找和计数等。
1.索引
序列中的所有元素都可以通过索引(下标)来获取,从左往右,第一个元素的索引为0,第二个为1,依此类推到最后一位。索引还可以取负值,从右往左,最后一个元素的索引为-1,倒数第二个为-2,依此类推到左侧第一位。
2.分片
分片与索引类似,都可以获取序列中的元素,区别是索引只能获取单个元素,而分片可以获取一定范围内的元素。
分片通过冒号隔开的两个索引来实现,其语法格式如下。
slice[start🔚step]
其中,slice表示序列;stant 表示起始索引,缺省时分片从序列中的第一个元素开始:end表示结束索引(不含),缺省时分片到序列的最后一个元素结束:step表示步长,缺省时为1,不能为0。
例如,创建字符串“str2=abcdefg’”,使用分片获取字符串中元素的几种情况如表 所示。
分片方式 | Column 2 | Column 2 |
---|---|---|
centered 文本居中 | 说 明 | 结果 |
centered 文本居中 | right-aligned 文本居右 | ‘bcdefg’ |
centered 文本居中 | right-aligned 文本居右 | 'abc ’ |
centered 文本居中 | right-aligned 文本居右 | ‘bc’ |
centered 文本居中 | right-aligned 文本居右 | ‘abcdef’ |
centered 文本居中 | right-aligned 文本居右 | ‘ef’ |
centered 文本居中 | right-aligned 文本居右 | ‘efg’ |
centered 文本居中 | right-aligned 文本居右 | ‘abcdefg’ |
centered 文本居中 | right-aligned 文本居右 | 'aceg’ |
centered 文本居中 | right-aligned 文本居右 | 'ce’ |
Python 中步长不能设置为0,但可以是负数。当步长为负数时,起始索引必须大于结束索引,即分片从右往左提取元素。例如:
str3 = str2[6:0:-1]#str3为’gfedcb’
str3 = str2[-1:-8:-1]#str3为’gfedcba’
str3 = str2[::-1]#str3为’gfedcba’
3.相加
使用加法运算符可对序列进行连接操作。例如:
str4=‘Hello,’+‘world’#字符串连接,str4为’Hello,World’
list1-[1,2,3〕+[4,5,6)#列表连接,1ist1为[1,2,3,4,5,6]
4、相乘
使用数字n乘以一个序列会生成新的序列,在新的序列中,原来的序列将重复n次,例如:
str5 =‘hello’* 3#str5为’hellohellohello’
5.长度、最小值和最大值
序列常用的内置函数有len()、min()和 max(),其参数都为序列名。其中,lenO函数返回序列中元素的个数(即序列长度),min())函数和max0函数则分别返回序列中最小和最大的元素。
minO和maxO函数的参数并不一定是序列,也可以是两种或两种以上相同类型的数据(字典除外)。例如:
a=max(1,2,3,4) #a为4
b = min(‘abcde’, ‘abce’) #b为’abcde’
6.查找和计数
序列提供index()方法用于返回指定元素在序列中首次出现的位置,如果该元素不在序列中则抛出异常,其语法格式如下。
sequence.index(obj)
其中,sequence表示序列,obj表示要查找的对象。
如果需要知道指定元素在序列中出现的次数,可以使用countO方法进行计数并返回其语法格式如下。
sequence,count(obj)
注意事项
使用index()方法前应通过成员运算符“in”或“not in”判断该元素是否存在序列中,避免程序出错。
如果需要知道指定元素在序列中出现的次数,可以使用count()方法进行计数并返回,其语法格式如下。
sequence.count(obj)
其中,sequence表示序列,obj表示要统计的对象。
【例 】 查找输入的人物是否在《三国演义》片段中,如果在,则统计出现的次数。
【问题分析】 首先使用“in”运算符判断输入的人物是否在《三国演义》片段中,如果在,则使用index()方法获取首次出现的位置,然后使用count()方法统计出现的次数。
【参考代码】
#创建字符串excerpts并赋值
excerpts = '''次日,于桃园中,备下乌牛白马祭礼等项,三人焚香再拜而说誓曰:
“念刘备、关羽、张飞,虽然异姓,既结为兄弟,则同心协力,救困扶危;
上报国家,下安黎庶。不求同年同月同日生,只愿同年同月同日死。
得三百余人,就桃园中痛饮一醉。来日收拾军器,但恨无马匹可乘。
正思虑间,人报有两个客人,引一伙伴当,赶一群马,投庄上来。
玄德曰:“此天佑我也!”三人出庄迎接。原来二客乃中山大商:
一名张世平,一名苏双,每年往北贩马,近因寇发而回。
玄德请二人到庄,置酒管待,诉说欲讨贼安民之意。二客大喜,
愿将良马五十匹相送;又赠金银五百两,镔铁一千斤,以资器用。'''
name = input('请输入人物姓名:') #输入人物姓名并赋给name
if name in excerpts: #如果name在此片段中
#使用index()方法获取name首次出现的位置index
index = excerpts.index(name)
print(name, '首次出现的位置索引为:', index) #输出index
#使用count()方法获取name出现的次数并输出
print(name, '在此片段中出现', excerpts.count(name), '次')
else:
print(name, '没有出现在此片段中') #输出name不在此片段中
【运行结果】 程序运行结果如图所示。
🎶 二、字符串
1.字符串格式化
编程时经常会输出类似“你好,×××,你这个月的工资是×××元!”的字符串,其中,“×××”的内容是根据变量的值变化的,因此,需要一种简便的方式格式化字符串。
【提示】
初学字符串格式化内容时,读者不必花太多精力去探究每个细节,重点掌握最常用的一些规则即可,其他部分可在需要时随时查阅。
1)“%”符号Python提供了“%”符号进行字符串格式化,其语法格式如下。
‘%[标志][0][输出最小宽度][.精度]格式字符’ %变量
其中,[ ]中的项为可选项,也可以表示为如下形式。
‘%[±][0][m][.n]格式字符’ %变量
(1)标志:标志字符为“+”或“−”,指定输出数据的对齐方式。指定“+”时,右对齐输出;指定“−”时,左对齐输出;缺省时为“+”,默认右对齐。
(2)输出最小宽度:用十进制整数m表示输出的最小位数。若实际位数大于定义的宽度,则按实际位数输出;若实际位数小于定义的宽度,则补空格或0(m前有数字0,则补0)。
(3)精度:精度格式符以“.”开头,后跟十进制整数n。如果输出数字,则表示小数的位数;如果输出字符,则表示输出字符的个数;若实际位数大于所定义的精度,则截去超过的部分。
(4)格式字符:用来表示输出数据的类型,各种格式字符及其说明如表所示。
【例 】 使用“%”符号格式化。
【参考代码】
a = 15 #定义变量a并赋值
b = 12345678.1234567 #定义变量b并赋值
s = 'I love Python!' #定义字符串s并赋值
print('a = %05d' % a) #使用m控制输出位数,空位补0
print('b = %8.3f' % b) #使用m.n控制输出的长度和小数点位数
print('%17s' % s) #使用m控制输出字符串长度
print('%-17.6s' % s) #使用-m.n左对齐、控制字符串长度和字符位数
运行结果如下
【程序说明】 输出变量a时,“%05d”表示输出宽度为5并用“0”来补空位。输出变量b时,“%8.3f”表示输出宽度为8,精度为3,由于实际长度超过8位,故应按实际位数输出,小数位数超过3位部分被截去。
输出字符串s时,“%17s”表示输出字符串宽度为17,如果字符串本身长度不足17,则用空格左补齐,可以看到“I love Python!”前存在3个空格。“%−17.6s”表示输出宽度虽为17,但这里指定了精度“.6”,也就是说指定了输出字符的个数为6,并且用“−”指定了左对齐,所以输出6个字符“I love”,后面还有11个空格。
2)format()方法
使用format()方法也可以格式化字符串,其基本语法格式如下。
模板字符串.format(逗号分隔的参数)
模板字符串由一系列槽(用大括号表示)组成,用于控制字符串中嵌入值出现的位置,其基本思想是,将format()方法中逗号分隔的参数按照序号替换到模板字符串的槽中(序号从0开始)。例如:
#s为’你好,张三,你这个月的工资是8500元!’
s = ‘你好,{1},你这个月的工资是{0}元!’.format(8500, ‘张三’)
如果大括号中没有序号,则按照出现顺序替换,例如:
#s为’你好,8500,你这个月的工资是张三元!’
s = ‘你好,{},你这个月的工资是{}元!’.format(8500, ‘张三’)
format()方法中模板字符串的槽除了包括参数序号外,还可以包括格式控制信息,此时槽的内部格式如下。:
{参数序号:格式控制标记}
其中,格式控制标记用于控制参数显示时的格式,它包括“填充”“对齐”“宽度”“,”“.精度”“格式字符”6个可选字段,这些字段可以组合使用。具体的格式控制标记及其说明如表所示。
结束语🥇
以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj