Python 字符串处理

                     

贡献者: addis

预备知识 Python 基本变量类型

1. 字符串处理

   字符串(string)可以想象成由字符构成的特殊数组,一般用于储存一段文字。一个字符串变量如

s = 'python String 字符串'
注意也可以使用双引号 "..."。用 type(s) 查看类型得到 str,即 string 的缩写。

   input() 函数可以在程序运行的过程中获取用户输入的字符串,例如

s = input('请输入:')
print('您输入的内容是:', s)
如果希望用户输入其他类型,如整数,那么输入后再进行变量类型转换即可,如 int(s)

   len(s) 用于获取字符串长度

print('s = ', s, '; length = ', len(s))
也可以用三个单引号或双引号表示多行字符串,如
s = '''这是第一行
这是第二行
这是第三行'''
注意如果第一个 ''' 后面必须紧接第一个字符,第二个 ''' 必须紧跟最后一个字符。

转义符

   如果在字符串中要表示一些特殊的字符,我们可以使用 \ 开头的转义符(escape character),例如 \n 表示换行,\' 表示单引号,\" 表示双引号,\\ 表示 \。如果字符串两边用了双引号,内部的单引号不需要转义,反之亦然。

print('it's good') # 错误, python 会把 'it' 理解为一个字符串
print("it's good") # 正确
print('it\'s good') # 正确

   如果不想使用转义符,可以在第一个单引号或双引号前面加 rR。例如 r'a\nb' 中的 \n 不代表换行而是 \n 两个字符。

格式化

截取字符串

   字符串的截取与数组的截取相同

s = '0123456789'
print(s[0:3]) # 截取第一位到第三位的字符
print(s[:]) # 截取字符串的全部字符
print(s[6:]) # 截取第七个字符到结尾
print(s[:-3]) # 截取从头开始到倒数第三个字符之前
print(s[2]) # 截取第三个字符
print(s[-1]) # 截取倒数第一个字符
print(s[::-1]) # 创造一个与原字符串顺序相反的字符串
print(s[-3:-1]) # 截取倒数第三位与倒数第一位之前的字符
print(s[-3:]) # 截取倒数第三位到结尾
输出:
012
0123456789
6789
0123456
2
9
9876543210
78
789

连接字符串

delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print (delimiter.join(mylist))
print('abc'+'def')
输出
Brazil,Russia,India,China
abcdef

字符串搜索

s='python String function'
print('%s find nono=%d' % (s,s.find('nono')))
print('%s find t=%d' % (s,s.find('t')))
print('%s find t from %d=%d' % (s,1,s.find('t',1)))
print('%s find t from %d to %d=%d' % (s,1,2,s.find('t',1,2)))
print('%s rfind t=%d' % (s,s.rfind('t')))
print('%s count t=%d' % (s,s.count('t')))
输出:
python String function find nono=-1
python String function find t=2
python String function find t from 1=2
python String function find t from 1 to 2=-1
python String function rfind t=18
python String function count t=3

字符串替换

   替换 old 为 new:s.replace('old','new')

   替换指定次数的 old 为 new:s.replace('old','new',maxReplaceTimes)

字母处理

s = 'python String 字符串'
print('s =          ', s);
print('lower =      ', s.lower()); # 全部变为小写:
print('upper =      ', s.upper()); # 全部变为大写:
print('swapcase =   ', s.swapcase()); # 大小写互换
print('capitalize = ', s.capitalize()); # 首字母大写,其余小写
print('title =      ', s.title()); # 首字母大写
输出:
s =           python String 字符串
lower =       python string 字符串
upper =       PYTHON STRING 字符串
swapcase =    PYTHON sTRING 字符串
capitalize =  Python string 字符串
title =       Python String 字符串

格式化相关

   获取固定长度,右对齐,左边不够用空格补齐:s.ljust(width)

   获取固定长度,左对齐,右边不够用空格补齐:s.ljust(width)

   获取固定长度,中间对齐,两边不够用空格补齐:s.ljust(width)

   获取固定长度,右对齐,左边不足用 0 补齐

s='python String'
print('%s ljust = %s' % (s,s.ljust(20)))
print('%s rjust = %s' % (s,s.rjust(20)))
print('%s center = %s' % (s,s.center(20)))
print('%s zfill = %s' % (s,s.zfill(20)))
输出:
python String ljust = python String       
python String rjust =        python String
python String center =    python String    
python String zfill = 0000000python String

字符串去空格及去指定字符

   去两边空格:s.strip()

   去左空格:s.lstrip()

   去右空格:s.rstrip()

   去两边字符串:s.strip('d'),相应的也有 lstrip,rstrip

   按指定字符分割字符串为数组:s.split(' ')

s = ' python String function '
print('%s strip=%s' % (s,s.strip()))
s = 'python String function'
print('%s strip=%s' % (s,s.strip('d')))

翻转字符串

sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print(sStr1)
输出
gfedcba

   关于更多高效的字符串处理方法,感兴趣的读者可以查阅正则表达式的使用方法。

   另见 string 模块

                     

© 小时科技 保留一切权利