多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 说明 字符串`字面量`:把文本放入单引号/双引号/三引号中,单双引号混合时使用**3单引号**。 python2 使用`unicode`编码,使用u进行标识, 如u'hiyang',python3自动支持。 文档字符串:模块/类或者函数的`第一条语句`是一个字符的话,该字符串成为`文档字符串`,可以使用__doc__引用。 ## 索引和切片 索引运算符:`[i]` 切片运算符:`[i:j]` 切片运算符**扩展**:[i:j:stride],`[::1]`正向显示` [::-1]`倒序显示 ## 字符串操作符 ![](https://ws4.sinaimg.cn/large/006tKfTcgy1frxrx127dnj31hu0cuan8.jpg) ## 内置函数 ~~~ min(s) 字符串中的最小值 max(s) 字符串中的最大值 sum() 只适用于数字序列 all(s) 检查所有项是否都为True any(s) 检查任意项是否为为True ~~~ ### 字符串填充 ~~~ S.center(width[, fillchar]) -> string 将字符串放到中心 S.[l|r]just(width[, fillchar]) -> string 从左或右侧进行填充 S.zfill(width) -> string 以字符0进行填充,在输出数值时比较常用 S.expandtabs([tabsize]) -> string tabsize默认为8,字符串中的制表符tab转换为适当数量的空格 ~~~ ### 删除指定字符串两端字符 ~~~ S.strip([chars]) -> string or unicode 删除字符串两端的字符,默认为空格 S.[l|r]strip([chars]) -> string or unicode 删除字符串左或右侧的字符,默认为空格 ~~~ ### 字符串变形 ~~~ S.capitalize() 首字母大写 S.lower() 字符转化为小写 S.upper() 字符转化为大写 S.swapcase() 大小写互换 S.title() 将每一个单词的首字母大写,并将单词中的非首字母转换为小写 ~~~ >[danger] string 模块中的capwords()函数,去除两端的空白符,再将连续的空白符用一个空格代替。 ### 分切 ~~~ S.[r]partition(sep) -> (head, sep, tail) 将字符串按指定字符从左边(默认)切片 S.[r]split([sep [,maxsplit]]) -> list 字符串切割为列表,sep为分隔符(从左,右边开始)maxsplit 是分切的次数 S.splitlines(keepends=False) -> list of strings 将多行按行切为字符串列表,keepends表示是否包含行结束符 ~~~ ### 连接 `S.join(iterable) -> string 功用是将可迭代的字符串序列连接成一条长字符串` ``` python >>> conf = {'host':'127.0.0.1', 'db':'spam', 'user':'sa', 'passwd':'eggs'} >>> ';'.join("%s=%s" % (k, v) for k, v in conf.iteritems()) 'passswd=eggs;db=spam;user=sa;host=127.0.0.1' ``` ### 判断 ~~~ S.isdigit() 判断S是否为数字 S.isalpha() 判断S是否为字母 S.isalnum() 判断S是否为字母或数字 S.islower() S.isupper()判断S是否为大,小写 S.isspace() 判断S是否为空格 S.istitle() 判断S是否为标题 S.startswith(prefix[, start[, end]]) -> bool S.endswith() S.endswith(suffix[, start[, end]]) -> bool是否以suffix结束 ~~~ ~~~ a = 'hiyang' a.endswith('ng',-2) True ~~~ ### 查找 ~~~ S.count() 统计子串 S.[r]find(sub [,start [,end]]) -> int 查找字符串首次出现的位置,默认找最小的位置,找不到时返回-1 S.[r]index(sub [,start [,end]]) -> int 查找字符串首次出现的位置,默认找最小的位置,找不到时抛出ValueError异常 ~~~ >[danger]index找不到时抛出ValueError异常 ### 替换 ~~~ S.replace(old, new[, maxcount]) -> string 替换指定字符串 S.translate(table [,deletechars]) -> string translate() 对 unicode 对象的支持并不完备,建议不要使用 ~~~ ~~~ p = str.maketrans('abc', '123') 'hiyang'.translate(p) ~~~ ### 编码 > decode encode 这是一对互逆操作的方法,用以编码和解码字符串。因为str是平台相关的,它使用的内码依赖于操作系统环境,而unicode是平台无关的,是Python内部的字符串存储方式。unicode可以通过编码(encode)成为特定编码的str,而str也可以通过解码(decode)成为unicode。 ### python3 python3解码时会将数据转化为bytes类型,编码时,会把bytes转化为字符串。 ![](http://om4h63cja.bkt.clouddn.com/17-8-21/95704881.jpg) ~~~ b="ddefdsdff_哈哈" b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则 ~~~ ## 适用于字符串的操作 ## 补充说明 Python自动在任意表达式中合并相邻的字符串 ```python title = 'This' 'is' 'me' title 'Thisisme' ``` **raw字符串抑制转义** ```python fd = open(r'C:\new\text.dat', 'w') ``` 注意: ```python len(repr('spam')) Out[60]: 6 ``` join方法--将子字符串放置到可迭代对象中包含字符串之间 ``` '&&'.join(open('bash.py')) 'hiyang\n&&hiyan\n&&123\n&&\n' ``` ## 字符串逆序 \b 回退一格 \n换行 \r 回车 光标移到本行行首 ## 星座 ~~~ In [8]: for i in range(12): ...: print(chr(9800 + i)) ~~~