字符串

字符串特点:不可变,有序序列。

一 不可变类型

二 字符串的序列操作

1 索引
2 切片
3 拼接和重复
4 赋值
5 遍历

三 字符串的方法

1 查找

方法 功能
find 查找,返回从左第一个指定字符的索引,找不到返回-1
rfind 查找,返回从右第一个指定字符的索引,找不到返回-1
index 查找,返回从左第一个指定字符的索引,找不到报错
rindex 查找,返回从右第一个指定字符的索引,找不到报错
count 计数功能,返回自定字符在字符串当中的个数

2 拆分

方法 描述
partition(mystr) 把mystr以str分割成三部分,str前,str自身和str后 ,返回元组类型
splitlines 按照行分隔,返回一个包含各行作为元素的列表,按照换行符分割
split 按照指定的内容进行分割,maxsplit:默认将指定的所有的内容进行分割,可以指定 maxsplit的值,如果maxsplit=1 表示只按照第一个指定内容进行分割,后面剩余的不分割。 默认按空格分割,返回列表类型

3 替换

方法 描述
replace 从左到右替换指定的元素,可以指定替换的个数,默认全部替换
translate 按照对应关系来替换内容 from string import maketrans

4 修饰

方法 描述
center 让字符串在指定的长度居中,如果不能居中左短右长,可以指定填充内容,默认以空格填充
ljust 让字符串在指定的长度左齐,可以指定填充内容,默认以空格填充
rjust 让字符串在指定的长度右齐,可以指定填充内容,默认以空格填充
zfill 将字符串填充到指定的长度,不足地方用0从左开始补充
strip 默认去除两边的空格,去除内容可以指定 ,同时可以去除多个符号
rstrip 默认去除右边的空格,去除内容可以指定
lstrip 默认去除左边的空格,去除内容可以指定

5 变形

方法 描述
upper 将字符串当中所有的字母转换为大写
lower 将字符串当中所有的字母转换为小写
swapcase 将字符串当中所有的字母大小写互换
title 将字串符当中的单词首字母大写,单词以非字母划分
capitalize 只有字符串的首字母大写
expandtabs 把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8
# 需求:用户输入验证码
r_code = "R ULT"
code = input("请输入验证码(不区分大小写):")
if code.upper() == r_code:
    print("验证码正确")

6 判断

方法 描述
isalnum 判断字符串是否完全由字母或数字组成
isalpha 判断字符串是否完全由字母组成
isdigit 判断字符串是否完全由数字组成
isupper 判断字符串当中的字母是否完全是大写
islower 判断字符串当中的字母是否完全是小写
istitle 判断字符串是否满足title格式
isspace 判断字符串是否完全由空格组成
startswith 判断字符串的开头字符,也可以截取判断 ,如果截取,不包含右边界
endswith 判断字符串的结尾字符,也可以截取判断
# 需求:用户输入一些符号,请统计数字个数,字母个数,以及其他符号数量。
my_str = input("随便输入一些符号:")
num_count = 0
alp_count = 0
other_count = 0
for i in my_str:
    if i.isdigit():
        num_count += 1
    elif i.alpha():
        alp_count += 1
    else:
        other_count += 1

四 编码和解码

  • str:用于展示

  • byte:用于传输

  • encode是编码,将字符串转换成字节码。str-->byte

  • decode是解码 ,将字节码转换成字符串。 byte-->str

s = "记得交作业~"
print(len(s))  # 6

# 编码encode():str--->bytes:默认使用utf8编码格式
# s2 = s.encode(encoding="utf8")
# print(s2)
# print(len(s2))  # 16

# 以gbk格式编码
s2 = s.encode(encoding="gbk")
print(s2)
print(len(s2))  # 11

# 接收到消息
# 解码:decode():
# s3 = s2.decode()
# print(s3)

# 以utf-8解码一个以gbk编码的信息:要不报错要不乱码
s3 = s2.decode()
print(s3)

utf-8:英文还是占1个字节,中文占3个字节

gbk:英文还是占1个字节,中文占2个字节

五 转义字符(\)和原生字符(R/r)

msg ='tom's phone number is 110'
print(msg)

转义字符:顾名思义改变原有字符的意义

转义字符格式: \特定字符

问题:有一篇小说,如果内部存在特殊符号,但是不希望表示出特殊含义,需要使用转义符号,但是工作量会很大。

需要使用效率更高的方式解决:原生字符

在任意字符串之前添加字母r或者R,那么当前字符串中所有转义字符在使用时都不会进行转义操作

posted @ 2020-12-02 19:23  小杜打醋尢买布  阅读(91)  评论(0编辑  收藏  举报