【Python基础】字符串基本操作(切片、格式化、编码)

一. 字符串

1.1 字符串切片操作

  • 字符串是不可变类型
    • 不具备增、删、改操作
    • 切片操作将产生新的对象,但如果是相同的字符串,对象不变。
  • 操作格式:s[start:end:step]
    • start:截取的起始点、包含、默认为 0
    • end:截取的结束点、不包含、默认到结束
    • step:步长、默认为1,若为-1,则表示逆序

在这里插入图片描述

s = 'hello,Python'
print(s[:5]) # hello
print(s[6:]) # Python

s1 = s[::1]
s2 = s[::-1]
print(s1) # hello,Python
print(s2) # nohtyP,olleh
print(id(s))  # 1940266368688
print(id(s1)) # 1940266368688
print(id(s2)) # 1940267846832

1.2 格式化字符串

1.2.1 内容填充

共有三种方法:

  1. % 占位符:其中%s字符串、%d整数、%f浮点数
  2. str.format():配合{}
  3. f-string
name = '张三'
age = 20
# 1
print('我叫%s,今年%d岁' % (name,age))
# 2
print('我叫{0},今年{1}岁,我今年真的是{1}岁!'.format(name,age))
# 3 
print(f'我叫{name},今年{age}岁')
1.2.2 宽度精度
  1. %占位符 宽度精度的限制:
print('%10d' % 99) # 10表示的是宽度
# 输出:'        99'
print('%f' % 3.1415926) # 默认保留6位小数(四舍五入)
# 输出:'3.141593'
print('%.3f' % 3.1415926) #.3表示是小数点后三位
# 输出:'3.142'
print('%10.3f' % 3.1415926) #共总宽度为10,小数点后3位
# 输出:'     3.142'
  1. {} 宽度精度的限制:
print('{0:.3}'.format (3.1415926))  # 3表示的是一共是3位数
# 输出:'3.14'
print('{:.3f}'.format (3.1415926))  # 3f表示是3位小数
# 输出:'3.142'
print('{:10.3f}'.format(3.1415926)) #同时设置宽度和精度, 一共是10位,3位是小数
# 输出:'     3.142'

1.3 编码解码

爬虫技术 肯定会用到。

通过encodedecode函数可以实现字符串的编码方式和解码方式的设定,不对应的编解码方式会产生报错。

  • GBK编码格式:一个中文占两个字节
  • UTF-8编辑格式:一个中文占三个字节
pikaqiu = '皮卡丘'
# 编码
print (pikaqiu.encode(encoding='GBK')) 
# b'\xc6\xa4\xbf\xa8\xc7\xf0'
print (pikaqiu.encode(encoding='UTF-8')) 
# b'\xe7\x9a\xae\xe5\x8d\xa1\xe4\xb8\x98'

# 解码
byte=pikaqiu.encode (encoding='GBK') # byte代表就是一个二进制数据(字节类型的数据)
print (byte.decode (encoding='GBK')) # 解码:皮卡丘

注意:编码和解码的方式不同会报错,若用UTF-8方式解码byte,会产生如下错误:

UnicodeDecodeError:
'utf-8' codec can't decode byte 0xbf in position 2: invalid start byte
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

如果皮卡会coding

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

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

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

打赏作者

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

抵扣说明:

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

余额充值