Python分享日志——8day

Python第八节课
字符串
字符串用单、双、三引号定义的数据类型,是一种不可变序列;
有驻留机制,所以不会开辟新空间,例如:a=‘Python’ b=‘Python’ id(a)==id(b)
(现在的编程软件对驻留进行了优化,所以再考虑驻留意义不是很大,所以就省略了)

一)函数操作
1)字符串查询
index() —— 查询要查找的字符第一次出现的位置,不存在就报错
rindex() —— 查询要查找的字符最后一次出现的位置,不存在就报错
find() —— 查询要查找的字符第一次出现的位置,不存在返回数值-1
rfind() —— 查询要查找的字符最后一次出现的位置,不存在就报错

2)大小写转换
upper() —— 将字符串全转换为大写
lower() —— 将字符串全转换为小写
swapcase() —— 将字符串大写换位小写,小写换为大写
capitalize() —— 将字符串第一个字母大写,其他均小写(文章正文)
title() —— 将字符串个单词首字母大写,其他小写(标题)

3)内容对齐
含两个参数,一般a为宽度,整个字符串要求多宽,当小于字符串长度时,返还完整字符串,参数b为填充符号,默认为空格。
center(a,b) —— 居中对齐
ljust(a,b) —— 左对齐
rjust(a,b) —— 右对齐

含一个参数a,即为宽度,同上;默认左侧用0补齐
zfill(a) —— 右对齐

4)劈分
split() —— 从左侧劈分,默认空格处劈分,也可以设定劈分符号和分割次数,返回值为列表。
rsplit() —— 从右侧劈分,同上。
例:

a='Hello&word&and&python'
c=a.split(sep='&')
d=a.split(sep='&',maxsplit=2)
print(c)
print(d)
结果如下:
['Hello', 'word', 'and', 'python']
['Hello', 'word', 'and&python']

5)判断字符串方法

a='Hello&word&and&python'
b1=a.isidentifier()
b2=a.isspace()
b3=a.isalpha()
b4=a.isdecimal()
b5=a.isnumeric()
b6=a.isalnum()

b1为判断字符串是否为合法标识符(由数字、字母和下划线组成)
b2为判断字符串是否由空白字符组成(空格、回车、水平制表符)
b3为判断字符串是否由字母组成
b4为判断字符串是否由十进制数字组成
b5为判断字符串是否由数字组成(罗马数字、汉字数字也算)
b6为判断字符串是否由字母和数字组成(汉字也算)

6)替换和合并

二)对比&格式化
1)字符串比较
字符串之间是可以进行对比的,用<,>,<=,>=,= =,!= 一位一位的对比,相同则进行下一位对比,若出现一长一短,则比较到短的结束,例如:“app”= =“apple”。

2)切片
[ start : stop : step ],基本用法和之前提到的相同。

3)格式化
即可以将内容放到字符串中占位符的位置。
占位符:
%d —— 整数型(可以规定保留的位数)
%f —— 浮点型(可以规定保留的位数和小数点后几位)
%s —— 字符串
其中格式化有两种方式,一种为%形式,一种为format形式
具体例子如下:

a='我叫 %s  ,今年 %d 岁'
b='我叫 {0}  ,今年 {1} 岁'
c=3.1415926
print(a % ('小强',15))
print(b.format('小强',16))

print('%10d' % 25)
print('%10.3f' % c)
print('{0:10.3}'.format(c))//10为宽度10位,3为一共保留三位,若在3后加f,则表示小数点后三位
结果为:
我叫 小强  ,今年 15 岁
我叫 小强  ,今年 1625
     3.142
      3.14

4)编码和解码
编码:将字符串转换为二进制数据类型(bytes)
解码:将bytes数据类型转换为字符串
程序如下:

a='你是谁'
b1=a.encode(encoding='GBK')
print(b1)
b2=a.encode(encoding='UTF-8')
print(b2)
c1=b1.decode(encoding='GBK')
print(c1)
c2=b2.decode(encoding='UTF-8')
print(c2)
结果为:
b'\xc4\xe3\xca\xc7\xcb\xad'
b'\xe4\xbd\xa0\xe6\x98\xaf\xe8\xb0\x81'
你是谁
你是谁

在GBK格式中,一个中文占用两个字节
在UTF-8格式中,一个中文占用三个字节

解码和编码格式必须相同,均为 GBK 或者均为 UTF-8 ,否则会报错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值