Python3中字符串操作详解 字符串操作方法大全

  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 #Author:sking
  4 #Python3字符串操作方法详解 Python3中字符串操作方法大全
  5 
  6 name = "skings"
  7 
  8 print(name.index('s')) #0 #从左到右查询某一个字符在这个字符串中第一次出现的下标
  9 print(name.index('s')) #5 #从右到左查询某一个字符在这个字符串中第一次出现的下标
 10 #print(name.index('xxx')) #ValueError: substring not found
 11 #python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,
 12 #不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1
 13 print(name.capitalize()) #Sking #首字母大写
 14 print(name.count('s')) #2 #统计字符串中其中的一个字符出现的次数
 15 #统计字符串中其中的一个字符出现的次数,还可以指定在那一段字符中出现的次数
 16 print(name.count('k',1)) #1  指定从下标1(也就是K,包含k)开始,到最后
 17 print(name.casefold())  #skings
 18 #Python casefold() 方法是Python3.3版本之后引入的,其效果和 lower() 方法非常相似,
 19 # 都可以转换字符串中所有大写字符为小写。
 20 # 两者的区别是:lower() 方法只对ASCII编码,
 21 # 也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
 22 
 23 print(name.encode(encoding='utf-8')) #b'skings' 将字符串转成bytes类型
 24 print(name.endswith('gs')) #True #判断一个字符串以什么结尾  比如可以判断一个邮箱地址是否是以.com结尾
 25 print(name.startswith('sk')) #True #判断一个字符串以什么结尾  比如可以判断一个邮箱地址是否是以.com结尾
 26 name = "skings"
 27 name2 = "s\tkings"
 28 # 将制表符\t转成成30个空格
 29 print(name2.expandtabs(tabsize=30)) #s                             kings
 30 print(name.find('s')) #0 从左到右查找子字符串,若找到返回从0开始的下标值,若找不到返回-1
 31 print(name.rfind('s')) #5 从右到左查找子字符串,若找到返回从0开始的下标值,若找不到返回-1
 32 #利用下标可以切片
 33 print(name[name.find('n'):-1]) #ng
 34 #format 格式化字符串
 35 print('{who} is a {gender}'.format(who='xiaoming', gender='boy')) #xiaoming is a boy
 36 #或者可以这样写
 37 a = "{who} is a {gender}"
 38 print(a.format(who="xiaoming", gender="boy")) #xiaoming is a boy
 39 #或者可以用format_map()方法  format_map()方法是用字典的方式写
 40 print(a.format_map({'who':'xiaoming', 'gender':'boy'}))  # xiaoming is a boy
 41 #判断字符串是不是阿拉伯字符或数字
 42 print('abc123'.isalnum()) #True
 43 print('abc\123'.isalnum()) #True
 44 print('abc-123'.isalnum()) #False
 45 print('abc\t123'.isalnum()) #False
 46 #判断字符串是不是纯英文字符
 47 print('abc123'.isalpha()) #False
 48 print('abcABC'.isalpha()) #True
 49 print('____________________________')
 50 #判断字符串是不是十进制的数
 51 print('123'.isdecimal()) ##True
 52 print('123.45'.isdecimal()) #False
 53 print('0X123'.isdecimal()) #False
 54 print('1F'.isdecimal()) #False
 55 print('12H'.isdecimal()) #False
 56 print('____________________________')
 57 #判断字符串是不是一个正整数
 58 print('123'.isdigit()) ##True
 59 print('-123'.isdigit()) #False
 60 print('123.45'.isdigit()) #False
 61 print('123E10'.isdigit()) #False
 62 print('***************************8')
 63 #判断字符串是不是一个合法的标识符,也就是 是不是一个合法的变量名
 64 print('haha'.isidentifier()) ##True
 65 print('_haha'.isidentifier()) ##True
 66 print('12haha'.isdigit()) #False  #变量名不能以数字开头
 67 print('-haha'.isdigit()) #False #变量名不能以-开头
 68 #判断字符串是不是全是小写
 69 print('haha'.islower()) ##True
 70 #判断字符串是不是全是大写
 71 print('haha'.isupper()) ##False
 72 #isnumeric()方法
 73 #如果整个 expression 的运算结果为数字,则 isnumeric 返回 True;否则返回 False。
 74 # 如果 expression 是日期表达式,则 isnumeric 返回 False。
 75 print('20180909'.isnumeric()) #True
 76 print('2018-09-09'.isnumeric()) #False
 77 print('2018-9-9'.isnumeric()) #False
 78 print('33.3'.isnumeric()) #False
 79 #注意事项:     使用该函数时候应该注意这样一些问题:
 80 #  举例数值:
 81 #  "123"   "123.1"   "123,,,,111.222,,,333"   "123,,,1.22,,,3"   "123e+9"   "123d-8"
 82 #  以上数值返回值的都是 True。
 83 #  第1、2条很正常,第3条有西文的“,”,可以理解,外国人习惯把数字每隔3个加个逗号。
 84 #  第4条中文的“,”也可以,可要注意:cint("12,,3"),可以得到 123;cint("12,,3"),就出错了。
 85 #    第5、6条,里面有“e”、“d”、“+”、“-”,应该不是数字,但是这里是科学计数法,所以也当做是数字。
 86 
 87 print(' '.isspace()) #True  判断字符串是不是空格
 88 print('My Name Is Sking') #True 判断字符串的每个首字母是不是大写
 89 #将列表中的字符串拼接join
 90 print('*'.join(['1', '2', '3'])) #1*2*3
 91 print('+'.join(['a', 'b', 'c'])) #a+b+c
 92 print('wwww'.ljust(10,'*')) #wwww******   一共打印10个字符,不够了就用*在最右边填充
 93 print('wwww'.rjust(10,'*')) #******wwww   一共打印10个字符,不够了就用*在最左边填充
 94 print('skings'.center(50, '-')) #----------------------skings----------------------
 95 #一共打印50个字符,不够的用‘-’填充,并把skings放在中间
 96 print('wwww'.zfill(10)) #000000wwww  一共打印10个字符,不够了就在最前面填充
 97 
 98 print('ABCd'.lower()) #abcd 将所有大写字母改为小写
 99 print('abcD'.upper()) #ABCD 将所有小写字母改为大写
