python字符串(二)
一、字符串具有不可改变的特性>>> str1 = 'your'
>>> str1 = str1 + 'name'
>>> str1
'yourname'
当执行第二行的时候,在内存里又开辟了一个空间存储"yourname",而不是在原来存储“your”的地方修改,使得str1指向这个新地址
二、切片
>>> str='my name is sam, and i love girl'
>>> str
'y'
>>> str
'name'
>>> str[-4:] #截取最后4个字符
'girl'
>>> str[-1:-5:-1] #反序截取
'lrig'
三、字符串长度
>>> str='my name is sam, and i love girl'
>>> len(str)
31
四、包含
>>> str='my name is sam, and i love girl'
>>> 'name' in str #不存在则报错
True
>>> 'tiger' not in str
True
五、循环
>>> str='your name'
>>> for i in str:
... print(i)
...
y
o
u
r
n
a
m
e
六、字符串方法
1. count
>>> 'your name, ming zi'.count('n')
2
>>> 'your name, ming zi'.count('n',6)
1
>>> 'your name, ming zi'.count('n',6,8)
0
2. capitalize
>>> "youy name".capitalize()
'Youy name'
3.center
>>> "youy name".center(50,'-')
'--------------------youy name---------------------'
4. encode
>>> "youy name".encode(encoding='utf-8')
b'youy name'
5. endswith
>>> "youy name".endswith("me")
True
6. expandtabs
>>> "\tyouy name".expandtabs(10)
' youy name'
7. format
>>> "I am %s, %d year old, I love %s" % ('Sam',12, 'dog')
'I am Sam, 12 year old, I love dog'
>>> "I am {}, {} year old, I love {}".format('Sam',12, 'dog')
'I am Sam, 12 year old, I love dog'
>>> "I am {2}, {0} year old, I love {1}".format(12,'dog', 'Sam')
'I am Sam, 12 year old, I love dog'
>>> "I am {name}, {age} year old, I love {dong}".format(name='Sam',age=12, dong='dog')
'I am Sam, 12 year old, I love dog'
注:%s字符串,%d整型,%f浮点数
8. format_map
>>> 'My name is {name}, I am {age} year old'.format_map({'name': 'Sam', 'age': 23})
'My name is Sam, I am 23 year old'
9. find左边找 rfind 右边找
>>> 'My name is Sam, I am 23 year old'.find('a')# 左边找
4
>>> 'My name is Sam, I am 23 year old'.find('a',5)
12
>>> 'My name is Sam, I am 23 year old'.find('a',13, 19)
18
>>> 'yui'.find('l')# 找不到则返回-1
-1
>>> 'My name is Sam, I am 23 year old'.rfind('a')# 右边找
26
10. index
>>> 'My name is Sam, I am 23 year old'.index('a')
4
>>> 'My name is Sam, I am 23 year old'.index('a',5)
12
>>> 'My name is Sam, I am 23 year old'.index('a', 13, 19)
18
>>> 'yui'.index('l')# 找不到则,报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
11. isalnum 检查判断字符串是否包含字母数字字符
>>> 'name'.isalnum()
True
>>> '12'.isalnum()
True
>>> 'AAB'.isalnum()
True
>>> '!fff'.isalnum()
False
12. isalpha检测字符串是否只由字母组成
>>> 'asdf'.isalpha()
True
>>> '1234'.isalpha()
False
>>> 'gh67'.isalpha()
False
13. isdecimal非负整数 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
>>> 'ghjjj'.isdecimal()
False
>>> '12'.isdecimal()
True
>>> '12.7'.isdecimal()
False
14. isdigit 非负整数 检测字符串是否以数字组成
>>> '12'.isdigit()
True
>>> '12.8'.isdigit()
False
>>> '-12'.isdigit()
False
>>> '0'.isdigit()
True
15.isidentifier检测字符串是否以字母开头
>>> 'hhh'.isidentifier()
True
>>> '77'.isidentifier()
False
>>> '!@'.isidentifier()
False
>>> '7ggg'.isidentifier()
False
16. islower
>>> 'AhhBgggG'.islower()
False
>>> 'hhhhh'.islower()
True
17.isnumeric 检测字符串是否只由数字组成。这种方法是只针对unicode对象。
>>> '678'.isnumeric()
True
>>> '678.9'.isnumeric()
False
>>> '678.0'.isnumeric()
False
18.isprintable 判断字符串中所有字符是否都属于可见字符
>>> 'hyyuuuu\nyyyyyy'.isprintable()
False
>>> 'hyyuuuuyyyyyy'.isprintable()
True
19.isspace 检测字符串是否为空格
>>> 'jjjiiii'.isspace()
False
>>> ' '.isspace()
True
20.istitle 判断字符串是否适合当作标题(其实就是每个单词首字母大写)
>>> 'Your Name'.istitle()
True
21.isupper 判断字符串中所有字母字符是否都是大写字母
>>> 'fghhh'.isupper()
False
>>> 'FGGGGG'.isupper()
True
22.join 字符串列表连接
>>> '+'.join('string')
's+t+r+i+n+g'
>>> '+'.join(['i', 'am', 'your'])
'i+am+your'
23.strip lstrip rstrip移除左右空格换行符
str = 'ggggggggggg \n'
print(str)
print(str.strip())
print(str.lstrip())
print(str.rstrip())
print('````````````')
24. ljustrjust 与center 类似
>>> 'name'.ljust(50, '*')
'name**********************************************'
>>> 'name'.rjust(50, '*')
'**********************************************name'
25. lower 将字符串的大写换成小写
>>> 'ASDF'.lower()
'asdf'
>>> 'AS7766!DF'.lower()
'as7766!df'
26.maketranstranslate
>>> 'i am your hero sb'.translate({'abc': '123'})
'i am your hero sb'
>>> tab = 'i your hero sb'.maketrans('abc','123')
>>> 'i am your hero sb'.translate(tab)
'i 1m your hero s2'
27. partition rpartition如果分隔符包含在字符串中,返回一个元组,第一个为分隔符左边字符串,第二个为分隔符,第三个为右边字符串
>>> 'zxcvbnvbhjuu'.partition('vb')# 匹配左边的
('zxc', 'vb', 'nvbhjuu')
>>> 'zxcvbnvbhjuu'.partition('pp')
('zxcvbnvbhjuu', '', '')
>>> 'zxcvbnvbhjuu'.rpartition('vb') # 匹配右边的
('zxcvbn', 'vb', 'hjuu')
>>> 'zxcvbnvbhjuu'.rpartition('pp')
('', '', 'zxcvbnvbhjuu')
28.replace
>>> 'your name, i am a boy'.replace('a', 'B')
'your nBme, i Bm B boy'
>>> 'your name, i am a boy'.replace('a', 'B', 1)
'your nBme, i am a boy'
29. splitrsplit
>>> 'your name, i am a boy'.split('a')
['your n', 'me, i ', 'm ', ' boy']
>>> 'your name, i am a boy'.split('a',2)# 从左边划分
['your n', 'me, i ', 'm a boy']
>>> 'your name, i am a boy'.rsplit('a',2)# 从右边划分
['your name, i ', 'm ', ' boy']
30.splitlines
>>> '''My name\n is Sam, I am\n 23 year old'''.splitlines()
['My name', ' is Sam, I am', ' 23 year old']
31.startswith
>>> 'My name is Sam, I am 23 year old'.startswith('My',4,10)
False
>>> 'My name is Sam, I am 23 year old'.startswith('me',4,10)
False
>>> 'My name is Sam, I am 23 year old'.startswith('ame',4,10)
True
32.swapcase
>>> 'ASfrtAAggg'.swapcase()
'asFRTaaGGG'
33.>>>> 'you name'.title()
'You Name'
34. upper
>>> 'i am your hero sb'.upper()
'I AM YOUR HERO SB'
35.zfill
>>> "youy name".zfill(50)
'00000000000000000000000000000000000000000youy name'
页:
[1]