Python——字符串的基本操作

⼀、 创建

s1 = 'lenovo'
s2 = "QF"
s3 = """hello lenovo"""
s4 = '''hello 亮'''
s5 = """hello
shark
"""
s6 = '''hello
world'''

⼆、简单使⽤

        1.\ 转义符 

testimony = 'This shirt doesn\'t fit me'
words = 'hello \nshark'

        2.+ 拼接 

In [1]: file_name= "成功的21个信念"In [2]: suffix = '.txt'In [3]: file_name = file_name + suffixIn [4]: file_name
Out[4]: '成功的21个信念.txt'

        拼接只能是 字符串和字符串进⾏操作,不可以⽤ 字符串和 ⼀个字符串类型的对象相加

        3.* 复制

In [6]: "-" * 10
Out[6]: '----------'In [7]: print('*' * 10)
**********

三、取值和切⽚

        1.字符串 是 Python 中的⼀个 序列类型的数据结构

        存放的数据,在其内是有序的。

        序列类型的特点:

  •         序列⾥的每个数据被称为序列的⼀个元素
  •         元素在序列⾥都是有个⾃⼰的位置的,这个位置被称为索引或者叫偏移量,也有叫下标的, 从 0 开始,从左到右依次递增
  •         序列中的每⼀个元素可以通过这个元素的索引来获取到
  •         获取到序列类型数据中的多个元素需要⽤切⽚的操作来获取

        2.通过索引取值,获取单个元素

In [10]: s1 = "shark"In [11]: s1[0]
Out[11]: 's'In [12]: s1[-1]
Out[12]: 'k'In [13]: s1[3]
Out[13]: 'r

        3. 切⽚,获取多个元素

[start:end:step]分片
#start 永远是起始索引号
#end   永远是终止索引号
#step  是可选的步长
  •         分片操作只包含位于起始索引号位置的元素
  •         不包含位于终止索引号的位置的元素
  •         同时,起始和终止的意义都是针对于从左向右的顺序来定义的 

        1.⼀般操作 

# 使⽤切⽚获取多个元素
In [15]: s1[0:3]
Out[15]: 'sha'# 起始和结尾的索引号可以省略
In [16]: s1[:3]
Out[16]: 'sha'In [17]: s1[1:]
Out[17]: 'hark'# 索引可以使⽤ 负数
In [18]: s1[2:-1]
Out[18]: 'ar'

        2.使⽤步⻓ 

  •         步⻓就是每数⼏个取⼀个的意思
  •         步⻓是正数时,是从左向右开始操作
  •         步⻓是负数时,是从右向左操作
In [19]: s2 = 'abcdefg'In [20]: s2[::2]
Out[20]: 'aceg'In [21]: s2[::-1]
Out[21]: 'gfedcba'In [22]: s2[::-2]
Out[22]: 'geca'

四、字符串⽅法

        1.统计序列数据的⻓度 

        就是获取⼀个序列数据的元素个数,这个适⽤于所有的序列类型的数据,⽐如 字符串、列表、元组。

# 获取字符串的⻓度,包含空格和换⾏符
In [25]: s3 = "a \n\t"In [26]: len(s3)
Out[26]: 4
  •         \n 是⼀个换⾏符
  •          \t 是⼀个 Tab 键 

        2.in 成员判断 

In [39]: line = 'Size: 8192 MB'In [40]: if 'Size' in line:...: print(line)...:Size: 8192 MB

        注意: 空的字符串总是被视为任何其他字符串的⼦串,因此"" in "abc" 将返回 True。

        3.strip() 去除字符串两端的空⽩字符(空格、\t、 \n)

Out[41]: line = ' Size: 8192 MB'In [42]: line.strip()
Out[42]: 'Size: 8192 MB'

        4.split() 分割 

        默认使⽤空⽩字符作为分隔符(空格、\t、 \n) 和 shell 中的 awk ⼀样道理

In [47]: line
Out[47]: ' Size: 8192 MB'In [48]: line.split()
Out[48]: ['Size:', '8192', 'MB']In [49]: s
Out[49]: '\tab\n'In [50]: s.split()
Out[50]: ['ab']可以指定分隔符
In [51]: line.split(':')
Out[51]: [' Size', ' 8192 MB']In [52]: line.split(': ')
Out[52]: [' Size', '8192 MB']

        5.strip() 移除字符串两端的空⽩字符** 

