Python 字符串编码与格式化【简单易懂,代码可以直接运行,强烈推荐】
内容:
#编码
#python默认是utf-8编码
#语法格式:byte_c = content.encode()
#字符串元字符概念
‘’’
s = ‘xxx’:普通字符,python3中默认是unicode编码,
s = u’xxx’:指定字符串是用Unicode编码
s = b’xxx’:指定字符串用二进制保存
s = r’xxx’:放在字符串转义,表示字符串原本的含义
s = f’xxx’:字符串格式化输出的一种方式
‘’’
‘’’
格式化:按照一定的方式,将字符串和变量混合输出
#方法一:字符串拼接
#方法二:%形式拼接
#%s:字符串
#%d:表示整数
#%f:表示小数
字符串拼接使用场景:用于python爬虫爬取网页时url的变换,format居多
#使用场景:字符串中本身有%号时,url–编码–url中的汉字会按照这个编码显示
#http://www.baidu.com/s?wd=%E5%A4%A9%E9%97%AE%s(后面取出来的字符时汉字赋值过来转化后的编码)
#url = ‘http://www.baidu.com/s?wd=%E5%A4%A9%E9%97%AE%s’
#print(url % name)
#string = ‘https://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB’
#这种方法表明:当字符串本身含有%s时,不能再去使用%去格式化字符串
#方法3:format()
点个👍吧
代码如下:
#编码
#python默认是utf-8编码
#语法格式:byte_c = content.encode()
content = '''
难受呀马飞!
我和facker55开!
给阿姨上一杯卡布奇诺。
17张牌你能秒我 你能秒杀我,你今天能十七张牌把卢本伟秒了,我当场就把这个电脑屏幕吃掉!
单走一个六,sb。
给阿姨倒一杯卡布奇诺。
卢本伟牛逼!!!!
你干嘛!你干嘛!你找我单挑?!小伙子你找我单挑?!不应该呀!有点不理智啊老铁!
伞兵一号卢本伟,准备就绪!
'''
byte_c = content.encode()
print(byte_c)
byte_c1 = bytes(content,encoding='utf-8')
print(byte_c1)
byte_c2 = bytes(content,encoding='gbk')
print(byte_c2)
print('==='*20)
#字符串元字符概念
'''
s = 'xxx':普通字符,python3中默认是unicode编码,
s = u'xxx':指定字符串是用Unicode编码
s = b'xxx':指定字符串用二进制保存
s = r'xxx':放在字符串转义,表示字符串原本的含义
s = f'xxx':字符串格式化输出的一种方式
'''
path = 'c:\a\b\c'#c:\c \c不是转义字符所以保留了下来
path1 = r'c:\a\b\c'#c:\a\b\c
path2 = 'c:\\a\\b\c'#c
print(path)
print(path1)
print(path2)
#正则表达式中也需要转义字符
print('---'*5)
print('\r',end='')#linux系统下面的换行
print('---'*5)
print('\n',end='')#window系统下的换行
print('==='*10)
#字符串格式化
'''
格式化:按照一定的方式,将字符串和变量混合输出
下面输出自我介绍
我叫于笨笨,今年10岁了,身高175.8cm
'''
#属性值
name = '于笨笨'
age = 19
height = 180
# 方法一:字符串拼接
s1 = '我叫'+name+',今年'+str(age)+'岁了'+'身高'+str(height)+'cm'
print(s1)
#方法二:%形式拼接
#%s:字符串
#%d:表示整数
#%f:表示小数
s2 ='我叫%s,今年%d岁了,身高%fcm'
#控制输出格式,小时保留两位
s3 = '我叫%s,今年%d岁了,身高%0.2fcm'
new_s2 = s2%(name,age,height)
new_s3 = s3%(name,age,height)
print(new_s2)#我叫于笨笨,今年19岁了,身高180.000000cm
print(new_s3)#我叫于笨笨,今年19岁了,身高180.00cm
print('==='*10)
# #使用场景:字符串中本身有%号时,url--编码--url中的汉字会按照这个编码显示
# #http://www.baidu.com/s?wd=%E5%A4%A9%E9%97%AE%s(后面取出来的字符时汉字赋值过来转化后的编码)
# url = 'http://www.baidu.com/s?wd=%E5%A4%A9%E9%97%AE%s'
# print(url % name)
# string = 'https://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB'
#这种方法表明:当字符串本身含有%s时,不能再去使用%去格式化字符串
#方法3:format()
s4 = '我叫{},今年{}岁了,身高{}cm'.format(name,age,height)
print(s4)#我叫于笨笨,今年19岁了,身高180cm
点个👍吧,秋梨膏!!