## 说明
字符串`字面量`:把文本放入单引号/双引号/三引号中,单双引号混合时使用**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))
~~~
- 前言
- 环境搭建
- pypi
- 打包
- Python 2 和 Python 3 的版本之间差别
- 项目
- 第一部分
- 第1章 基础
- Python安装
- python代码文件类型
- python对象
- 核心数据类型
- 核心数据类型--整型和浮点型
- 核心数据类型--字符串
- str.format
- 核心数据类型--列表
- 核心数据类型--元组
- 核心数据类型--字典
- 核心数据类型--集合
- 核心数据类型--文件对象
- 调用bash
- 标准输入输出
- str-repr
- 字符编码
- 迭代器和生成器
- 第2章 语句和语法
- 赋值语句
- if语句
- while语句
- for语句
- assert
- 第3章 函数
- 函数作用域
- 工厂函数
- 内置函数
- 递归
- 嵌套作用域和lambda
- 参数传递
- 函数式编程
- property可写与可读
- 第5章 模块
- 模块导入
- 模块命名空间
- 相对导入和绝对导入
- 模块重载
- 在模块中隐藏数据
- 过渡性重载
- 第6章 类
- 面向对象还是面向过程?
- 构造函数 析构函数
- call
- 运算符重载
- str()
- 待定
- 即时生成属性
- 多态
- 线程和进程
- thread模块
- threading模块
- threading线程锁
- 糖果机
- multiprocessing
- 阻塞非阻塞同步异步
- 单线程和多线程对比
- 生产者消费者模型
- 第二部分
- 获取系统资源信息
- 获取进程所占的物理内存
- dmidecode获取系统信息
- 网络编程
- 网络基础
- python中的套接字
- socket模块
- 第三部分 高级功能
- 闭包入门
- 闭包的应用
- 装饰器入门
- 装饰器应用
- 第四部分 项目实战
- graphite
- 模块
- collections
- datetime
- Enum
- faker
- fabric
- fileinput
- fire
- fnmatch
- getpass
- glob
- hashlib
- heapq
- json模块
- log
- os
- Paramiko
- parser
- platform
- pyyaml
- Queue
- random
- re
- 特殊符号和字符
- re模块
- shelves
- subprocess
- time
- urllib_urllib2_requests
- urllib urllib2
- requests
- 标准模块ConfigParser
- 扩展模块Mysqldb
- 扩展模块dns
- 扩展模块request
- uuid
- cacheout 缓存库
- delorean 时间
- 附录
- 内置函数
- python实现各种排序算法
- 常见报错
- pymongo
- pyrocksdb
- 常用
- ERROR