python提供了几种不同的方式来表示字符串:
用单引号,双引号,或都三引号都可以表示一个字符串
>>> a1='monicx'
>>> a2="monicx"
>>> a3='''monicx'''
>>> type(a1)
<class 'str'>
>>> type(a2)
<class 'str'>
>>> type(a3)
<class 'str'>
字符串操作:
一、重点掌握
1、按索引取值:正数索引值为正向取字符,负数索引值为反向取字符
>>> name='monicx'
>>> name[-4]
'n'
>>> name[4]
'c'
>>>
2、切片(start:end:step)
>>> str='monicx is so handsome'
>>> str[0:6]
'monicx'
>>> str[0:14]
'monicx is so h'
>>> str[0:14:2]
'mnc ss '
>>> str[::-1] #将字符串反序
'emosdnah os si xcinom'
>>> str[::-2]
'eoda ss cnm'
>>> str[0:-2]
'monicx is so handso'
3、长度
>>> str='monicx is so handsome'
>>> len(str)
21
4、
成员运算(in与not in )
>>> str='monicx is so handsome'
>>> 'z'in str
False
>>> 'a'in str
True
>>> 'monicx'not in str
False
5、移除空白(strip)
>>> str=' monicx is so handsome '
>>> len(str)
29
>>> str=str.strip() #strip去除两边的空格
>>> len(str)
21
6、
切分split()正切分、 rstrip()反切分:
语法:字符串.sprit('按什么切分',次数)。切分一个字符串后会得到一个列表。
按空格切分:
>>> str='monicx is so handsome'
>>> str.split(" ")
['monicx', 'is', 'so', 'handsome']
按空格切分1次:
>>> str='monicx is so handsome'
>>> str.split(" ",1)
['monicx', 'is so handsome']
按空格反切分1次:
>>> str='monicx is so handsome'
>>> str.rsplit(" ",1)
['monicx is so', 'handsome']
按“i”切分:
>>> str='monicx is so handsome'
>>> str.split("i")
['mon', 'cx ', 's so handsome']
二、撑握操作
1、lstrip(),rstrip()
lstrip()左边去空白,rstrip()右边去空白。
>>> str=" monicx is so handsome "
>>> str.lstrip()
'monicx is so handsome '
>>> str.rstrip()
' monicx is so handsome'
2、lower(),upper()
lower()是将字符串中的所有的字符变小写,upper()则是变大写。
>>> str="Monicx Is So Handsome"
>>> str.upper()
'MONICX IS SO HANDSOME'
>>> str.lower()
'monicx is so handsome'
3、%占位符
>>> str="Monicx is so %s"%('handsome')
>>> str
'Monicx is so handsome'
延伸:
>>> c=('handsome','cool')
>>> str="Monicx is so %s"%(c)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>> c=('handsome','cool')
>>> str="Monicx is so %s"%((c,))
>>> str
"Monicx is so ('handsome', 'cool')"
4、format()
format()它用{}来代替%占位符的型式,而且比%用的更加的灵活和强大。python3推荐使用。
它用三种用法:
第一种:
>>> str='my name is {} I am {} years old'.format('monicx',23)
>>> str
'my name is monicx I am 23 years old'
第二种:
>>> str='my name is {1} I am {2} years old'.format(43,'monicx',23)
>>> str
'my name is monicx I am 23 years old'
第三种:
>>> str='my name is {name} I am {age} years old {sex}'.format(name='monicx',sex='male',age=23,)
>>> str
'my name is monicx I am 23 years old male'
>>>
5、join()
join()就是把一个字符串用另外一个字符或字符串,插入到这个字符串每个字符之间
>>> str='monicx'
>>> '-'.join(str)
'm-o-n-i-c-x'
6、replace()
就是用一个字符串来代替这个字符串中的子串。
>>> str='monicx'
>>> str.replace('x','x is handsome')
'monicx is handsome'
7、isdigit()
判断一个字符串如果只包含数字则返回 True 否则返回 False。
>>> str1='monicx12'
>>> str2='12345678'
>>> str1.isdigit()
False
>>> str2.isdigit()
True
>>>
8、find(),rfind()
>>> str="Monicx Is So Handsome"
>>> str.find('z') #如果在没有找到就返回-1
-1
>>> str.find('o') #如果找到就返回找到第一个的索引
1
>>> str.find('o',2,24)
11
>>> str.rfind('o',2,24) #反序找到第一个
18
9、index(),rindex()
index()方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始)和 end(结束)范围,则检查是否包含在指定范围内,该方法与find()方法一样,只不过如果str不在 string中会报一个异常。
>>> str="Monicx Is So Handsome"
>>> str.find('z')
-1
>>> str.index('z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
三、了解操作
1、zfill()
>>> str='monic'
>>> str.zfill(30)
'0000000000000000000000000monic'
2、rjust(),ljust()
>>> str='monic'
>>> str.ljust(30,'*')
'monic*************************'
>>> str.rjust(30,'*')
'*************************monic'
3、center()
>>> str='monic'
>>> str.center(30,'*')
'************monic*************'
4、count()
>>> str='monic is so handsome'
>>> str.count('i',0,30)
2
5、expandtabs()
把字符串中的‘\t’默认转化为8个空格
>>> str='monic\tis so handsome'
>>> str.expandtabs()
'monic is so handsome'
6、captalize(),title()
>>> str='monic is so handsome'
>>> str.capitalize()
'Monic is so handsome'
>>> str.title()
'Monic Is So Handsome'
7、swapcase()
将字符串中大写转换为小写,小写转换为大写。
str='Monic Is So Handsome'
str.swapcase()
8、is数字系列
num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3=u'肆' #中文数字
num4=u'Ⅳ' #罗马数字
isdigit():bytes,unicode的阿拉伯数字为True
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
isdecimal():unicode的阿拉伯数字为True
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
#isnumberic:unicode的阿拉伯数字\中文数字\罗马数字为True
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())
9、is其他
print('monicx is so handsome'.isalpha()) #字符全由字母组成
print('asdf'.isalnum()) #字符由字母或数字组成
print('I Am Monicx'.istitle())
print(' '.isspace())
print('print'.isidentifier())#是不是关键字