100 print('abcDEF'.swapcase()) #ABCdef 将所有小写字母改为大写,并将所有大写字母改为小写
101 print('  \n\tssss\n   '.lstrip()) #ssss 默认删除最左边的空白符(包括'\n', '\r',  '\t',  ' ')
102 print('  \nssss\n   '.rstrip()) #ssss 默认删除最右边的空白符(包括'\n', '\r',  '\t',  ' ')
103 print('  \nssss\n   '.strip()) #ssss 默认删除两头的空白符(包括'\n', '\r',  '\t',  ' ')
104 
105 #字典翻译maketrans和translate
106 p = str.maketrans('abcdef', '123456') #意思就是将a用1代替,b用2代替,c用3代替......
107 print('aabbff'.translate(p)) #112266  a用1代替,b用2代替,f用6代替
108 
109 #字符串替换
110 print('skings is has'.replace('s', '*')) #*king* i* ha*
111 #如果只想替换前两个
112 print('skings is has'.replace('s', '*', 2)) #*king* is has
113 print('skings is has'.split()) #['skings', 'is', 'has']  按照空格将字符串转成列表
114 print('1+2+3+4'.split('+')) #['1', '2', '3', '4']  按照'+'将字符串转成列表
115 print('1+2\n3+4'.splitlines()) #['1+2', '3+4']  按照换行符\n或\n\r(linux中的换行符)将字符串转成列表

猜你喜欢

转载自www.cnblogs.com/skings/p/10217229.html