猪行天下之Python基础——3.5 字符串

简介: 内容简述:1、字符串(String)

1、字符串(String)


字符串是日常开发中用的最广泛的数据类型了,可以是用「单引号」或「双引号」进行创建。字符串是由多个字符拼接成的序列,一般用于表示文本。如果想让字符串包含换行缩进等格式时可以使用「三引号」(''')来修饰,一般打印段落文字时用得较多。另外字符串是「不可变数据」,定义以后就不能修改元素了,比如str_1 = "abc",如果调用str_1[0] = 'd',这样是会报错的,只能 通过 +, *, 分片等方式 进行「拼接」,间接得到相同的字符串内容,不过已经不是原先的字符串了,变量指向新的字符串,而旧的字符串对象最后会被Python的回收机制回收掉


① 字符串的基本操作


代码示例如下


# 1.字符串创建
str_1 = "Hello Python!"
str_2 = str(123)
# 2.分片相关操作(和前面4.4.4列表操作一致)
print("str_1[3] = %s" % str_1[3])
print("str_1[2:] = %s" % str_1[2:])
print("str_1[2:5] = %s" % str_1[2:5])
print("str_1[2:10:2] = %s" % str_1[2:10:2])
print("str_1[0:8] + str_1[8:] = %s" % (str_1[0:8] + str_1[8:]))
print("str_1[6:] * 3 = %s" % (str_1[6:] * 3))
print("str_2的数据类型:%s" % type(str_2))


运行结果如下


str_1[3] = l
str_1[2:] = llo Python!
str_1[2:5] = llo
str_1[2:10:2] = loPt
str_1[0:8] + str_1[8:] = Hello Python!
str_1[6:] * 3 = Python!Python!Python!
str_2的数据类型:<class 'str'>


② 转义字符


python用反斜杠(\)转义字符,所有转义字符如下表所示:


转义字符 作用 转义字符 作用
行尾的\ 续行符 \000
\ 反斜杠 \n 换行
\' 单引号 \v 纵向制表符
\a 响铃 \t 横向制表符
\b 退格 \r 回车
\e 转义 \f 换页
\o 八进制数代表字符 \x 十六进制数代表字符


③ 字符串操作的相关函数


Python字符串操作相关的函数有很多,不建议死记,用到的时候查表即可,相关的操作函数


如下表所示:


函数名 作用
capitalize() 把字符串的第一个字符改为大写
casefold() 把整个字符串的所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度width的新字符串
count(sub[,start[,end]]) 返同sub在字符申里边出现的次数,start和end参数表示范围,可选
encode(encoding= 'utf-8 ',errors='strict') 以encoding指定的编码格式对字符串进行编码
endswith(sub[,start[,end]]) 检查字符串是否以sub 子字符串结束,如果是返回True,否则返回False。start和end参数表示范围,可选
expandtabs([tabsize= 8]) 把字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格数是tabsize=8
find(sub[,start[,end]]) 检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选
index(sub[,start[,end]]) 跟find方法一样,不过如果sub不在string中会产生一个异常
isalnum() 如果字符串中至少有一个字符,并且所有字符都是字母或数字则返回True,否则返回False
isalpha() 如果字符串至少有一个字符串,并且所有字符都是字母则返回True,否则返回False
isdecimal() 如果字符串只包含十进制数字则返回True,否则返回False
isdigit() 如果字符串只包含数字则返回True,否则返回False
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False
isnumeric() 如果字符串中只包含数字字符,则返回True,否则返回False
isspace() 如果字符串中只包含空格,则返回True,否则返回False
istitle() 如果字符串是标题化(所有单词大写开头,其余小写),则返回True,否则返回False
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False
join(sub) 以字符串作为分隔符,插入到sub中所有的字符之间,使用+去拼接大量字符串的时候是很低效率的,
因为加号拼接会引起内存赋值一级垃圾回收操作,此时用join来拼接效率会高一些,比如: ''.join(['Hello','Python'])
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串
lower() 转换字符串所有大写字符为小写
lstrip() 去除字符串左边的所有空格
partition(sub) 找到子字符串sub,把字符串分割成3元组(前,pre,后)如果字符串中不包含则返回('原字符串','','')
replace(old, new[,count]) 把字符串中的old子字符串替换成new,如果count指定,则替换次数不超过count次
rfind(sub[,start[,end]]) 和find()方法类似,不过是从右开始查找
rindex(sub[,start[,end]]) 和index()方法类似,不过是从右开始查找
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为width的新字符串
rpartition(sub) 类似于partition(),不过是从右边开始查找
rstrip() 删除字符串末尾的空格
split(sep=None,maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果maxspli参数t右设置,则仅分隔maxsplit个子字符串,
返回切片后的子字符串拼接的列表
splitlines([keepends]) 按照'\n'分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行
startswith(prefix[,start[,end]]) 检查字符串是否以prefix开头,是则返回True,否则返回False。start和end参数可以指定范围检查,可选
strip([chars]) 删除字符串前边和后边所有的空格,chars参数可定制删除的字符串,可选
swapcase() 反转字符串中的大小写
title() 返回标题化(所有的单词都是以大写开始,其余字母小写)的字符串
translate(table) 按照table的规则(可由str.maketrans('a','b')定制)转换字符串中的字符
upper() 转换字符串中所有的小写字符为大写
zfill(width) 返回长度为width的字符串,原字符串右对齐,前边用0填充


④ 字符串格式化


其实就是format函数的使用而已,使用代码示例如下:


# 位置参数
str1 = "{0}生{1},{2}{3}!".format("人", "苦短", "我用", "Python")
print(str1)
# 关键字参数
str1 = "{a}生{c},{b}{d}!".format(a="人", c="苦短", b="我用", d="Python")
print(str1)
# 位置参数可以与关键字参数一起使用,不过位置参数需要在关键字参数前,否则会报错!
# 另外还有个叫替换域的东西,冒号代表格式化符号开始,比如下面的例子:
str1 = "{0}:{1:.4}".format("圆周率", 3.1415926)
print(str1)


运行结果如下


人生苦短,我用Python!
人生苦短,我用Python!
圆周率:3.142


⑤ 字符串前加'r','u'的意义


在字符串前加上「r或者R」,代表后面的字符串是「原始字符串」,即直接按照字面意思使用没有转义字符和不能打印的字符。比如print(r'Python\n'),输出的结果会是:Python\n。而在字符串前加上小写的「u」,代表后面的字符串「以Unicode格式进行编码」,一般用在中文字符串前,避免出现中文乱码问题。


相关文章
|
3月前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
57 1
|
1月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
53 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
2月前
|
Python
python获取字符串()里面的字符
在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
96 36
|
1月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
52 7
|
1月前
|
索引 Python
Python 高级编程:深入探索字符串切片
在Python中,字符串切片功能强大,可灵活提取特定部分。本文详细介绍切片技巧:基本切片、省略起始或结束索引、使用负数索引、设定步长及反转字符串等。此外,还介绍了如何结合其他操作进行切片处理,如先转换大小写再提取子串。 来源:https://www.wodianping.com/yeyou/2024-10/48238.html
36 4
|
2月前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
125 6
|
2月前
|
网络协议 网络安全 开发者
Python 向IP地址发送字符串
Python 向IP地址发送字符串
|
2月前
|
Python
Python 中取字符串中等于号后面的内容
Python 中取字符串中等于号后面的内容在编程过程中,我们经常需要从字符串中提取特定的信息。一个常见的任务是在给定的字符串中查找等于号(=)后面的内容。这种需求在解析配置文件、处理查询字符串或分析日志数据时尤其常见。 如何实现 在Python中,我们可以使用多种方法来实现此功能。以下是几种常用的方法,包括字符串操作和正则表达式。 方法 1:使用字符串分割 我们可以使用字符串的 split() 方法将字符串拆分为两个部分,然后提取等于号后的值。 示例代码 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者bruce_xiao
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
30 0
|
1月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)