Python——— 字符串

news2024/9/28 17:24:26

(一)字符串

    字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。顾名思义,羊肉串是由羊肉做成的串,而字符串就是由字符组成的。   字符串的本质是:字符序列。

2     Python 不支持单字符类型,单字符也是作为一个字符串使用的。创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python"
    Python 的字符串是不可变的,我们无法对原字符串做任何修改。但可以将字符串的一部分复制到新创建的字符串,达到 “看起来修改 的效果。

(二)字符串的编码

   Python3 直接支持 Unicode ,可以表示世界上任何书面语言的字 符。Python3 的字符默认就是 16 Unicode 编码,ASCII码是 Unicode编码的子集。

转换技巧: 

使用内置函数ord()可以把字符转换成对应的Unicode码;
使用内置函数chr()可以把十进制数字转换成对应的字符;

 

print(ord('A')) #65
print(ord('成')) #25104
print(chr(66)) #'B'
print(ord('龙') )#40857

(三)引号创建字符串

   我们可以通过  ①单引号或双引号创建字符串。例如: a='abc' b="sxt" 使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。例如:
a = "I'm a teacher!"
print(a) #I'm a teacher!
b = 'my_name is "Jackie Chan"'
print(b) #my_name is "Jackie Chan"
   ②  连续三个单引号或三个双引号,可以帮助我们创建多行字符串。在 长字符串中会保留原始的格式。例如:

(四)空字符串和len()函数

   Python 允许空字符串的存在,不包含任何字符且长度为 0 。例如:

 

c = ''
print(len(c)) #结果:0
  其中,len() 用于计算字符串含有多少字符。 

(五)转义字符

     我们可以使用 \+特殊字符 ,实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:
转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\e转义
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出
【操作】测试转义字符的使用

代码

a = 'I\nlove\bU'
print(a)
print('a\rabb\\cc')

 

(六)Python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符描述实例
+字符串连接

>>>a + b 'HelloPython'

*重复输出字符串

>>>a * 2 'HelloHello'

[]通过索引获取字符串中字符

>>>a[1] 'e'

[ : ]截取字符串中的一部分

>>>a[1:4] 'ell'

in成员运算符 - 如果字符串中包含给定的字符返回 True

>>>"H" in a True

not in成员运算符 - 如果字符串中不包含给定的字符返回 True

>>>"M" not in a True

r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>>print r'\n' \n >>> print R'\n' \n

%格式字符串请看下一章节

 具体代码

a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])

if ("H" in a):
    print( "H 在变量 a 中")
else:
    print( "H 不在变量 a 中")

if ("M" not in a):
    print("M 不在变量 a 中")
else:
    print("M 在变量 a 中")

print(r'\n')
print(R'\n')

运行效果:

字符串拼接 :可以使用 + 将多个字符串拼接起来。例如: ’aa’+ ’bb’ 结果 是 ’aabb’
  •  如果 + 两边都是字符串,则拼接。

  •  如果 + 两边都是数字,则加法运算

  • 如果 + 两边类型不同,则抛出异常

 可以将多个字面字符串直接放到一起实现拼接。例如: ’aa’’bb’ 结果是 ’aabb’

 

a = 'sxt'+'qiqi'   #结果是:'sxtqiqi'
b = 'sxt''qiqi'     #结果是:'sxtqiqi'

(七)字符串切片slice操作

 

 切片 slice 操作可以让我们快速的提取子字符串。标准格式为:
   [起始偏移量start:终止偏移量end:步长step]

 

典型操作(三个量为正数的情况)如下:
操作和说明示例结果
[:] 提取整个字符串“abcdef”[:]“abcdef”
[start:] start索引开始到结尾“abcdef”[2:]“cdef”
[:end] 从头开始知道end-1“abcdef”[:2]“ab”
[start:end] startend-1“abcdef”[2:4]“cd”
[start:end:step] start提取到end-1,步长是step“abcdef”[1:5:2]“bd”

其他操作(三个量为负数)的情况
示例说明结果
"abcdefghijklmnopqrstuvwxyz"
[-3:]
倒数三个“xyz”
"abcdefghijklmnopqrstuvwxyz"
[-8:-3]
倒数第八个到倒数第三个( 包头不包尾 )
'stuvw'
"abcdefghijklmnopqrstuvwxyz"
[::-1]
步长为负,从右到左反向提取
'zyxwvutsrqponmlkjihgfedcba'

注意:切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始偏移量小于0则会当做0,终止偏移量大于长度-1”会被当成-1。例如:

 

 

(八)split()分割和join()合并

      split() 可以基于指定分隔符将字符串分隔成多个子字符串 ( 存储到列 表中) 。如果不指定分隔符,则默认使用空白字符 ( 换行符 / 空格 / 制表符) 。示例代码如下:
a = "to be or not to be"
print(a.split())
print(a.split('be'))
运行效果:

join() 的作用和 split() 作用刚好相反,用于将一系列子字符串连接起
来。示例代码如下:
a = ['sxt','sxt100','sxt200']
print('*'.join(a))

运行效果: 

总结:

拼接字符串要点:
      使用字符串拼接符 + ,会生成新的字符串对象,因此不推荐使 用 + 来拼接字符串。推荐使用 join 函数,因为 join 函数在拼接字 符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

 

 

(九) 字符串常用方法汇总

       字符串有很多常用的方法,我们需要熟悉。我们通过表格将这些方 法汇总起来,方便大家查阅。希望大家针对每个方法都做一次测试。

 

我们以一段文本作为测试:
 
a='''ablchbjj '''
常用查找方法
方法和使用示例说明结果
len(a)字符串长度8
a.startswith('abl')以指定字符串开头True
a.endswith('jj')以指定字符串结尾True
a.find('b')第一次出现指定字符串的位置1
a.rfind('b')最后一次出现指定字符串的位置5
a.count("lch")指定字符串出现了几次1
a.isalnum()所有字符全是字母或数字True
 

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

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

相关文章

Kafka 小结

Kafka 是由 Linkedin 开发并开源的分布式消息系统,因其分布式及高吞吐率而被广泛使用,现已与 Cloudera Hadoop、Apache Storm、Apache Spark、Flink 集成。 Kafka 使用场景 页面访问量 PV、页面曝光 Expose、页面点击 Click 等行为事件;实时计…

低分辨率图像中目标检测(附论文下载)

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文地址:https://arxiv.org/pdf/2201.02314.pdf 计算机视觉研究院专栏 作者:Edison_G 超分辨率(SR)等…

【Openvino03】深入了解OpenVINO™ 工具包与Jupyter Notebooks工程

接上一篇,本篇将以OpenVINO™ 工具包、Jupyter Notebook工具以及OpenVINO™ Notebooks工程为基础,依照构建环境、工具学习、案例学习、实战部署的顺序引导初学者完成从0到1学习人工智能的全过程,希望众多对人工智能感兴趣的开发者&#xff0c…

【多维BFS】ABC308 D

VP的时候居然花了半小时! 可恶! D - Snuke Maze (atcoder.jp) 题意: 思路: 首先,我们发现到达一个格子之后,下一个格子的字符是确定的 但是,下一个格子到底是哪个是不确定的 下一个格子不…

FreeRTOS源码解析——第一章 整体架构

FreeRTOS源码解析 第一章 FreeRTOS 整体架构 第二章 FreeRTOS 编程规范 第三章 FreeRTOS 内存管理 第四章 FreeRTOS 任务管理 第五章 FreeRTOS 消息队列 第六章 FreeRTOS 软件定时器 第七章 FreeRTOS 信号量 第八章 FreeRTOS 互斥量 第九章 FreeRTOS 任务通知 第十章 FreeRTOS…

算法习题之宏观分层问题

宏观分层 习题1 给定一个正方形矩阵matrix,原地调整成顺时针90度转动的样子习题2 给定一个长方形矩阵matrix,实现转圈打印习题3 给定一个正方形或者长方形矩阵matrix,实现zigzag打印习题4 输入N,在控制台上输出初始边长为N的图案 习题1 给定一…

U盘数据丢失是什么原因?轻松让U盘数据恢复的教程

