在python中如何判断回文串(一)?

news2024/10/22 23:43:02

在这里插入图片描述


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:机器学习

🅰

请添加图片描述


文章目录

    • 🅰
    • 前言
    • 🎶 一、通用序列
      • 1.索引
      • 2.分片
      • 3.相加
      • 4、相乘
      • 5.长度、最小值和最大值
      • 6.查找和计数
    • 🎶 二、字符串
      • 1.字符串格式化
        • 结束语🥇


前言

  如果一个字符串从前往后和从后往前读是一样的,则称为回文串。因此,判断一个字符串是否是回文串,可以先获得字符串的长度,然后从首尾字符开始依次判断。本任务带领大家编写 Python 程序,判断回文串。


🎶 一、通用序列


  序列是程序设计中经常用到的数据结构,它是一块用来存放多个值的连续内存空间。Python 中常用的序列有字符串、列表、元组等,所有序列都可以进行某些特定的操作,包括索引、分片、相加、相乘、计算序列长度、获取最大值和最小值、查找和计数等。

1.索引

  序列中的所有元素都可以通过索引(下标)来获取,从左往右,第一个元素的索引为0,第二个为1,依此类推到最后一位。索引还可以取负值,从右往左,最后一个元素的索引为-1,倒数第二个为-2,依此类推到左侧第一位。

2.分片

  分片与索引类似,都可以获取序列中的元素,区别是索引只能获取单个元素,而分片可以获取一定范围内的元素。
  分片通过冒号隔开的两个索引来实现,其语法格式如下。

slice[start🔚step]

  其中,slice表示序列;stant 表示起始索引,缺省时分片从序列中的第一个元素开始:end表示结束索引(不含),缺省时分片到序列的最后一个元素结束:step表示步长,缺省时为1,不能为0。
  例如,创建字符串“str2=abcdefg’”,使用分片获取字符串中元素的几种情况如表 所示。

分片方式Column 2Column 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个可选字段,这些字段可以组合使用。具体的格式控制标记及其说明如表所示。
在这里插入图片描述

结束语🥇

以上就是机器学习
持续更新机器学习教程,欢迎大家订阅系列专栏🔥机器学习
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【原创】java+springboot+mysql智能农村管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

Voronoi treemap!这么好看的图形绘制原来这么简单...

