Python 字符串(一)

本文深入探讨了字符串的GBK和UTF-8编码方式,详细解释了如何使用Python的encode和decode方法进行编码与解码。同时,文章还介绍了字符串的常见操作,包括拼接、与整数的连接、长度计算等实用技巧。
摘要由CSDN通过智能技术生成

字符串转换

#GBK/GB2312:英文字母用一个字节表示,中文汉字用两个字节表示
#UTF-8:英文字母用一个字节表示,中文汉字用三个字节表示(国际通用编码格式)
#使用encode方法进行编码:把一个字符串转化为二进制数据类型
str1 = "我自横刀向天笑"
byte1 = str1.encode("GBK")  #采用GBK编码进行转化
print("原字符串为:",str1)  #打印原字符串
print("转换后的字符串为:",byte1)  #打印转化后字符串
原字符串为: 我自横刀向天笑
转换后的字符串为: b'\xce\xd2\xd7\xd4\xba\xe1\xb5\xb6\xcf\xf2\xcc\xec\xd0\xa6'
#转化为UTF-8编码
Utf8 = str1.encode("UTF-8")  #采用GBK编码进行转化
print(Utf8)  #utf-8 一个中文占3个字节,所以同一个字符串转化后形式上比GBK要长
b'\xe6\x88\x91\xe8\x87\xaa\xe6\xa8\xaa\xe5\x88\x80\xe5\x90\x91\xe5\xa4\xa9\xe7\xac\x91'
#使用decode方式解码:将二进制数据转化为字符串
newstr = Utf8.decode("UTF-8")  #将原utf-8编码格式转化为普通字符串,注意括号内的格式一定要与原字符串格式一致
print(newstr)  

我自横刀向天笑
newstr1 = byte1.decode("GBK")#将原GBK模式转化为字符串
print(newstr1)
我自横刀向天笑

字符串常用操作

#字符串通常可用单引号'',双引号“”,和三引号'''表示,单引号和双引号内容在一行,三引号可用换行

拼接字符串

#将两个字符串合并为一个字符串
str2 = "hello,how are you !"
str3 = "我很好,您呢!"
print(str2 + str3)
hello,how are you !我很好,您呢!
#将字符串和整型连接,则需小心
str5 = "我数学考了"
str6 = 135
str7 = "分"
print(str5 + str(str6) + str7)  #整型需转化为字符串型才能结合
我数学考了135分
#例:两人对话
jia = "今天天气真好呀,可不可以出去玩呀"
yi = "天气虽好,但心情不佳呀,昨天打牌输了好多钱呀"
print(jia + "\n" + yi)  # \n 表示换行 ,注意引号的使用
今天天气真好呀,可不可以出去玩呀
天气虽好,但心情不佳呀,昨天打牌输了好多钱呀

计算字符串的长度

str8 = "人生苦短,我用 Python !"   #字符串内容
print(len(str8))   #打印长度        #不论中文还是英文,都算一个
16
#如果要获取字节数,则需考虑编码类型
print(len(str8.encode()))    #encode里面默认为utf-8 编码,六个汉字“人生苦短我用”占18个字节,中文逗号,感叹号各占3个字节,空格占一个字节有两个空格,Python占6个,共32 
32
#如果用GBK格式,则一个中文占2个字节
print(len(str8.encode("GBK")))    #六个汉字“人生苦短我用”占12个字节,中文逗号,感叹号各占2个字节,空格占一个字节,Python占6个,共32 
24
#如果把中文逗号和感叹号改为英文状态,则各占一个字节
str9 = "人生苦短,我用 Python !"
print(len(str9.encode()))    #比中文字符符号少4个字节,为28个
28
print(len(str9.encode("GBK")))   #比中文符号少2个字节,为22个
22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哈伦2019

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

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

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

打赏作者

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

抵扣说明:

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

余额充值