In [71]: line = ' Size: 8192 MB'In [72]: line.strip()
Out[72]: 'Size: 8192 MB'strip() 返回的是字符串,所以可以连续操作
In [73]: line.strip().split(': ')
Out[73]: ['Size', '8192 MB']In [74]: line
Out[74]: ' Size: 8192 MB'In [75]: k, v = line.strip().split(': ')In [76]: k
Out[76]: 'Size'In [77]: v
Out[77]: '8192 MB'

        6.replace() 替换 

In [65]: line = '  <strong>10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</strong></p>'In [66]: line.strip() ## 先去除两端空⽩字符
Out[66]: '<strong>10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</strong></p>'In [67]: line.strip().replace('strong>', '') ##将字符串 strong> 替换为空
Out[67]: '<10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥</</p>'In [68]: line.strip().replace('strong>', '')[1:-6]
Out[68]: '10、命运在⾃⼰⼿⾥,⽽不是在别⼈的嘴⾥'

        7.startswith() 判断字符串以什么为开头 

In [85]: line = 'Locator: DIMM_A2'In [86]: line.startswith("Locator:")
Out[86]: True

        8.endswith() 判断字符串以什么为结尾 

In [87]: line = 'Size: 8192 MB'In [88]: line.endswith('MB')
Out[88]: True

五、 字符串的判断

In [1]: s = '123'In [2]: s.isdigit() # 判断是否是纯数字
Out[2]: TrueIn [3]: s1 = '123adb' In [4]: s1.isalnum() # 判断是否是数字和字⺟
Out[4]: TrueIn [5]: s2 = 'adb'In [6]: s2.isalpha() # 判断是否是纯字⺟
Out[6]: TrueIn [7]: s2.encode() # 转换为⼆进制 bytes 类型
Out[7]: b'adb'In [8]: s4 = "亮"
In [9]: s4.encode() # 转换为⼆进制 bytes 类型,默认编码 utf-8
Out[9]: b'\xe4\xba\xae'In [16]: b = s4.encode()In [17]: b.hex() # bytes 转换成 16 进制
Out[17]: 'e4baae'In [18]: b.decode() # bytes 转换成 str,默认编码utf-8
Out[18]: '亮'

 

 

 

 

 

 

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

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

相关文章

[Linux使用] 库依赖分析 LDD

查看程式运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。 /opt/app/todeav1/test$ldd test libstdc.so.6 > /usr/lib64/libstdc.so.6 (0x00000039a7e00000) libm.so.6 > /lib64/libm.so.6 (0x0000003996400000) libgcc_s.so.1 > /lib64/libg…

json解析