更多详细的数据可视化教程,可订阅我们的店铺课程: 在上次推出树形图绘制教程之后,有小伙伴私信说有没有啥方法绘制如下所示的图表: 网友提供样例 (说实话,我第一眼看到之后就感觉R或者Python绘制此图会比较难&…

InstructGPT的四阶段:预训练、有监督微调、奖励建模、强化学习涉及到的公式解读

1. 预训练 1. 语言建模目标函数(公式1): L 1 ( U ) ∑ i log ⁡ P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(\mathcal{U}) \sum_{i} \log P(u_i \mid u_{i-k}, \dots, u_{i-1}; \Theta) L1​(U)i∑​logP(ui​∣ui−k​,…,ui−1​;Θ…

智慧灌区信息化管理系统解决方案

一、方案背景 我国南方地区一些县级一般拥有5000多个大小水利设施, 尤其是灌区水利设施众多,这些灌区水利设施修建年代久,信息化程度低,但在保障农民生产、农田灌溉、抵抗自然灾害方面发挥着一定的作用,并能够最大限度…

go开发环境设置-安装与交叉编译(二)

1. 引言 Go语言,又称Golang,是Google开发的一门编程语言,以其高效、简洁和并发编程的优势受到广泛欢迎。作为一门静态类型、编译型语言,Go在构建网络服务器、微服务和命令行工具方面表现突出。 在开发过程中,开发者常…

科技云报到:大模型时代下,向量数据库的野望

科技云报到原创。 自ChatGPT爆火,国内头部平台型公司一拥而上,先后发布AGI或垂类LLM,但鲜有大模型基础设施在数据层面的进化,比如向量数据库。 在此之前,向量数据库经历了几年的沉寂期,现在似乎终于乘着Ch…

Yolov11与Yolov8在西红柿识别数据集上对比

Ultralytics 最新发布的 YOLOv11 相较于其上一代产品 YOLOv8,虽然没有发生革命性的变化,但仍有一些显著的改进(值得注意的是,YOLOv9 和 YOLOv10 并非由 Ultralytics 开发)。其中,最引人注目的变化包括&…

4.redis通用命令

文章目录 1.使用官网文档2.redis通用命令2.1set2.2get2.3.redis全局命令2.3.1 keys 2.4 exists2.5 del(delete)2.6 expire - (失效时间)2.7 ttl - 过期时间2.7.1 redis中key的过期策略2.7.2redis定时器的实现原理 2.8 type2.9 object 3.生产环境4.常用的数据结构4.1认识数据类型…

代码复现(四):DBINet

文章目录 datasets/AB2019BASDataset.pydatasets/ext_transforms.pynetwork/modules.pynetwork/DBINet.pynetwork/DBINet_Backbone.pyAB2019_train.py 代码链接:DBINet datasets/AB2019BASDataset.py 加载Australia Bushfire 2019 Burned Area Segmentation Datase…

【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning

Navigating the Digital World as Humans Do: UNIVERSAL VISUAL GROUNDING FOR GUI AGENTS 前言AbstractMotivationSolutionRELIEFIncorporating Feature Prompts as MDPAction SpaceState TransitionReward Function Policy Network ArchitectureDiscrete ActorContinuous Act…

【杂记】之语法学习第一课输入输出与数据类型与选择结构

首先学会新建源文件 1.打开DEV C 2.文件—>新建—>源代码 3.编写程序 4.编译并运行(F11) 第一个程序《Hello,World!》 题目描述 编写一个能够输出 Hello,World! 的程序。 提示: 使用英文标点符号;Hello,World! 逗号后…

8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台

1、板卡概述 板卡由我公司自主研发,基于6UCPCI架构,处理板包含双片TI DSP TMS320C6678芯片;一片Xilinx公司FPGA XC7K420T-1FFG1156 芯片;六个千兆网口(FPGA两个,DSP四个);DSP与FPGA之…

基于springboot+vue实现的酒店在线预订系统

基于springbootvue实现的酒店在线预订系统 (源码L文ppt)4-082 4.2 系统结构设计 构图是系统的体系结构,体系结构是体系结构体系的一部分,体系结构体系是体系结…

LabVIEW空间相机测控系统

空间相机是遥感技术中的核心设备,其在太空中的性能对任务的成功至关重要。为了确保空间相机能够在极端环境下稳定工作,地面模拟测试成为必不可少的环节。LabVIEW开发的空间相机测控系统,通过对温度、应力和应变等参数进行高精度测量&#xff…

LeetCode 3319. 第 K 大的完美二叉子树的大小

LeetCode 3319. 第 K 大的完美二叉子树的大小 给你一棵 二叉树 的根节点 root 和一个整数k。 返回第 k 大的 完美二叉子树的大小,如果不存在则返回 -1。 完美二叉树 是指所有叶子节点都在同一层级的树,且每个父节点恰有两个子节点。 子树 是指树中的某一…

计算机网络:数据链路层 —— 以太网(Ethernet)

文章目录 局域网局域网的主要特征 以太网以太网的发展100BASE-T 以太网物理层标准 吉比特以太网载波延伸物理层标准 10吉比特以太网汇聚层交换机物理层标准 40/100吉比特以太网传输媒体 局域网 局域网(Local Area Network, LAN)是一种计算机网络&#x…

本地装了个pytorch cuda

安装命令选择 pip install torch1.13.1cu116 torchvision0.14.1cu116 torchaudio0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 torch版本查看 python import torch print(torch.__version__) 查看pytorch能否使用cuda import torch# 检查CUDA是否可用…

如何用AWG实现脉冲激光输出

脉冲激光二极管提供强功率短脉冲的能力,使其成为目标指定和测距等军事应用的理想选择。事实上,开发这些二极管的许多历史动机都有军事渊源。然而,当今的技术进步和成本降低的大背景之下,在测试测量和医学领域新的应用得以开辟。 …

113.WEB渗透测试-信息收集-ARL(4)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:112.WEB渗透测试-信息收集-ARL(3)-CSDN博客 等待搭建成功 创建成…

Vue深入了解

Vue深入了解 MVVMv-model (双向数据绑定原理)异步更新keep-alive原理$nextTick原理computed 和 watch 的区别css-scoped虚拟DOMVuex && PiniaVue-router原理proxy 与 Object.defineProperty组件通信方式 MVVM <!DOCTYPE html> <html lang"en">&…