使用ord()可以把字符转化成对应的Unicode码
使用chr()可以把数字转化为字符串
字符串编码转换
text = "Hello, 你好"
encoded_text = text.encode('utf-8')
print(encoded_text)
将字符串从UTF-8编码解码为Unicode编码
byte_data = b'Hello, \xe4\xbd\xa0\xe5\xa5\xbd' # UTF-8编码的字节串
decoded_text = byte_data.decode('utf-8')
print(decoded_text)
str1 = "人生若只如初见"
byte1 = str1.encode("GBK") # 采用GBK编码进行转换
byte2 = str1.encode("utf-8") # 采用utf-8编码进行转换
print("原字符串:", str1)
print("GBK转换:", byte1)
print("utf-8转换:", byte2)
>>>
原字符串: 人生若只如初见
GBK转换: b'\xc8\xcb\xc9\xfa\xc8\xf4\xd6\xbb\xc8\xe7\xb3\xf5\xbc\xfb'
utf-8转换: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa5\xe5\x8f\xaa\xe5\xa6\x82\xe5\x88\x9d\xe8\xa7\x81'
len(): 返回字符串的长度
str = "Hello, World!"
length = len(str)
print(length) # 输出:13
lower() 和 upper(): 分别将字符串转换为小写和大写
str = "Hello, World"
print(str.lower()) # 输出:hello, world
print(str.upper()) # 输出:HELLO, WORLD
capitalize() :将字符串的第一个字符转换为大写,并返回新字符串
str = "hello, world"
print((str.capitalize())) #输出: Hello, world
strip()、lstrip() 和 rstrip(): 去除字符串两端、左端或右端的空格或指定字符
str = " Hello, World "
print(str.strip()) # 输出:"Hello, World"
print(str.lstrip()) # 输出:"Hello, World "
print(str.rstrip()) # 输出:" Hello, World"
find() 和 index(): 查找子字符串在字符串中的位置
str = " Hello, World "
print(str.find("World")) # 输出:10
print(str.index("World")) # 输出:10
replace(): 替换字符串中的子字符串
str = "Hello, World"
print(str.replace("World","Hello")) # 输出:Hello, Hello
center():将字符串居中,并使用指定字符(默认为空格)填充两侧的空白部分,使得字符串长度为指定宽度,并返回新字符串
str = "Hello,World"
print(str.center(20,'-')) # 输出:----Hello,World-----
upper() 和 lower():将字符串中所有字母都转换成大写或者小写,并返回新字符串
str = "Hello,World"
print(str.upper()) # 输出:HELLO,WORLD
print(str.lower()) # 输出:hello,world
isupper() 和 islower():判断字符串中所有字母是否都是大写或者小写,并返回相应的布尔值
str = "Hello,World"
print(str.isupper()) # 输出:False
print(str.islower()) # 输出:False
格式化字符串
位置参数格式化是通过占位符%实现的。可以在字符串中使用占位符%表示待插入的变量,然后使用元组作为参数,将元组中的变量传递给占位符.
name = "zhangsan"
age = 20
formatted_string = "My name is %s and I am %d years old." % (name, age)
print(formatted_string)
其次在占位符%后面,可以用以下字符指定数据类型和格式:
%d:整数类型
%f:浮点数类型
%s:字符串类型
%x:十六进制整数类型
f-string
name = "zhangsan"
age = 20
print(f"My name is {name} and I'm {age} years old.")
格式化函数format()
name = "zhangsan"
age = 20
print("My name is {} and I'm {} years old.".format(name, age))
字符串的编码和解码
将字符串转换为字节序列称为编码。在Python中,常用的字符串编码方式包括ASCII、UTF-8、UTF-16等
解码UTF-8编码的字节序列
str = "你好"
encoded_str = str.encode(errors='replace') #默认是utf-8,因为utf-8中文占3个字节
print(encoded_str)
#1.使用bytes->str操作
print(bytes.decode(encoded_str,'utf-8'))
#2.解码utf-8编码的字节序列
str2 = b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(str2.decode('utf-8'))
解码gbk编码的字节序列
str = "你好"
gbk_str = str.encode('gbk',errors='replace') #因为gbk中文占2个字节
print(gbk_str)
#1.使用bytes->str操作
print(bytes.decode(gbk_str,'gbk'))
2.解码gbk编码的字节序列
str2 = b'\xc4\xe3\xba\xc3'
print(str2.decode('gbk'))
使用字符串的 join() 方法
str1 = "Hello"
str2 = "World"
print("".join([str1,str2]))
使用格式化字符串进行拼接操作
str1 = "Hello"
str2 = "World"
# 使用格式化字符串拼接的三种方法
print('%s%s' % (str1,str2))
print(f'{str1}{str2}')
print('{0}{1}'.format(str1,str2))
# 使用格式化字符串拼接的三种方法
print('%s%s' % (str1,str2))
print(f'{str1}{str2}')
print('{0}{1}'.format(str1,str2))
通过字符串拼接以及not in操作达到去重效果
str = "helloworldhelloabcgdfoefpa"
#1.字符串拼接以及not in
new_str_1 = ""
for item in str:
if item not in new_str_1:
new_str_1 += item #拼接操作
print(new_str_1)
通过索引 + not in操作
str = "helloworldhelloabcgdfoefpa"
#2.索引 + not in操作
new_str_2 = ""
for i in range(len(str)):
if str[i] not in new_str_2:
new_str_2 += str[i]
print(new_str_2)
通过集合去重+列表排序
str = "helloworldhelloabcgdfoefpa"
#3.通过集合去重+列表排序
new_str_3 = set(str)
lst = list(new_str_3)
lst.sort(key=str.index)
print(''.join(lst))