Python 字符串str详解(超详细)(一)

简介: Python 字符串str详解(超详细)(一)

Python内置函数/方法详解—字符串str

字符串是Python中最常用的数据类型

1、创建字符串

1.1 使用 ’ ’ 或 " " 创建字符串

创建字符串很简单,我们可以使用引号(’ ’ 或 " ")来创建字符串,只需为变量分配一个值即可。

str1 = 'Hello Python'
str2 = "hello python"

1.2 使用 str()函数 转换为字符串

当然,除了使用引号直接创建字符串之外,我们还可以使用 str() 函数将其他数据类型或对象转换为字符串,其具体用法见下方内置函数。

2、访问字符串

和列表、元组一样,我们既可以使用下标索引访问字符串中的某个元素(得到是一个字符),也可以使用切片访问字符串中的一组元素(得到是子字符串)。

2.1 下标索引访问

下标索引访问字符串分为两大类,即正向索引反向索引,格式为 str_name[i] ,其中,str_name 表示字符串名,i表示索引值,i可以是正数(正向索引)也可以是负数(反向索引)。

可以得知,str_name[0]表示字符串的第一个字符str_name[-1]则表示字符串的最后一个字符

str1 = 'Hello Py'
print(str1[0])
print(str1[-1])
H
y

正向索引:从第一个(下标0)开始、第二个(下标1)…

反向索引:从倒数第一个(下标-1)、倒数第二个(下标-2)…

2.2 切片访问

如若对上方描述不太理解,可参考下表:

字符串值 H e l l o P y
正向索引 0 1 2 3 4 5 6 7
反向索引 -8 -7 -6 -5 -4 -3 -2 -1

Python访问子字符串,可以使用中括号 [ ] 来截取字符串,即切片访问。

使用切片访问字符串的格式为 str_name[strat : end : step] ,其中,start 表示起始索引,end 表示结束索引,step 表示步长。

str1 = 'Hello Py'
print(str1[0:5])
print(str1[-8:-1])
print(str1[:])
print(str1[::2])
Hello
Hello P
Hello Py
HloP

截取字符串的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。

2.3 for循环遍历字符串

使用 for 循环遍历字符串时,将会输出字符串中的每一个字符。

str_h = 'Hi Py'
for char in str_h:
    print(char)
H
i
P
y

2.4 检查元素是否存在

如果我们需要确定在一个字符串中,是否存在相同的字符或者子字符串,可以使用成员运算符中的 innot in 关键字。

关键字 描述
in 如果字符串中包含给定的字符返回 True。
not in 如果字符串中不包含给定的字符返回 True。
str1 = 'Hello Python'
print('H' in str1)
print('Python' not in str1)
True
False

3、字符串基础知识

3.1 字符串更新

我们可以截取字符串的一部分并与其他字段拼接,如下实例:

str1 = 'Hello World'
print(str1[:6] + 'Python')
Hello Python

3.2 字符串连接(合并)/复制(重复)

同列表和元组一样,字符串之间可以使用 + 号和 * 号分别实现字符串的连接(合并)和复制(重复),这意味着它们可以生成一个新的字符串。

1、+连接(合并)

a = 'Hello'
b = 'Python'
print(a + b)
HelloPython

2、*复制(重复)

c = 'Hello'
print(c * 5)
HelloHelloHelloHelloHello

3.3 转义字符

如果需要在字符中使用特殊字符时,则使用反\斜杠 \ 转义字符,如下表:

3.4 打印原始字符 r / R

原始字符串:所有的字符串都是直 接按照字面的意思来使用,没有转义特殊或不能打印的字符。

原始字符串除在字符串的第一个引号前加上字母 r / R (可以大小写)以外,与普通字符串有着几乎完全相同的语法。

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

3.5 格式字符串

Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

print('我叫 %s ,今年 %d 岁!' % ('pink', 21))
我叫 pink ,今年 21 岁!

在Python中,字符串格式化使用与 C语言 中 printf() 函数一样的用法。

Python字符串格式化符号如下表所示:

符 号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0 显示的数字前面填充’0’而不是默认的空格
% ‘%%‘输出一个单一的’%’
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

3.6 三引号

Python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下:

str1 = """这是一个多行字符串
多行字符串可以使用制表符
TAB[\t]
也可以使用换行符[\n]
"""
print(str1)
这是一个多行字符串
多行字符串可以使用制表符
TAB[  ]
也可以使用换行符[
]

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

3.7 f-string

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

之前我们习惯用百分号 (%):

name = 'pink'
print('Hello %s' % name)

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

name = 'pink'
print(f'Hello {name}')
print(f'{1 + 2}')
baidu = {'name': 'Baidu', 'url': 'https://www.baidu.com'}
print(f'{baidu["name"]}:{baidu["url"]}')
Hello pink
3
Baidu:https://www.baidu.com

用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

x = 1
print(f'{x + 1}')
y = 1
print(f'{x + 1 = }')
2
x + 1 = 2

3.8 Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

4、内置函数

4.1 打印输出 print()

1、print()函数

print() 函数的功能我们已经非常熟悉了,就是打印输出。

str1 = 'Hello Python'
print(str1)
Hello Python

4.2 确定字符串长度 len()

2、len()函数

当我们要确定一个字符串中有多少个字符时,我们可以使用 len() 函数。

str2 = 'Hello Python'
print(len(str2))
12

4.3 返回变量类型 type()

3、type()函数

使用 type() 函数可以确定变量是什么类型(字符串、列表、元组、字典或集合)。

str3 = 'Hello Python'
print(type(str3))
<class 'str'>

当对 str3 使用 type() 确定变量类型时,会返回 <class 'str'> ,表明这是一个字符串。

目录
相关文章
|
10月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
510 100
|
10月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
652 99
|
10月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
10月前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
10月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
10月前
|
Python
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
11月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
486 92
|
9月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
373 4
|
11月前
|
数据采集 存储 数据库
Python字符串全解析:从基础操作到高级技巧
Python字符串处理详解,涵盖基础操作、格式化、编码、正则表达式及性能优化等内容,结合实际案例帮助开发者系统掌握字符串核心技能,提升文本处理与编程效率。
841 0

推荐镜像

更多