Python(青铜时代)——字符串

news2024/11/13 20:30:36

字符串的定义与操作

  • 字符串就是 一串字符 ,是编程语言中表示文本的数据类型

  • 在Python中使用一对双引号 "" 或者一对单引号来定义.

  • 使用索引获取一个字符串中 指定位置的字符,索引计数从0开始

  • 可以用 for/while 循环遍历字符串中的每一个字符

示例

#双引号
name="zhangsan"
for s in name:
  print(s)


#单引号
name2='zhangsan'
for s in name2:
  print(s)

name3='zhangsan"ddd"'
print(name3)

输出

字符串常用操作

name="zhangsan"

#统计字符串长度
print(len(name))

#统计 子字符串/字符 出现的次数
print(name.count("an"))
print(name.count("a"))

#查看字符串的索引
print(name.index("an"))

输出结果

字符串的类型判断

方法说明
string.isspace()如果string中只包含空格,则返回True
string.isalnum()如果string至少有一个字符并且所有字符都是字母或数字,则返回True
string.isalpha()如果string至少有一个字符并且所有字符都是字母则返回True
string.isdecimal()如果string只包含数字,则返回True,全角数字
...还有很多类似的方法,大家用到时可百度查询相关资料

字符串的查找和替换

方法说明
string.startswith(str)检查字符串是否以 str 开头,是则返回True
string.endswith(str)检查字符串是否以 str 结尾,是则返回True
string.find(str,start=0,end=len(string))在指定(start,end)的范围内,查找string中是否包含 str ,包含则返回相应的索引,否则返回 -1
string.rfind(str,start=0,end=len(string))类似find() 函数,不过是从右边开始查找
string.index(str,start=0,end=len(string))与find() 函数 类似,不过,如果str 不在string中会报错
...

字符串中的转义字符

  • \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐

  • \n 在控制台输出一个 换行符

  • 制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本

转义字符描述
\\反斜杠符号
\'单引号
\"双引号
\n换行
\t横向制表符
\r回车

注:windows 系统中 \r\n 表示换行; linux 系统中用 \n 表示换行

整体示例

demo1="   "
demo2="zhangsan"
demo3="1233"

#判断是否包含空格
print(demo1.isspace())

#判断是否只包含数字
print(demo2.isdecimal())
print(demo3.isdecimal())

#判断字符的开头
print(demo2.startswith("zha"))

#查找指定字符串
print(demo2.find("gs"))

#转义双引号、回车
print("aaaa\nbbb\rccc\"张三\"")
 

输出结果:

注:此处可以看到 \r 和 \n 最后输出的虽然都是换行,但在不同的操作系统中是有区别的

  • ‘\r’ (回车):即将光标回到当前行的行首(而不会换到下一行),之后的输出会把之前的输出覆盖

  • ‘\n’ 换行,换到当前位置的下一位置,而不会回到行首;

  • Unix系统里,每行结尾只有“<换行>”,即"\n";

  • Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;

  • Mac系统里,每行结尾是“<回车>”,即"\r";

字符串的转换与对齐

  • 大小写转换

方法说明
string.capitalize()把字符串的第一个字符大写
string.title()把字符串的每个单词首字母大写
string.lower()转换string 中所有大写字符为小写
string.upper()转换string中的小写字母为大写
string.swapcase()翻转string中的大小写

  • 文本对齐

方法说明
string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width的新字符串
string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width的新字符串
string.center(width)返回一个原字符串居中,并使用空格填充至长度 width的新字符串

  • 去除空白字符

方法说明
string.lstrip()截掉 string 左边开始的 空白字符
string.rstrip()截掉 string 右边开始的 空白字符
string.strip()截掉 string 左右两边的空白字符

示例

#要求,居中打印古诗,字母转成大写,去除空格
p=["春晓","mhr","春眠不觉晓","   处处闻啼鸟","月来风雨声   ",
"   花落知多少   "]


for s in p:
  #判断是字母则转换
  if s.isalpha():
    print(s.center(10).upper())
  else:
    #去空格,并居中,10表示整行为10个字符,空格填充
    print(s.strip().center(10))

输出结果

字符串的拆分、拼接、切片

  • 拆分和连接

方法说明
string.partition(str)把字符串 string 分成一个 3元素的元组(str前面,str,str后面)
string.rpartition(str)类似partition()方法,不过是从右边开始查找
string.split(str)以stro 为分隔符拆分 string
string.splitlines()按照行('\r','\n','\r\n')分隔,返回一个包含各行作为元素的列表
string.join(seq)以string作为分隔符,将seq 中所有的元素,合并为一个新的字符串


示例

demo_str="aaa,bbb,ccc,ddd"
demo_list=["a","b","c"]

#拆分字符串
print(demo_str.split(","))

#合并字符串用 "-" 连接
print("-".join(demo_list))

 