1什么是json JSON(JavaScript Object Notation&#xff0c;JS对象简谱&#xff09;是一种轻量级的数据交换格式。它是基于ECMAScript&#xff08;欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰…

卡尔曼滤波增益推导

该文章主要是记录温习卡尔曼滤波算法理论时的一些理解&#xff0c;重点讲解卡尔曼增益的推导过程。其中忽略了部分基础知识和详细的推导过程&#xff0c;阅读该文章需要本身已具备卡尔曼滤波基础。文章内容摘取自网络博客的部分内容&#xff0c;因为原文章的逻辑不是很通顺&…

pandas中,DataFrame.sample 的理解:

DataFrame.sample 是 pandas 库中 DataFrame 对象的方法&#xff0c;用于从数据框中抽取随机样本。 DataFrame.sample(nNone, fracNone, replaceFalse, weightsNone, random_stateNone, axisNone)n&#xff08;int或None&#xff09;&#xff1a; 指定要抽取的样本数量。如果指…

NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.问题定义和解决问题的假设问题定义解决问题的假设 三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子详情页实现

锋哥原创的SpringbootLayui python222网站实战&#xff1a; python222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程&#xff08;SpringBootPython爬虫实战&#xff09; ( 火…

PiflowX组件-OracleCdc

OracleCdc组件 组件说明 Oracle CDC连接器允许从Oracle数据库读取快照数据和增量数据。 计算引擎 flink 组件分组 cdc 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子hostnameHostname“”无是Or…

解决一个mysql的更新属性长度问题

需求背景&#xff1a; 线上有一个 platform属性&#xff0c;原有长度为 varchar(10)&#xff0c;但是突然需要填入一个11位长度的值&#xff1b;而偏偏这个属性在线上100张表中有50张都存在&#xff0c;并且名字各式各样&#xff0c;庆幸都包含 platform&#xff1b;例如 platf…

JavaSE核心基础-方法-笔记

1.方法概述 将一些代码抽取出来&#xff0c;放到单独的代码块中&#xff0c;形成方法&#xff0c;可以反复调用。 2.方法的定义格式以及解释 格式&#xff1a; 修饰符 返回值类型 方法名 &#xff08;参数列表&#xff09;&#xff5b; //方法主…

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学&#xff08;GIS&#xff09;专业的2024届应届生&#xff0c;在研三上学期期间&#xff0c;寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先&#xff0c;这篇文章一开始写于2023年年底&#xff0c;当时为了参加一个征文活动&#xff0c;所…

Python爬虫的9个具体应用场景案例分析与具体应用。

文章目录 前言一、新闻采集二、数据挖掘三、网站监测四、舆情分析五、爬虫定制化开发六、数据采集与处理七、网络安全八、网络营销九、自动化测试关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①P…

嵌入式学习-网络编程-Day6

嵌入式学习-网络编程-Day6 一、思维导图 二、作业 1.基于UDP的网络聊天室&#xff08;2024.1.21号前上交&#xff09; 项目需求&#xff1a; 1.如果有用户登录&#xff0c;其他用户可以收到这个人的登录信息 2.如果有人发送信息&#xff0c;其他用户可以收到这个人的群聊信…

LabVIEW振动数据采集与分析系统

在这个项目中&#xff0c; LabVIEW软件配合精确的硬件组件&#xff0c;以实现高效的振动数据采集和复杂信号分析。硬件方面&#xff0c;系统采用了PCB振动加速度传感器的高灵敏度传感器&#xff0c;以及NI9234型号的数据采集卡&#xff0c;确保了数据采集的高精度和可靠性。软件…

Leetcode刷题-(6~10)-Java+Python+JavaScript

算法题是程序员的基本功&#xff0c;也是各个大厂必考察的重点&#xff0c;让我们一起坚持写算法题吧 遇事不决&#xff0c;可问春风&#xff0c;春风不语&#xff0c;即是本心。 我们在我们能力范围内&#xff0c;做好我们该做的事&#xff0c;然后相信一切都事最好的安排就…

2024年对我懒这件事的弥补

一、回顾、前言 时光飞逝转眼2023年就“溜”走了&#xff0c;还记得我最后一次发博客是在2023.7.12 距离现在已经n天了&#xff0c;原因尽是懒&#xff01; 拜拜&#xff0c;我继续偷懒去咯。 咳咳&#xff0c;显然这不可能&#xff0c;当然为了弥补大家我这个大好人也是憋…

前端包管理工具

一、代码共享方案 npm 进行发布上传 npmregistrynpm 进行安装 二、npm 包管理工具 2.1 介绍 安装 node 的时候自动安装 node package manager&#xff1a;Node 包管理工具 可以通过 npm 安装说明已经上传到这个仓库里面了 npm 官网查看是否有发布&#xff1a;npmjs.org …

JAVAEE出街 网络编程(一)

网络编程 一. 网络编程二. 客户端与服务器2.1 一问一答2.2 一问多答2.3 多问一答2.4 多问多答 三. TCP与UDP的特点 一. 网络编程 网络编程本质上就是学习传输层给应用层提供的API&#xff0c;把数据交给传输层&#xff0c;通过一层层的封装将数据通过网卡传输出去。 二. 客户端…

html5实现好看的年会邀请函源码模板

文章目录 1.设计来源1.1 邀请函主界面1.2 诚挚邀请界面1.3 关于我们界面1.4 董事长致词界面1.5 公司合作方界面1.6 活动流程界面1.7 加盟支持界面1.8 加盟流程界面1.9 加盟申请界面1.10 活动信息界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者&#xff1a;xcLei…

《WebKit 技术内幕》之四(4): 资源加载和网络栈

4.实践&#xff1a;高效的资源使用策略 4.1 DNS和TCP连接 DNS解析和TCP连接占用大量的时间&#xff0c;可以从以下几个方面优化&#xff1a; 减少连接的重定向&#xff0c;有些网页中使用了大量的重定向&#xff0c;可能还会有很多次重定向&#xff0c;这不仅要求浏览器建立…

使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率

在此 FFmpeg 教程中&#xff0c;我们学习使用 FFmpeg 的命令行工具更改视频的分辨率&#xff08;或调整视频的大小/缩放&#xff09;。 更改视频的分辨率&#xff08;也称为调整大小或缩放&#xff09;是视频编辑、处理和压缩中非常常见的操作。对于 ABR 视频流尤其如此&#…