Python3笔记022 – 5.1 字符串常用操作

第5章 字符串及正则表达式

5.1 字符串常用操作

5.1.1 拼接字符串

使用+运算符可完成多个字符串的拼接,产生一个新的字符串对象。

str1 = "2020年07月06日是"
str2 = "星期一"
print(str1+ "-" + str2)

字符串不允许直接与其他类型的数据拼接,非字符串须转换为字符串。

# 字符串拼接的例子
str1 = "2020年07月06日是7月第"
str2 = "天"
num1 = 6
print(str1 + str(num1) + str2)

5.1.2 计算字符串的长度

python默认UTF-8编码,一个汉字占3个字节,一个字母占1个字节,一个数字占一个字节。

len(string.encode())
str1 = "2020"
str2 = "星期三"
str3 = "Wednesday"
print(len(str1.encode()))
print(len(str2.encode()))
print(len(str3.encode()))

5.1.3 截取字符串

string[start : end : step]
# 去掉星期两字
str1 = "星期一星期二星期三星期四星期五星期六星期日"
print(str1[2:len(str1):3])

5.1.4 分割、合并字符串

1、分割

str.split(sep, maxsplit)
参数说明
sep:分隔符,默认为所有的空字符。
maxsplit:分割次数.默认为 -1, 即分隔所有。
str1 = "Google#Runoob#Taobao#Facebook"
# 第二个参数为2,分割2次,返回两个参数列表
strnew = str1.split("#", 2)
print(strnew)
输出:['Google', 'Runoob', 'Taobao', 'Facebook']
str1 = "星期一#星期二#星期三#星期四#Sunday"
# 第二个参数为2,分割2次,返回两个参数列表
strnew = str1.split("#", 20)
print(strnew)
输出:['星期一', '星期二', '星期三', '星期四', 'Sunday']

2、合并字符串

strnew = string.join(iterable)
参数说明
string:指定的字符
iterable:可迭代的一个序列
string = '-'
iterable = 'python'
strnew = string.join(iterable)
print(strnew)
输出:p-y-t-h-o-n

5.1.5 检索字符串

1、count()方法

list1 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
print(list1.count("Tuesday"))
output:
1

2、find()方法

str1 = "星期一星期二星期三星期四星期五星期六星期日"
print(str1.find("星期六"))
output:
15
# 如果查找的字符串不存在,将输出-1
str1 = "星期一星期二星期三星期四星期五星期六星期日"
print(str1.index("星期八"))
output:
-1

3、index()方法

str1 = "星期一星期二星期三星期四星期五星期六星期日"
print(str1.index("星期六"))
output:
15
# 如果查找的字符串不存在,将会产生异常
str1 = "星期一星期二星期三星期四星期五星期六星期日"
print(str1.index("星期八"))
output:
ValueError: substring not found

4、startswith()方法

str.startswith(prefix[, start[, end]])
str1 = "#星期一星期二星期三星期四星期五星期六星期日"
print(str1.startswith("#"))
output:
True

5、endswith()方法

str.endswith(suffix[, start[, end]])
str1 = "#星期一星期二星期三星期四星期五星期六星期日"
print(str1.endswith("日"))
output:
True

5.1.6 字母的大小写转换

1、lower()方法

str.lower()
str1 = "Monday"
print(str1.lower())
输出:monday

2、upper()方法

str.upper()
str1 = "Monday"
print(str1.upper())
输出:MONDAY

5.1.7 去除字符串中的空格和特殊字符

1、strip()方法

strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

str.strip([chars])
chars:移除字符串头尾指定的字符序列
str1 = "                      M o n da  y               "
print(str1.strip())
output:M o n da  y

2、lstrip()方法

lstrip() 方法用于截掉字符串左边的空格或指定字符

str.lstrip([chars])
str1 = "                      M o n da  y               "
print(str1.lstrip())
M o n da  y               

3、rstrip()方法

rstrip() 删除 string 字符串末尾的指定字符(默认为空格)

str.rstrip([chars])
str1 = "                      M o n da  y               "
print(str1.rstrip())
output:                      M o n da  y

5.1.8 格式化字符串

1、使用%操作符—放弃使用

'%[-][+][0][m][.n]格式化字符'%exp

2、使用字符串对象的format()方法—建议使用

str.format(args)
str:用于指定字符串的显示样式(即模板)
args:用于指定要转换的项,如果有多项,逗号分隔

创建模板

{[index][:[[fill]align][sign][#][width][.precision][type]]}

format()方法中常用的格式化

格式化字符 说明
s 对字符串类型
d
c 将十进制整数自动转换成对应的Unicode字符
e或者 转换为科学计数法表示再
g或者 自动在e和f或者EF中切换
b 将十进制整数自动转换成二进制表示再
o 将十进制整数自动转换成八进制表示再格式化
x或者 将十进制整数自动转换成十六进制表示再格式化
f或者 转换为浮点数再格式化
% 显示
template = '今天的日期是{:s},星期{:s}'
date = template.format('20200706','一')
print(date)
output:
今天的日期是2020706,星期一

5.1.9 字符串转字节

# python3添加了bytes字节类型
s = "apple"
print(bytes(s,encoding='utf-8'))
output:
b'apple'
Tags: