盘点Python 中字符串的常用操作

盘点,python,字符串,常用,操作 · 浏览次数 : 174

小编点评

**摘要** 本文介绍了 Python 中字符串的几个常用操作,并给出了代码示例以使新手更容易理解。 **字符串的表达方式** * 单引号: `'hello world'` * 双引号: `"hello world"` * 三个单引号: `'''hello world'''` * 三个双引号: `"""hello world"""` **常用操作** * **字符串拼接:** `'Hello' + 'World'` * **字符串复制:** `a = 'Hello World' and a = 'Hello World'` * **字符串求长度:** `len(a)` * **字符串去除两边空格:** `a.strip()` * **字符串去除右边的空格:** `a.rstrip()` * **字符串连接:** `'a,bb,cc'.split(',')` * **字符串查找:** * `a.find('c')` 和 `a.rfind('c')` 查找字符串 `'c'` 的第一个出现位置。 * `a.index('c')` 和 `a.rindex('c')` 查找字符串 `'c'` 的第一个出现位置。 * **字符串格式化:** * `'Hello World'.format('Hello')` 和 `'{0} {1}'.format('Hello', 'World')` 格式化字符串 `'Hello World'`。 **其他** * `isdigit()` 和 `isalpha()` 用于检查字符串是否是数字或字母。 * `startswith()` 和 `endswith()` 用于检查字符串是否从开头或结尾。 * `rfind()` 用于从字符串右边查找第一个匹配的字符。

正文

摘要:盘点 Python 中字符串的几个常用操作,对新手极度的友好。

本文分享自华为云社区《盘点 Python 中字符串的常用操作,对新手极度友好》,作者:TT-千叶 。

在 Python 中字符串的表达方式有四种

一对单引号
一对双引号
一对三个单引号
一对三个双引号
a = ‘abc’
b= “abc”
c = ‘’‘abc’’’
d = “”“abc”""
print(type(a)) # <class ‘str’>
print(type(b)) # <class ‘str’>
print(type©) # <class ‘str’>
print(type(d)) # <class ‘str’>

单双引号混合使用
a = “LiMing say ‘nice to meet you’”

同样也可以通过转义的方式不用在里面写双引号

a = “LiMing say “nice to meet you””
print(a)

总结就是需要外面用了双引号,里面需要引用的语句可以用单引号括起来,反之亦然。

通常情况根据个人喜好,基本都是使用单引号或者双引号。有些特殊情况,比如需要表示多行时,可以选择三个单(双)引号,并且无序用 \ 进行转移,可直接使用单引号和双引号。

a = ‘’’
My Name is 阿亮,
Let’s say ‘Hello’
‘’’
print(a)

字符串的下标和切换
下标:字符串是一个个字符拼接而成,下标可以理解为每个字符的编号,从 0 开始依次类推。

作用:通过下标去操作字符串中的元素

H的下标为0, e的下标为1 …依次类推

a = ‘HelloWorld’

获取字符串a中下标为4的元素

print(a[4]) # o 下标为4的元素为o

修改字符串中的元素是不是可以直接赋值呢? 例如:

a = ‘HelloWorld’

a[4] = ‘k’
print(a)

上面的代码运行之后发现报错。

TypeError: ‘str’ object does not support item assignment

原因是因为: 字符串一旦创建之后,里面的元素是不可以修改的。

所以字符串是无法直接进行修改的。

字符串运算
字符串运算中用到了 + 、*、>、<、!= 、= 等逻辑运算符。

字符串的相加操作,也可以理解为拼接操作。例如:

a = ‘Hello’ + ’ World’
print(a) # Hello World

也可以写成

a = ‘Hello’ ’ World’
print(a) # Hello World

字符串的乘法操作,可以理解为克隆操作,字符串只能与整数(n)想乘,代表克隆 n 个字符串。

a = ‘a’
print(a * 2) # aa
b = ‘-’
print(b * 10) # ----------

切片
字符串的切片也称为字符串截取。 所有操作都是通过字符串的下标进行操作的。

用法:字符串 [开始索引(start):结束索引(end):步长(step)(默认 1)]

步长(step):每隔(step-1)个取一个元素,当 step 为负数时,代表从右向左取元素,

a = ‘abcdefghijklmn’

从下标1开始 到4结束 进行切片 (包括1,不包括4,即左开又闭)

