当前位置 : 主页 > 编程语言 > java >

【Python3】中str方法汇总

来源:互联网 收集:自由互联 发布时间:2022-06-30
一、 str类常用方法 1 upper() 字符串全变大写字母 v1 = "ab" value = v1.upper() print(v1,value) 注意对字符串使用upper()方法,新创建了一个对象,需要新创建一个变量value接收,不改变其本身的字符

一、 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)


    上一篇:【Python3】有关字符串和字节类型,编码
    下一篇:没有了
    网友评论