字符串操作

#.变量:
#可变变量 :list
#不可变变量:字符串 元组(除非将字符串或者元组变量重新赋值)
infos = ('211.23.23.3','root',123456)
print(infos.count('root'))#统计元组中元素的次数
print(infos.index('root'))#统计元组中元素的索引
#元组中只有以上两种方法,其他读取方法同数组,一般账号信息ip信息等都是用的元组,不允许修改
#.字符串操作
char1 = 'abc'#字符串
char2 = ('a','b','c','d','e')#元组
#.字符串变量以char1为例,元组以char2为例
#..center():自动在字符串两边填充指定字符(是个操作,无返回值);使用方法:char1.center(位数,字符串不足时的填充字符),注意:此操作只针对字符串(不能用于元组),填充必须是字符而不是字符串
#..endswith():判断字符串结尾字符是否以指定字符结尾,是的话返回True,不是的话返回False 
#..format():字符串格式化,其实同%s占位差不多
#..isdigit():判断字符串中是否全部都是数字,都是数字时返回True,不是时返回False
#..join():字符串拼接;使用方法:'拼接字符'.join(char2),直接返回拼接后的字符串,注意:此操作字符串/元组均可以
#..lower():将所有字符转为小写
#..upper():将所有字符转为大写
#..strip():去除左右空格和换行
#..maketrans():前面的字符串和后面的字符串做映射,使用方法:a.maketrans('abcdef','123456')--------------------
#..replace():替换
#..split():分隔字符串,和join相反
#..center()
a = char1.center(50,'*')
#print(char.center(50,'*')#.center()是对字符串的操作,没有值,所以直接以这种方式打印时会报错
#b = char1.center(50,'***---***')#.certer()中第二个参数为填充字符,必须是字符,不能是字符串
print(a)#打印:***********************abc************************
#..endswith()
name = 'my \t name is {name},age is {age}.'
print(name.endswith('u'))#打印:False
print(char1.endswith('c'))#打印:True
#..format()
i = input('enter your age :')
print('your age is {m}'.format(m = i))
注意:字符串中使用{},{}中其实是另外一个变量(相当于格式化了),.format()中是在给格式化的变量赋值
#..isdigit()
print('122'.isdigit())#打印:True
print('a122'.isdigit())#打印:False 
print('122a'.isdigit())#打印:False
#..join()
print('**'.join(char1))#打印:a**b**c
print('*'.join(char2))#打印:a*b*c*d*e
print('*'.join(char3))#打印:1*2*3
print('*'.join(char4))#打印:1*2f*3*4*5
print('*'.join(li1))#打印:1*2*ad*b*c
注意:拼接操作可以用于字符串也可以用于元组,拼接处可以是单个字符也可以是字符串(也可以用于list(但list元素必须都是字符/字符串,有数字时报错))
可用于:
char1 = 'abc'
char2 = ('a','b','c','d','e')
char3 = '123'
char4 = ('1','2f','3','4','5')
li1 = ['1','2','ad','b','c']
#..lower()
char5 = 'Abc'
char6 = 'aBc'
print(char5.lower())#打印:abc
print(char6.lower())#打印:abc
#..upper()
print(char5.upper())#打印:ABC
print(char6.upper())#打印:ABC
 #..split()
a = " abc def "
b = " abc \n"
print(a.split())#打印:['abc', 'def']
print(b.split())#打印:['abc']  
print(type(a.split()))#打印:<type 'list'>
#.masktrans()
p = str.maketrans('abcdefg', '1234567') # 前面的字符串和后面的字符串做映射
print('cc ae gg'.translate(p))
#..replace()
print('aaa bbb ccc'.replace('a','d'))#打印: ddd bbb ccc
print('aabbccdd'.replace('a','1'))#打印:11bbccdd
print('aabbccdd'.replace('a','1',1))#打印:1abbccdd
print('aabbccdd'.replace('a','1',2))#打印:11bbccdd
注意:.replace(被替换字符,替换字符,替换个数n),用替换字符替换字符串中n个被替换字符,第三个参数不写时默认替换全部,
 #..split()
a = 'abcdef'
b = 'a b c d e'
c = 'a*b*c*d*e'
print(a.split())#打印:['abcdef']
print(b.split())#打印:['a', 'b', 'c', 'd', 'e']
print(c.split())#打印:['a*b*c*d*e']
print(type(c.split()))#打印:<type 'list'>
print(a.split('c'))#打印:['ab', 'def']
print(b.split(' '))#打印:['a', 'b', 'c', 'd', 'e']
print(c.split('*'))#打印:['a', 'b', 'c', 'd', 'e']
print('1+2+3\n1+2+3+4'.splitlines())#打印:['1+2+3', '1+2+3+4']
print('1+2+\n3+4'.split('\n'))#打印:['1+2+', '3+4']
注意:可按指定字符分隔
 
#.其他字符串用法
name = 'my \t name is {name},age is {age}.'
print(name.capitalize()) # 首字母大写
print(name.center(50, '-')) # 50个-,把name放中间
print('abd'.center(100,'*'))
print(name.endswith('u')) # 是否以x结尾********
file_name = 'a.png'
print(file_name.endwith('.png'))#可作为判断用
print(name.expandtabs(30)) # 补\t的次数
print(name.find('n')) # 查找字符串的索引#index是list中的方法
print(file_name.find('abc'))#找不到时返回-1
print(file_name.index('abc')#找不到时报错
print(name.format(name='niuniu', age=18)) # 这个是格式字符串,再第一节的博客里面已经写了
msg = '我的名字是%s,我的性别是%s,我的家庭住址是%s,我有%s钱,我在%s上班'
a = input('your name:')
src = 'select username,password from user where name like "%{name}%";'
new_src = src.format(name=a)
print(src)
print(name.format_map({'name': 'niuniu', 'age': 19})) # 这个也是格式化字符串,后面跟的是一个字典,字典在后面也会写
print('abA123'.isalnum()) # 是否包含数字和字母
print('abA'.isalpha()) # 是否是英文字母
print('122'.isdigit()) # 是否是数字
print('aa'.isidentifier()) # 是否是一个合法的变量名
print('aa'.islower()) # 是否是小写字母
print('AA'.isupper()) # 是否是大写字母
print('Loadrunner Book'.istitle()) # 是不是一个标题,判断首字母是否大写
print('+'.join(['hehe', 'haha', 'ee'])) # 拼接字符串
print(name.lower()) # 变成小写
print(name.upper()) # 变成大写
print('\nmysql \n'.lstrip()) # 默认去掉左边的空格和换行
print('\nmysql \n'.rstrip()) # 默认去掉右边的空格和换行
print('\nmysql \n'.strip()) # 默认去掉两边边的空格和换行
p = str.maketrans('abcdefg', '1234567') # 前面的字符串和后面的字符串做映射
print('cc ae gg'.translate(p)) # 输出按照上面maketrans做映射后的字符串
# 下面是反解
new_p = str.maketrans('1234567', 'abcdefg')
print('cc ae gg'.translate(new_p))
print('mysql is db.'.replace('mysql', 'oracle', 1)) # 替换字符串
print('mysql is is db'.rfind('is')) # 返回最右边字符的下标
print('1+2+3+4'.split('+')) # 切割字符串,返回一个list
print('1+2+3\n1+2+3+4'.splitlines()) # 按照换行符分割
print('Abcdef'.swapcase()) # 大小写反转
 
 
 
 
 
 
 
 
 
 
 

posted on 2017-09-26 15:11  yezi_396  阅读(213)  评论(0编辑  收藏  举报

导航