一、 str类常用方法
1 upper() 字符串全变大写字母
v1 = "ab"
value = v1.upper()
print(v1,value)
注意对字符串使用upper()方法,新创建了一个对象,需要新创建一个变量value接收,不改变其本身的字符串
ab AB
2 lower() 字符串全变大写字母
v1 = "aBEx"
value = v1.lower()
print(v1,value)
aBEx abex
3 capitalize() 首字母变大写
v1 = "abEx"
value = v1.capitalize()
print(v1,value)
abEx Abex
4 strip() 去除首尾空格,注意不会去掉中间的空格
v1 = " asd fasdf "
value = v1.strip()
print(v1)
print(value)
#实例:
name = input("请输入用户名:")
value = name.strip()
if value == 'abex':
print('登录成功')
asd fasdf
asd fasdf
请输入用户名: abex #输入前面有空格填充
登录成功
5 lstrip() 只去掉左边空格,使用方法同strip()
6 rstrip() 只去掉右边空格
7 replace(old, new[, max]) 替换指定字符
参数
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次
v1 = "SCII第一次以规范标准的型态以规范标准的型态以规范标准的型态"
value = v1.replace("标准","**") #全部替换
print(value)
value = v1.replace("标准","**",2) #替换前2个该字符
print(value)
SCII第一次以规范**的型态以规范**的型态以规范**的型态
SCII第一次以规范**的型态以规范**的型态以规范标准的型态
8 split(str="", num=string.count(str)) 分割
参数
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。默认为 -1, 即分隔所有。
v1 = "SCII第一次以规范标准的型态以规范标准的型态以规范标准的型态"
value = v1.split('标准') # 列表类型
print(value)
value = v1.split('标准',2) # 列表类型,根据前两个进行分割
print(value)
['SCII第一次以规范', '的型态以规范', '的型态以规范', '的型态']
['SCII第一次以规范', '的型态以规范', '的型态以规范标准的型态']
9 splitlines() 按照换行符进行分割
content = "middle\napi\nDisk"
v = content.split('\n')
print(v)
v = content.splitlines()
print(v)
['middle', 'api', 'Disk']
['middle', 'api', 'Disk']
10 partition() 与split()相似,但是保留了分割符
,而且只能分割成两部分
content = "5+9+2"
v = content.split("+")
print(v)
v = content.partition("+")
print(v)
v = content.rpartition("+")
print(v)
['5', '9', '2']
('5', '+', '9+2')
('5+9', '+', '2')
对于rpartition()即是从右边开始分割
11 isdecimal() 判断当前字符串中是否全部都是数字
v = "123a"
val = v.isdecimal()
print(val)
False
12 encode() 在python3中,字符串默认是unicode编码,使用该函数将字符串转换为相应的编码的字节对象
a = "abex".encode('gbk')
str1='还好'
b=str1.encode('utf-8')
print(a)
print(b)
b'abex'
b'\xe8\xbf\x98\xe5\xa5\xbd'
13 find() 返回匹配字符开始位置的索引,找不到该字符时返回-1
name = 'alexaelx'
val = name.find("ex")
print(val)
val = name.find("fffff")
print(val)
if name.find('ex') != -1:
print('找到了')
2
-1
找到了
14 index() 与find()用法相同,只是当找不到指定字符时会报错
name = 'alexaelx'
val = name.index("ff")
print(val)
Traceback (most recent call last):
File "D:/BaiduYunDownload/python 学习/day6上午所有/day6/2.数据类型.py", line 97, in <module>
val = name.index("ff")
ValueError: substring not found
15 format() 字符串格式化,除了%d,%s的形式,在python中该可以用format()进行格式化
一共4种用法和1种format_map()用法
name = "我叫{0},年龄{1}-{0}-{0}"
val = name.format('海娇',45)
print(val)
name = "我叫{0},年龄{1}-{0}-{0}"
val = name.format(*['海角',45]) #注意format接收列表为参数时,需要改成可变参数
print(val)
v = input('>>>')
name = "我叫{name},年龄{age}"
val = name.format(name=v,age=18)
print(val)
name = "我叫{name},年龄{age}"
dic = {'name':'海角','age':18}
val = name.format(**dic) #注意参数加**
print(val)
name = "我叫{name},年龄{age}"
val = name.format_map({'name':'海角','age':18}) #format_map()只接收字典类型作为参数
print(val)
我叫海娇,年龄45-海娇-海娇
我叫海角,年龄45-海角-海角
>>>yanzgi
我叫yanzgi,年龄18
我叫海角,年龄18
我叫海角,年龄18
16 判断字符串为数字的方法扩展
name = '二十'
print(name.isdecimal()) # 123
print(name.isdigit()) # 123 ②
print(name.isnumeric()) # 123 ② 二十
False
False
True
17 join() 将字符串按指定的字符拼接起来
v = "_".join(['1','2','3'])
print(v)
v = "".join(['1','2','3'])
print(v)
1_2_3
123
18 其他一些方法
(1)maketrans与translate,把字母替换为指定的序号
table = str.maketrans("aeiou",'12345')
msg = "asdefasdfjasdifw[kmnakjudfasdf"
val = msg.translate(table)
print(val)
1sd2f1sdfj1sd3fw[kmn1kj5df1sdf
(2)swapcase() 字母大小写互换
name = 'alEx'
print(name.swapcase())
ALeX
(3)isidentifier()
(4)title() istitle()
(5)isalpha() 判断是否是字母,注意中文也算字母
(6)isalnum() 判断是否是数字,字母,字母+数字
二 str类中公共方法(list,tuple,dict类中也有下面方法)
- 计算当前字符串长度
v = "徐芳名sdf"
value = len(v)
print(value)
- 根据“索引”“下标”取值(只能取值,不能根据索引改值)
v = "ASCII第一次以规范标准的型态发"
value = v[0]
print(value)
v = "ASCII第一次以规范标准的型态发"
value = v[0:5] # 0 1 2 3 4
value = v[4:5] # 4
value = v[4:-1] # 4
value = v[4:] # 4
print(value)
v = "ASCII第一次以规范标准的型态发"
value = v[1:15:3]
print(value)
v = "ASCII第一次以规范标准的型态发"
le = len(v) - 1 #动态取最后1个 或v[-1]
value = v[le]
print(value)
- 循环,将str对象中每个元素循环(可迭代对象)
v = "ASCII第一次以规范标准的型态发"
for i in v:
print(i)