字符串类型内置方法

1. 作用

描述性质的东西,如人的名字、单个爱好、地址、国家等

2. 定义方式

使用''、""、''''''、""""""包裹的的一串字符

b'101': 二进制编码的字符串

r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思

s = 'sdfklsdjfk'

s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100  
               # 有这种二进制的定义方式,其实一点用都没有
print(s)

# 
 换行
s  = 'a
a'  # 碰到斜杠了,计算机就清楚下一个字符和拼接在一起会有特殊的意义
print(s)

# 	 缩进4个空格
s = 'a		a'
print(s)

# 
 回退上一个打印结果,覆盖上一个打印结果
print('
a',end='')
print('\ra',end='')  # 加一个让后面的变得无意义

s = 'a\na'
print(s)     # a
a
s = r'
a	
a'  
print(s)     # 
a	
a

3. 字符串内置方法(只有字符串类型才能使用)

1. 索引取值(只可取不可改变)

s = 'nick handsome'
print(s[1])

2. 切片(顾头不顾尾,步长)

s = 'nick handsome'
print(s[4:0:1])     # 1表示从左到右
print(s[-4::-1])    # -1表示从右到左  # sdnah kcin  # 不推荐掌握
print(s[4:0:-1])    # -1表示从右到左   #  kci

3. for循环

s = 'nick handsome'
for i in s:
print(i)

4. 去两端空白:strip()

s1 = '      nick handsome         '
print(s1.strip())  # 去两端的空白

s2 = '***!!!!!nick handsome----***'
print(s2.strip('-*!'))  # nick handsome
                        # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
print(s2.strip('nick')) # ***!!!!!nick handsome----***

s2.strip('*-!')  # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉
print(s2)

5. 切割:split()

s2 = '***!!!!!nick handsome----***'
print(s2.split())  # 默认以空格切割字符串  
                   # ['***!!!!!nick', 'handsome----***']
print(s2.split('!'))  # 以!切割 
                      # ['***', '', '', '', '', 'nick handsome----***']
print(s2.split('!', 2)) # ['***', '', '!!!nick handsome----***']

6. 成员运算 in 或 not in

s2 = '***!!!!!nick handsome----***'
print('*' in s2)  # True
print('$' not in s2)  # True

7. 长度:len

s2 = 'nick handsome'
print(len(s2))  # 求字符串的长度

8. lstrip()

s2 = '***!!!!!nick handsome----***'
print(s2.lstrip('*'))

9. rstrip()

print(s2.split('*', 1))

10. lower & upper

s3 = 'aaabbJ'
print(s3.lower())   # 小写
print(s3.upper())   # 大写

11. startswith & endswith

s3 = 'aaabbJ'
print(s3.startswith('b'))   # 以···开头
print(s3.endswith('J'))     # 以···结尾

12. join

join(用的比较多)一般和split联用

s3 = ' '
print(s3.join(['234', '234', '234']))  # 以s3为间隔符,拼接列表里的每一个元素

s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
s1 = s.split('/')
print('*'.join(s1))

lis = [1,2,'19']
print(f"':'.join(lis): {':'.join(lis)}")  # 报错,数字不可和字符串拼接

13. 替换:replace

s2 = 'yongjiu handsome'
print(s2.replace('yongjiu', 'gebilaowang'))

14. isdigit(纯数字) / isalpha(纯字母)

isdigit(): 如果字符串中只包含数字,则返回True,否则返回False。

isalpha(): 如果字符串中只包含字母,则返回True,否则返回False。

s2 = '12312'
print(s2.isdigit())

s3 = 'aaac1c'
print(s3.isalpha())

15. 了解

# find|rfind|index|rindex|count
s2 = '**23423***ni234234ck $$ hand223423some******'
print(s2.find('$'))    # 从左找,找到第一个停止,找不到返回-1
print(s2.rfind('$'))   # 从右找,找到就停止,找不到返回-1

print(s2.index('$'))   # 找不到报错
print(s2.rindex('$'))  # 找不到报错

# center|ljust|rjust|zfill(默认用0填充)
s2 = 'nick handsome'
print(s2.center(50, '*')) # 居中
print(s2.ljust(50, '*'))  # 居左
print(s2.rjust(50, '*'))  # 居右
print(s2.zfill(50))       # 填充0居右

# expandtabs
s2 = 'a	a'
print(s2)
print(s2.expandtabs(8))   # 针对	而言

# captalize|swapcase|title  只针对英文
s2 = 'harry Potter'

print(s2.capitalize())  # 首字母大写,用在段落开始
print(s2.swapcase())    # 大小写互换
print(s2.title())       # 所有单词首字母大写

# is系列

4. 存一个值还是多个值

一个值

5. 有序or无序

只要是有索引的,都是有序的,因此字符串是有序的。

6. 可变or不可变(重点)

可变:值变id不变,不可哈希
不可变:值变id也变,可哈希

# 不可变数据类型
s2 = 'abc'
print(id(s2))
s2 += 'abc'
print(id(s2))
原文地址:https://www.cnblogs.com/yushan1/p/11290961.html