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'
敬请关注个人微信公众号:测试工匠麻辣烫