输出结果

字符串的切片

  • 切片方法使用于 字符串、列表、元组

    • 切片 使用 索引值 来限定范围,从一个大的字符串中 切出 小的字符串

    • 列表 和 元组 都是 有序 的集合,都能够通过 索引值 获取对应的数据

    • 字典 是一个无序的集合,使用键值对保存数据

  • 使用注意

    • 指定的区间属于 左闭右开 型(开始索引,结束索引) 

      • 开始索引 >= 范围 < 结束索引

      • 从 起始 位置开始,到 结束 位的前一位 结束不包含结束位本身)

    • 从头开始,开始索引 数字可以省略冒号不能省略

    • 到末尾结束,结束索引 数字可以省略,冒号不能省略

    • 步长为 1,如果连续切片,数字和冒号都可以省略

语法

字符串[开始索引:结束索引:步长]

示例

num_str="0123456789"

#截取3~5 位置字符串
print(num_str[3:6])

#截取 4 到末尾的字符串
print(num_str[4:])

#截取开始到 5  位置的字符串
print(num_str[:6])
#或者
print(num_str[0:6])

#截取完整的字符串
print(num_str[:])

#从0开始,每隔一个字符取一个
print(num_str[0::2])

#从末尾开始,每隔一个字符取一个
print(num_str[-1::-2])

#截取末尾的两个字符
print(num_str[-2:])

#反转字符串
print(num_str[::-1])
#或者
print(num_str[-1::-1])

输出结果

程序猿与投资生活实录已改名为  程序猿知秋,WX同款,欢迎关注!   

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

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

相关文章

NGINX学习笔记(一):一篇了解NGINX的基本概念

NGINX是什么&#xff1f; NGINX是一款由俄罗斯人伊戈尔赛索耶夫使用C语言开发的、支持热部署的、轻量级的WEB服务器/反向代理服务器/电子邮件代理服务器&#xff0c;因为占用内存较少&#xff0c;启动极快&#xff0c;高并发能力强&#xff0c;所以在互联网项目中广泛应用。可…

CRM系统的四种数据分析法

在数字化时代&#xff0c;数据就是一切。因此&#xff0c;通过数据来支撑企业决策&#xff0c;才能确保制定的决策在更大程度上保持准确。因此&#xff0c;CRM客户管理系统的数据分析能力不容忽略。CRM获取的客户信息&#xff0c;就是很好的数据支撑样本&#xff0c;让企业从数…

CANfd 一次采样点和二次采样点

CANfd 一次采样点和二次采样点 采样点的定义 采样点是CAN控制器读取总线电平&#xff0c;并解释各个比特的逻辑值的时间点。 首先我们需要了解Tq的概念&#xff0c;Tq是can控制器的最下时间周期称作时间份额&#xff08;Time quantum&#xff0c;简称Tq&#xff09;,它是通过芯…

2023年3月全国DAMA-CDGA/CDGP数据治理认证招生简章

弘博创新是DAMA中国授权的数据治理人才培养基地&#xff0c;贴合市场需求定制教学体系&#xff0c;采用行业资深名师授课&#xff0c;理论与实践案例相结合&#xff0c;快速全面提升个人/企业数据治理专业知识与实践经验&#xff0c;通过考试还能获得数据专业领域证书。 DAMA认…

嵌入式学习笔记——认识STM32的 GPIO口

寄存器开发STM32GPIO口前言认识GPIOGPIO是什么GPIO有什么用GPIO怎么用STM32上GPIO的命名以及数量GPIO口的框图&#xff08;重点&#xff09;输入框图解析三种输入模式GPIO输入时内部器件及其作用1.保护二极管2.上下拉电阻&#xff08;可配置&#xff09;3.施密特触发器4.输入数…

Spark 存储系统

Spark 存储系统MemoryStoreDiskStoreSpark 存储系统架构&#xff1a; Spark 存储系统维护的数据 : Shuffle 中间文件 &#xff1a;Shuffle Map 输出数据 &#xff0c; 消耗节点磁盘广播变量 &#xff1a;在 Executors 内保存所有数据 &#xff0c;消耗节点的内存RDD Cache : 将…

大数据技术之Hive(五)拉链表的设计与实现

一、什么是拉链表针对订单表、订单商品表&#xff0c;流水表&#xff0c;这些表中的数据是比较多的&#xff0c;如果使用全量的方式&#xff0c;会造成大量的数据冗余&#xff0c;浪费磁盘空间。所以这种表&#xff0c;一般使用增量的方式&#xff0c;每日采集新增的数据。在这…

DevOps平台之GitLab 账户个性化设置【二】

1、简介 上一篇文章安装完GITLAB服务之后&#xff0c;我们可以很方便地从浏览器登录上去进行仓库项目管理。 但是初始化的界面默认设备并不是能很好地使用&#xff0c;比如语言&#xff0c;皮肤&#xff0c;个人信息不完善等等。 所以本文就为了完善这些。 上一篇&#xff1a;…

Linux 配置本地yum源

挂载光盘 进入包 配置路径&#xff0c;查看在线yum源 移动在线yum源到/home/目录下 进入vi,任意取名以.repo结尾即可 按住i进行编辑&#xff0c;输入以下内容 注意gpgcheck1是检验&#xff0c;配置本地yum源不需要检验 写入上图内容按住&#xff1a;输入wq&#xff0c;点击回车…

LeetCode - 1653 使字符串平衡的最少删除次数

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 1653. 使字符串平衡的最少删除次数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 a 和 b​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 …

广州银行冲刺A股上市:不良贷款规模突破100亿元,不良率飙升

又一家城商行平移申报IPO。近日&#xff0c;广州银行股份有限公司&#xff08;下称“广州银行”&#xff09;递交招股书&#xff0c;准备在深圳证券交易所主板上市。本次冲刺上市&#xff0c;广州银行计划募资约94.79亿元&#xff0c;国泰君安证券为其保荐机构。 截至目前&…

省选模拟测试23 T1直径

题目大意 给你一个数kkk&#xff0c;请你构造一棵节点数量小于等于5000的直径数量为kkk的树。 我们定义这棵树的直径为&#xff0c;所有满足1≤i<j≤n1\leq i<j\leq n1≤i<j≤n的(i,j)(i,j)(i,j)中&#xff0c;dis(i,j)dis(i,j)dis(i,j)最大的。如果有多个这样的(i,…

buu RSA what 1

题目描述&#xff1a; 题目四个文件&#xff0c;分别如下&#xff1a; rsa.py from Crypto.Util.number import bytes_to_long, getPrime from random import randint from gmpy2 import powmodp getPrime(2048) q getPrime(2048) N p*q Phi (p-1)*(q-1) def get_enc_key…

珠海先达盈致数据智能监控器+SaaS平台 轻松实现注塑生产管控

数据智能监控器 兼容市面上99%的注塑设备 直接读取设备生产数据与状态&#xff0c;如&#xff1a;计划产出、实际产出、累计产出、停机、节拍、线利用率、直通率、停产时间、工单状态、OEE、注胶时间…… 产品功能价值 ◎ OEE不达标报警&#xff0c;一手掌握生产效能 ◎ 首…

论文精读:Ansor: Generating High-Performance Tensor Programs for Deep Learning

文章目录1. Abstract2. Introduction3. Background4. Design Overview5. Program Sampling5.1 Sketch Generation5.2 Random Annotation6. Performance Fine-tuning6.1 Evolutionary Search6.2 Learned Cost Model7. Task Scheduler7.1 Problem Formulation7.2 Optimizing with…

使用nvm管理node版本

下载nvm版本参考文章&#xff1a;https://blog.csdn.net/langmanboy/article/details/126357952下载安装选择nvm的目录为d:\nvm&#xff0c;nodejs的目录为d:\nodejs&#xff1a;v14.0.0&#xff1a;执行nvm install 14生成的目录v16.0.0&#xff1a;执行nvm install 16生成的目…

详解vite原理

背景 自从尤大大的 vite 问世后&#xff0c;现在前端的构建工具由 webpack 转向 vite 的越来越多&#xff0c;今天主要来讨论一下 vite 的一些工作原理&#xff0c;讨论之前大家可以看这篇文章&#xff0c;尤其是注意其中谈到的 Bundleless&#xff0c;这样也能更好的理解 vit…

C#学习记录0.1

一、环境 编译器使用 Visual Studio 2022。  IDE(集成开发环境)搭建不做阐述。 二、创建项目与解决方案 打开Visual Studio 2022点击创建新项目&#xff0c;如下图所示。 搜索并选择控制台应用程序&#xff0c;如下图所示。 解决方案&#xff1a;针对用户的具体需要&#x…

RocketMQ【3】Rocketmq集群部署(多master多slave)异步复制

系列文章目录 RocketMQ【1】linux安装配置Rocketmq&#xff08;单机版&#xff09; RocketMQ【2】Rocketmq控制台安装启动&#xff08;单机版&#xff09; 文章目录系列文章目录一、异步复制的优缺点1、优点2、缺点二、架构1、架构图2、介绍3、机器配置三、配置1、master节点配…

ES32中OTA空中升级

打开SDK可视化配置&#xff0c;检查flash大小设定和“partition table”分区表设定。 左下角&#xff0c;点击SDK可视化配置按钮&#xff0c;进入配置。flash大小为4MB&#xff0c;Partition Table选择Factory app, two OTA definitions&#xff0c;分区表烧写偏移地址0x8000&…