print(a[1:4]) # bcd
print(a[1:8]) # bcdefgh
print(a[1:8:2])# 步长为2, 结果:bdfh

当补偿为负数时,代表逆向截取。 初始从坐标8开始,每隔一个元素取一个值,到下标为1时结束

print(a[8:1:-2]) # igec

字符串的常用操作
这里以代码 + 注释的方式,展示几个常用的字符串操作。

a = ’ Hello World ’

获取字符串的长度

print(len(a)) # 13

删除字符串两边的空格

print(a.strip()) # Hello World

删除左边的空格

print(a.lstrip()) # Hello World (只删除左边的空格)

删除字符串右边的空格

print(a.rstrip()) # Hello World

通过指定连接符 链接字符串

lst = [‘LiMing’, ‘Tom’]
print(’***’.join(lst)) # LiMing***Tom

首字母大写

m = ‘hello world’
print(m.capitalize()) # Hello world

返回标题化字符串,即每个单词首字母大写

print(m.title()) # Hello World

打印输出字符,将字符串放在中间,

center(width, fillchar) width: 字符串的总长度, fillchar:填充字符

print(a.center(20, ‘*’)) # *** Hello World ****

是否以xxx开头

n = ‘Hello’
print(n.startswith(‘H’)) # True

是否以xxx结尾

print(n.endswith(‘o’)) # True

字符串是全纯英文字符

print(a.isalpha()) # False , 因为字符串a中 ’ Hello World ’ 有空格,因此返回False
print(‘HelloWorld’.isalpha()) #True

判断字符串中是否全部为数字或者英文

print(‘Hello2World’.isalnum()) # True
print(‘123’.isalnum()) # True
print(‘abc&11’.isalnum()) # False

判断是否为整数

print(‘123’.isdigit()) # True
print(‘1.23’.isdigit()) # False

判断字符是否全为小写

print(‘abc’.islower()) # True

判断字符是否全为大写

print(‘Abc’.isupper()) # False
print(‘ABC’.isupper()) # True

字符串小写转大写

print(‘abc’.upper()) # ABC

字符串大写转小写

print(‘ABC’.lower()) # abc

字符串的替换

b = ‘aabbcc’.replace(‘a’, ‘m’)
print(b) # mmbbcc

1 代表替换的个数

b = ‘aabbcc’.replace(‘a’, ‘m’, 1)
print(b) # mabbcc

split 字符串切割,默认空格切割

print(‘aa bb cc’.split()) # [‘aa’, ‘bb’, ‘cc’]
print(‘ab,cd,ef’.split(’,’)) # [‘ab’, ‘cd’, ‘ef’]

字符串换行分割

a = “”"
My Name is ‘762459510,
欢迎添加
“”"
print(a.splitlines()) # [’’, " My Name is ‘762459510’,", ’ 欢迎添加’, ’ ']

字符串的查找
字符串查找常用的方法用 index、find

两者功能相似,区别在于 find 查找不到元素时返回 -1, 不会影响程序运行,而 index 则会抛出异常。

a = ‘abcdef’

查找到元素返回对应的下标

print(a.find(‘c’)) # 2
print(a.find(‘h’)) # -1

print(a.index(‘c’)) # 2
print(a.index(‘h’)) # 抛出异常,ValueError: substring not found

rfind: 类似于 find () 函数,不过是从右边开始查找;返回字符串最后一次出现的位置,如果没有匹配项则返回 - 1 。rindex 同理
a = ‘acmncd’

从右边开始计算,返回第一个匹配到的下标

print(a.rfind(‘c’)) # 4
print(a.rindex(‘c’)) # 4

字符串的格式化
name = ‘762459510’

%s 用于输出字符串

print(‘我的月球号是: %s’ % name)
age = 18

%d 用于输出十进制数字

print(‘我的年龄是:%d’ % age)
money = 1.23

%f 浮点数,默认显示小数点后6位

print(‘我身上有:%f 元’ % money )

指定小数点后的位数

print(‘我身上有:%.2f 元’ % money )

format 操作
除了使用 % 进行格式化,也可以使用 format

print(’{} {}’.format(‘Hello’, ‘World’)) # Hello World
print(’{0} {1}’.format(‘Hello’, ‘World’)) # Hello World

print(’{1}, {0}, {1}’.format(‘A’, ‘B’)) #B, A, B

print(‘今年是 {}年.’.format(2022)) # 今年是 2022年.

 

点击关注,第一时间了解华为云新鲜技术~

与盘点Python 中字符串的常用操作相似的内容:

盘点Python 中字符串的常用操作

摘要:盘点 Python 中字符串的几个常用操作,对新手极度的友好。 本文分享自华为云社区《盘点 Python 中字符串的常用操作,对新手极度友好》,作者:TT-千叶 。 在 Python 中字符串的表达方式有四种 一对单引号一对双引号一对三个单引号一对三个双引号a = ‘abc’b= “abc”c

[转帖]一行Python代码实现同一局域网内的文件共享

在不同的设备之间传输文件除了数据线,网盘传输外是否还有其他优雅的方法?我们可以使用一行Python代码使局域网内的所有设备都可以访问并下载文件夹内的文件。 要求: 电脑中安装配置好python 访问的设备要和电脑处于同一局域网中 步骤 1.查看自己电脑的IP地址 打开一个CMD窗口,输入ipconf

< Python全景系列-3 > Python控制流程盘点及高级用法、神秘技巧大揭秘!

全面深入地介绍 Python 的控制流程,包括条件语句、循环结构和异常处理等关键部分,尤其会将列表解析、生成器、装饰器等高级用法一网打尽。此外,我还将分享一些独特的见解和研究发现,希望能给你带来新的启发。文章的结尾,我们将有一个 "One More Thing" 环节,我会分享一个很特别但又很少人知道的有用的 Python 控制流程的技巧。

影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的“网盘”,简单理解就是搭建自己的“私有云”,但是硬件和网络成本都太高了,有点可望而不可及的意思。Alist开源库则可以满足我们,它能将公共网盘反过来变成一种联网的本地硬盘,使用We

Python使用socket的UDP协议实现FTP文件服务

用Python的socket,使用UDP协议实现一个FTP服务端、FTP客户端,用来实现文件的传输。在公司内网下,可以不适用U盘的情况下,纯粹使用网络,来实现文件服务器的搭建,进而实现文件的网络传输。同时用来理解Python的socket使用。

#Python基础 利用Pyinstaller 模块对python代码进行打包exe

一般我们都用 Python 的 Pyinstaller 模块进行打包,这里记录Pyinstaller 模块进行打包。 一:安装 Pyinstaller 模块 pip install PyInstaller 二:打开cmd(win+R) 三:操作 3.1 切换路径(这里示例文件在E盘) 输入E:来切换

盘点 Spring Boot 解决跨域请求的几种办法

熟悉 web 系统开发的同学,对下面这样的错误应该不会太陌生。 之所以会出现这个错误,是因为浏览器出于安全的考虑,采用同源策略的控制,防止当前站点恶意攻击 web 服务器盗取数据。 01、什么是跨域请求 同源策略,简单的说就是当浏览器访问 web 服务器资源时,只有源相同才能正常进行通信,即协议、域

盘点下华为大佬的技术拷问下我没招架住的一些问题

行情动荡不安,看着同组曾经一块并肩战斗过的开发同事们陆续被迫离职,我最近几个月也多少的思维活跃了些,有些惴惴不安,不知何时会轮到自己。想着即使暂时轮不到自己,也要有着被裁后能立马找到下家工作的能力,一直坐以待毙终究沦为案板上的羔羊。 据说华为社招技术岗基本都是OD了,正式的很少很少,但是OD的面试流

盘点学英语的困惑1:反义疑问句

对于反义疑问句: # 1.反义疑问句语法规则 第一个知识点是:在反义疑问句中,前面肯定描述,反义就是否定去问;前面否定描述,反义就是肯定去问。 简单记忆口诀就是“前肯后否,前否后肯”,举例来说: ```shell He is a teacher, isn't he? 他是一名教师,不是吗? He i

盘点10个最受欢迎IntelliJ IDEA主题,必有一款适合你!

选择一款适合自己的主题,这样每天工作才不会累!下面给大家精选了一批优秀的主题,并配上案例截图。如果有你喜欢的,那就赶紧去下载吧! Darcula 这是IntelliJ IDEA默认的暗色主题,适合长时间使用,减少眼睛疲劳。 Material Theme UI 一款基于谷歌Material Desig