六、字符串操作
1、处理字符串
1)单引号和双引号的区别
>>> print('hello'world')
SyntaxError: invalid syntax
>>> print("hello'world")
hello'world
>>>
2)转义字符
转义字符 | 打印为 |
\’ | 单引号 |
\" | 双引号 |
\t | 制表符 |
\n | 换行符 |
\\ | 倒斜杠 |
3)原始字符串
作用:忽略所有的转义字符,使转义字符作为文本输出。
放置位置:在字符串的第一个引号之前加上r
>>> print(r'\t')
\t
4)多行字符串使用:三重单/双引号
print(''' 自我介绍
sum:"my name is Sum."
sum:"How are you?"
I:"I'm fine"
\'你好
***\t***
\\
结束
''')
print('-----------------------------------------------')
print(""" 自我介绍
sum:"my name is Sum."
sum:"How are you?"
I:"I'm fine"
\'你好
***\t***
\\
结束
""")
结果如图:
5)多行注释同样使用:三重单/双引号
用法如下:
'''使用
单引号进行多行注释
print()方法中,单引号包围的值
'''
print(''' 自我
介绍
''')
print('-----------------------------------------------')
"""使用
单引号进行多行注释
print()方法中,单引号包围的值
"""
print(""" 自我
介绍
""")
结果如图:
可见:不在print方法内;但被三重引号包围;没有显示在输出窗口中。
6)字符串下标和切片
>>> str="ABDEF"
>>> str[0]
'A'
>>> str[4]
'F'
>>> str[2:3]
'D'
>>> str[2:]
'DEF'
>>> str[:3]
'ABD'
>>> nstr=str[:3]
>>> nstr
'ABD'
>>>
7)字符串中in和not in 操作符
>>> str="ABCDE"
>>> 'A' in str
True
>>> 'a' in str
False
>>> 'a' not in str
True
2、常用的字符串方法
1)大小写转换:upper()、lower()
>>> str='Abc'
>>> str.upper()
'ABC'
>>> str
'Abc'
>>> str.lower()
'abc'
>>> str
'Abc'
>>> lowerStr=str.lower()
>>> lowerStr
'abc'
>>>
2)大小写的判断:isupper()、islower()
条件:
一个字符串;至少有一个字母;所有的字母都是大写或小写;
>>> str='A666'
>>> str.isupper()
True
>>> str='a666'
>>> str.islower()
True
>>> str='a@@6'
>>> str.islower()
True
>>>
补充:isalpha()、isalnum()、isdecimal()、isspace()、istitle()
isalpha():如果字符串只包含字母,并且非空,返回True
>>> 'Abc'.isalpha()
True
>>> '12A'.isalpha()
False
>>> '&&A'.isalpha()
False
>>>
isalnum():如果字符串只包含字母和数字,并且非空,返回True
>>> 'A12'.isalnum()
True
>>> 'A'.isalnum()
True
>>> '12'.isalnum()
True
>>> '&&A1'.isalnum()
False
isdecimal():如果字符串只包含数字字符,并且非空,返回True
>>> '1234'.isdecimal()
True
>>> 'a'.isdecimal()
False
>>> 'a123'.isdecimal()
False
isspace():如果字符串只包含空格、制表符和换行,并且非空,返回True
>>> ' '.isspace()
True
>>> '\t'.isspace()
True
>>> '\tabc'.isspace()
False
istitle():如果字符串仅包含以大写字母开头、后面都是小写字母的字符串,返回True
>>> 'Abc'.istitle()
True
>>> 'abc'.istitle()
False
>>> 'Abc123'.istitle()
True
>>> '123Abc'.istitle()
True
>>> '&&12Abc'.istitle()
True
>>> '&&12abc'.istitle()
False
>>>
3)startswith()和endswith()
字符串.startswith(子串)和字符串.endswith(子串) ,如果方法内子串等于该字符串的开始或结束部分,方法返回True
>>> 'Hi,How are you?'.startswith('Hi')
True
>>> 'Hi,How are you?'.startswith('Hi,How are you?')
True
>>> 'Hi,How are you?'.endswith('Hi,How are you?')
True
>>> 'Hi,How are you?'.endswith('are you?')
True
>>> 'Hi,How are you>'.endswith('are')
False
4)join()和split()
连接符.join([字符串A,字符串B]) : 将字符串列表[字符串A,字符串B]中的字符串通过连接符,组成一个新的字符串。
>>> ' '.join(['How','are','you?'])
'How are you?'
字符串.split(分割符):
>>> 'How are you?'.split()
['How', 'are', 'you?']
>>> 'How are you?'.split(' ')
['How', 'are', 'you?']
>>> 'How,are,you?'.split(',')
['How', 'are', 'you?']
>>>
5)对齐文本
右对齐:rjust()
>>> '右对齐'.rjust(30)
' 右对齐'
>>> '右对齐'.rjust(30,'*')
'***************************右对齐'
左对齐:ljust()
>>> '左对齐'.ljust(30)
'左对齐 '
>>> '左对齐'.ljust(30,'*')
'左对齐***************************'
居中对齐center()
>>> '居中'.center(30)
' 居中 '
>>> '居中'.center(30,'*')
'**************居中**************'
6)删除两边或其中一边的某些字符串
删除两边字符串strip()
>>> ' 帅 '.strip()
'帅'
>>> 'abc帅bac'.strip('abc')
'帅'
>>> 'abc帅bac'.strip('acb')
'帅'
删除右边字符串rstrip()
>>> '帅 '.rstrip()
'帅'
>>> '帅abccba'.rstrip('abc')
删除左边字符串lstrip()
>>> ' 帅'.lstrip()
'帅'
>>> 'abccb帅'.lstrip('abc')
'帅'
>>> 'abccb帅'.lstrip('bc')
'abccb帅'
注意:传入strip(),rstrip(),lstrip()方法的字符串,字符的顺序不重要!