在数字化时代,我们不可避免地使用各种便携式存储设备,如U盘,来传输和存储重要数据。然而,有时我们可能不小心删除了U盘中的文件,或者格式化了U盘等等而导致数据丢失。这种情况下,你可能会困惑地想知道&…

机器学习——基于Tensorflow和Keras实现卷积神经网络CNN——猫狗分类

文章目录 环境的配置神经网络CNN的介绍卷积前馈神经网络卷积神经网络应用邻域 数据集准备数据预处理构建基准模型 总结什么是过拟合(overfit)?什么是数据增强?单独制作数据增强,精确率提高了多少? 然后再添…

硬件大熊原创合集(2023/06更新)

06月份更新篇章: 一款射频芯片的layout设计指导案例-篇章1 一款射频芯片的layout设计指导案例-篇章2 警惕超声波工艺对晶振造成损伤 走嵌入式方向,一定要软硬件都懂吗? 6月份广州光亚展,和电子电力大咖文老师见了个面,…

2023车载摄像头9大热点趋势

摘要: 相较于消费类电子摄像头,车载摄像头的工作环境极度恶劣,比如说震动、高温、雨雾、低温、光线变化剧烈等。而车载摄像头以驾驶安全为目的,上述各个工作状态下,均需要能获取稳定、可靠、清晰的周边环境数据。 近年…

HOT36-二叉树的中序遍历

leetcode原题链接:二叉树的中序遍历 题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出&#xff1a…

BUUCTF藏藏藏

也是一个图片文件,和一个txt文件 txt文件中是一个提交flag格式,没啥用 拿去010打开后发现可能存在隐藏文件 这个格式说明还有解压文件吧,但是为啥分离不出来呢 刚好有另外一个分离文件的软件foremost 解压后打开在zip文件下有一个福利docx文件…

【零基础入门学习Python---Python网络编程保姆级教程】

🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

GDB寻找segmentation fault位置

一、在当前文件夹下生成指定二进制文件的core文件 查看允许core文件空间大小: ulimit -c修改core文件空间为无限大: ulimit -c unlimited让core文件生成在当前目录下: sudo bash -c echo core.%e.%p > /proc/sys/kernel/core_pattern再…

2023黑马头条.微服务项目.跟学笔记(二)

2023黑马头条.微服务项目.跟学笔记 二 app端文章查看,静态化freemarker,分布式文件系统minIO今日简介学习内容1.文章列表加载1.1 需求分析1.2 表结构分析思考:表的垂直拆分 1.3 导入文章数据库1.3.1 导入数据库1.3.2 导入对应的实体类总结 1.4 实现思路1.4.1 sql练习…

hippo - 提升我们团队工程效率的工具

1. 背景 我们 shopeepay 团队是一个比较大的前端团队(80成员),团队内部分布着 react native、javascript npm包、react component npm包、serverless、普通的react工程等多种类型的项目,每种项目类型中的每个项目都有它们自己的配…

Windows 使用Git使用Gitee仓库

1.本地创建文件夹。图中例子,我在桌面创建了文件夹。 2.打开 Git Bash Here. 3.Git Bash 的部分指令。 ls 查看当前文件夹 mkdir gittest01 创建文件夹 cd gittest01 进入文件夹 git init 创建本地仓库 git config --global user.name"chengqian" 创建者…

Redis主从复制模式的2

搭建完后可以去测试一下这几个问题: 1.主机中的数据会复制到从节点中 2.主机中新增的数据会同步到从节点中 3.redis集群后,从节点只能读(slave),主节点可以写(master) 4.主机重启后还是主节点 5.从机重启后也会变成主节点 血脉相传 一个主机master理论上可以有多个从机slave…

抖音短视频矩阵号系统开发者开源部署分享(一)

抖音是一款备受欢迎的短视频APP,拥有数亿的用户,其中包括了大量的粉丝。为了让更多的人能够发现和观看到你的视频,抖音SEO是必不可少的一环,特别是对于拥有企业或个人品牌的用户来说。在这个过程中,抖音SEO源码的开源部…

【前端工程化】比gzip压缩更优的br压缩

🐱 个人主页:不叫猫先生,公众号:前端舵手 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步…