python字符操作

字符串操作需求

1
2
3
4
5
6
> string模块定义了一些常用的属性(包含所有的数字,字母,可打印的所有ascii码等)
> python的字符串操作可以通过两部分的方法函数基本上就可以解决所有的字符串操作需求:
> 1.python的字符串属性函数
> 2.python的string模块
> 一次python对字符的操作,人生苦短!
>

文档练习实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# coding:utf-8
import string
"""
string模块定义了一些常用的属性(包含所有的数字,字母,可打印的所有ascii码等)
python的字符串操作可以通过两部分的方法函数基本上就可以解决所有的字符串操作需求:
1.python的字符串属性函数
2.python的string模块
"""
#1.字符串输出格式对齐

str = 'PyTHON heLLo'
print str.center(20) #生成20个字符长度,str处于中间位置
print str.ljust(20) #生成20个字符,str左对齐
print str.rjust(20)

#2.大小写转换
print str.upper() #转大写
print str.lower() #转小写
print str.capitalize() #字符串首字母大写,其余小写
print str.swapcase() #大小写对换
print str.title() #以分隔符为标记,首字符为大写,其余为小写

#3.字符串判断条件
str1 = '01234'
print str1.isalnum() #判断是否全是数字和字母,并至少有一个字符
print str1.isdigit() #判断是否全是数字,并至少有一个字符

str2 = 'string'

print str2.isalnum() #判断是否全是数字或字母,并至少有一个字符
print str2.isalpha() #判断是否全是字母,并至少有一个字符
print str2.islower() #判断是否全是小写字母,当全是小写和数字的组合时也会返回True
print str2.isspace() #判断是否全是空白字符,并至少有一个字符
print str2.isspace() #判断是否全是大写,如果全是大写和数字也会返回True
print str2.istitle() #判断是否每个单词的首字母为大写
print str2.startswith('str') #判断字符是否以str开头
print str2.endswith('ing') #判断字符是否以ing结尾

#4.字符串搜索定位与替换
str3 = 'string IEarn'
print str3.find('z') #查找字符串,没有则返回-1,有则返回查找到的第一个索引
print str3.rfind('n') #返回索引的最后一次匹配
print str3.index('s') #没有匹配则报错,如果匹配到则和find类似,返回第一次索引
print str3.count('a') #返回字符串中匹配的次数
print str3.replace('n','N') #搜索替换
print str3.strip('n') #删除字符串首尾匹配的字符,通常用于默认删除回车符
print str3.lstrip('n') #左配符
print str3.rstrip('n') #右配符

str4 = 'tab'

print str4.expandtabs() #把制表符转换为空格
print str4.expandtabs(5)#指定空格数


#5.字符串编码与解码

str5 = "字符串学习"
print str5
print str5.decode('utf-8')

#6.字符串分割变换

str6 = 'Learn string'
print '-'.join(str6)

str7 = ['Learn','string']
print '-'.join(str7)

print str6.split('n')
print str6.split('n',1)

print str6.rstrip('n')
print str6.rsplit('n',1)
print str6.splitlines()
print str6.partition('n')
print str6.rpartition('n')

#7.打印出一些常用的字符
print string.letters
print string.ascii_letters #两个都是打印出大小写字母

print string.lowercase
print string.ascii_lowercase #打印小写字母

print string.uppercase
print string.ascii_uppercase #打印大写字母

print string.digits #打印十进制数字
print string.octdigits #打印八进制数字
print string.hexdigits #打印十六进制数字
print string.printable #打印数字,大小写字母和特殊字符
print string.punctuation #打印特殊字符
print string.whitespace #打印一些如制表符一样的符号

#8.string中定义的方法
"string.capwords(s, sep=None)是多个字符串方法的组合split(),capitalize(),join()"
s = 'ahelloaworld'
print string.capwords(s, 'a')
#等价于:
print 'a'.join([i.capitalize() for i in s.split('a')])

#实例:生成200的随机优惠券(长度是20位的)

import random
key = string.letters + string.digits
for i in range(200):
k = [random.choice(key) for i in range(20)]
print ''.join(k)

练习图示: