字符串编码转换

使用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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44245323

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值