Python3中str方法汇总

一、 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中也有下面方法)

  1. 计算当前字符串长度
v = "徐芳名sdf"
value = len(v)
print(value)
  1. 根据“索引”“下标”
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)
  1. 循环,将str对象中每个元素循环(可迭代对象)
v = "ASCII第一次以规范标准的型态发"
for i in v:
    print(i)

猜你喜欢

转载自blog.csdn.net/u011035397/article/details/88777701
今日推荐