「日拱一码」005 Python字符串操作

目录

字符串的创建

单引号和双引号

三引号

字符串的索引和切片

索引

切片

字符串的拼接

使用加号拼接

使用 join() 方法拼接

字符串的格式化

使用 % 格式化

使用 str.format() 方法格式化

使用 f-string 格式化(Python 3.6+)

字符串的常用方法

大小写转换

查找和替换

分割和连接

使用字符串常量

去除空白字符

判断字符串

字符串的编码和解码

编码

解码


字符串的创建

在 Python 中,字符串是用单引号(')、双引号(")或三引号(''' 或 """)括起来的字符集合

单引号和双引号

使用单引号或双引号创建字符串时,字符串的内容可以是字母、数字、符号等字符的组合

str1 = 'Hello'
str2 = "Python"

如果字符串中包含单引号或双引号,需要使用转义字符  \  来表示

str3 = 'It\'s a sunny day'
str4 = "He said, \"Hello\""

也可以通过使用三引号来避免转义字符的使用

str5 = """He said, "Hello" """

三引号

三引号可以创建多行字符串,它允许字符串跨越多行,并且保留字符串中的换行符和缩进

str6 = """
This is a
multi-line string.
"""


字符串的索引和切片

字符串是一个有序的字符集合,可以通过索引和切片来访问和操作字符串中的字符

索引

字符串的索引从 0 开始,从左到右依次递增

str7 = "Python"
print(str7[0])  # 输出:P
print(str7[2])  # 输出:t

也可以使用负索引从右到左访问字符串中的字符,负索引从 -1 开始,从右到左依次递减

print(str7[-1])  # 输出:n
print(str7[-3])  # 输出:h

切片

切片可以获取字符串中的一部分字符,语法为  string[start:end:step] ,其中  start  是切片的起始索引(包含), end  是切片的结束索引(不包含), step  是步长,默认值为 1

str8 = "Hello, World!"
print(str8[0:5])  # 输出:Hello
print(str8[7:12])  # 输出:World
print(str8[0:12:2])  # 输出:Hlo ol

如果省略  start ,则从字符串的开头开始切片;如果省略  end ,则切片到字符串的末尾

# 省略start
print(str8[:5])  # 输出:Hello
# 省略end
print(str8[7:])  # 输出:World!

使用负索引和步长可以实现字符串的反转

print(str8[::-1])  # 输出:!dlroW ,olleH


字符串的拼接

可以使用加号( + )操作符将两个或多个字符串拼接在一起

使用加号拼接

使用加号拼接字符串时,需要注意字符串之间是否有空格或其他分隔符

str9 = "Hello"
str10 = "World"
str11 = str9 + " " + str10
print(str11)  # 输出:Hello World

使用 join() 方法拼接

join()  方法可以将一个可对象迭代(如列表、元组等)中的字符串元素拼接成一个字符串,语法为  string.join(iterable) ,使用  join()  方法拼接字符串时,可以指定分隔符,如空格、逗号等

list1 = ["Hello", "World"]
str12 = " ".join(list1)
print(str12)  # 输出:Hello World


字符串的格式化

字符串格式化可以将变量或表达式嵌入到字符串中,生成动态的字符串

使用 % 格式化

 %s  用于格式化字符串, %d  用于格式化整数, %f  用于格式化浮点数等

name = "Tom"
age = 20
str13 = "My name is %s, I am %d years old." % (name, age)
print(str13)  # 输出:My name is Tom, I am 20 years old.

使用 str.format() 方法格式化

str.format()  方法可以使用占位符  {}  来格式化字符串,语法为  string.format(value1, value2, ...)

str14 = "My name is {}, I am {} years old.".format(name, age)
print(str14)  # 输出My: name is Tom, I am 20 years old.

也可以通过指定占位符的索引来控制变量的顺序

str15 = "My name is {0}, I am {1} years old.".format(name, age)
print(str15)  # 输出:My name is Tom, I am 20 years old.

使用 f-string 格式化(Python 3.6+)

f-string 是一种新的字符串格式化方法,使用  f  前缀和大括号  {}  来嵌入变量或表达式

str16 = f"My name is {name}, I am {age} years old."
print(str16)  # 输出:My name is Tom, I am 20 years old.


字符串的常用方法

大小写转换

upper()  方法将字符串中的所有字符转换为大写

str17 = "hello"
print(str17.upper())  # 输出:HELLO

lower()  方法将字符串中的所有字符转换为小写

str18 = "HELLO"
print(str18.lower())  # 输出:hello

capitalize()  方法将字符串的第一个字符转换为大写,其余字符转换为小写

str19 = "hello"
print(str19.capitalize())  # 输出:Hello

title()  方法将字符串中每个单词的首字母转换为大写

str20 = "hello world"
print(str20.title())  # 输出:Hello World

查找和替换

find()  方法用于查找字符串中某个子串开始的索引位置,如果子串不存在,则返回 -1

str21 = "Hello World,!"
print(str21.find("World"))  # 输出:6
print(str21.find("Python"))  # 输出:-1

replace()  方法用于替换字符串中的子串,语法为  string.replace(old, new, count) ,其中  old  是要替换的子串, new  是替换后的子串, count  是替换的次数(可选)

str22 = "Hello, World!"
str23 = str22.replace("World", "Python")
print(str23)  # 输出:Hello, Python!

分割和连接

split()  方法用于将字符串分割成一个列表,语法为  string.split(sep, maxsplit) ,其中  sep  是分隔(符默认为空白字符,如空格、换行符等), maxsplit  是分割的最大次数(可选)

str24 = "Hello, World!"
list2 = str24.split(", ")
print(list2)  # 输出:['Hello', 'World!']

join()  方法用于将一个可迭代对象中的字符串元素拼接成一个字符串,语法为  string.join(iterable)

list3 = ["Hello", "World"]
str25 = " ".join(list3)
print(str25)  # 输出:Hello World

使用字符串常量

在程序中,如果多次使用相同的字符串,可以将字符串定义为常量,避免重复创建字符串对象

CONSTANT = "Hello"
str26 = CONSTANT + " World"
print(str26)  # 输出:Hello, World

去除空白字符

 strip()  方法用于去除字符串两端的空白字符(包括空格、换行符等)

str27 = "   Hello, World!   "
print(str27.strip())  # 输出:Hello, World!

lstrip()  方法用于去除字符串左边的空白字符

print(str27.lstrip())  # 输出:Hello, World!   

rstrip()  方法用于去除字符串右边的空白字符

print(str27.rstrip())  # 输出:   Hello, World!

判断字符串

isalpha()  方法用于判断字符串是否只包含字母

str28 = "Hello"
print(str28.isalpha())  # 输出:True
str29 = "Hello123"
print(str29.isalpha())  # 输出:False

isdigit()  方法用于判断字符串是否只包含数字

str30 = "123"
print(str30.isdigit())  # 输出:True
str31 = "123a"
print(str31.isdigit())  # 输出:False

isalnum()  方法用于判断字符串是否只包含字母或数字

str32 = "Hello123"
print(str32.isalnum())  # 输出:True
str33 = "Hello123!"
print(str33.isalnum())  # 输出:False

isspace()  方法用于判断字符串是否只包含空白字符

str34 = "   "
print(str34.isspace())  # 输出:True
str35 = "   a   "
print(str35.isspace())  # 输出:False


字符串的编码和解码

在 Python 中,字符串是以 Unicode 编码存储的,但在处理文件或网络通信时,可能需要将字符串编码为其他格式,如 UTF-8、ASCII 等

编码

使用  encode()  方法可以将字符串编码为指定的格式,语法为  string.encode(encoding, errors) ,其中  encoding  是编码格式, errors  是错误处理方式(可选)

str35 = "你好"
bytes1 = str35.encode("utf-8")
print(bytes1)  # 输出:b'\xe4\xbd\xa0\xe5\xa5\xbd'

解码

使用  decode()  方法可以将字节串解码为字符串,语法为  bytes.decode(encoding, errors) ,其中  encoding  是解码格式, errors  是错误处理方式(可选)

bytes2 = b'\xe4\xbd\xa0\xe5\xa5\xbd'
str36 = bytes2.decode("utf-8")
print(str36)  # 输出:你好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值