## 说明

字符串`字面量`:把文本放入单引号/双引号/三引号中,单双引号混合时使用**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]) -> stringtabsize默认为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]) -> stringtranslate() 对 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))

~~~

python的核心数据类型_核心数据类型--字符串相关推荐

  1. ARM核心板_迅为imx6工控核心板_核心板中的小新潮

    ARM核心板_迅为imx6工控核心板_核心板中的小新潮 核心板参数 尺寸 51mm*61mm CPU Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存 2GB D ...

  2. datetime数据类型_系统数据类型

    1.整数型 1. 整数型数据由负整数或正整数组成,如-15. 0.5和2509. 整数型数据使用bigint.int, smallint和tinyint数据类型存储.各种类型能存储的数值的范围如下: ...

  3. python不支持以下哪种数据类型_下列数据类型中, Python不支持的是()。_学小易找答案...

    [判断题]a={},type(a)结果是 . (5.0分) [简答题]内造型设计 [填空题]水分子之间存在着质子的传递作用,称为水的 作用,这个作用的平衡常数在25度时等于 . [填空题]len('3 ...

  4. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

  5. java 测试用例核心代码_核心Java测验

    java 测试用例核心代码 Welcome to Core Java Quiz. Java is an object-oriented programming language. 欢迎来到Core J ...

  6. mysql适合储存高清电影的数据类型_下列数据类型中适合存储PDF文档的是( ) (5.0分)_学小易找答案...

    [单选题]咯血的特点不正确的是 [单选题]下面关于SHOW TABLES LIKE 't%'描述错误的是( ) (5.0分) [单选题]下列删除itcast数据库的sql语句中,正确的是 (5.0分) ...

  7. java复合数据类型_复合数据类型

    1.列表,元组,字典,集合分别如何增删改查及遍历. 答: (1)列表的增删改查: 增:使用append()方法在列表的末尾增加新的元素 删:使用del语句来删除列表的元素 改:通过下标索引找到值然后直 ...

  8. python数据转换成字节流_关于Python3字符串转换为字节流的问题

    un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe ...

  9. 西门子real是什么数据类型_西门子数据类型REAL转WORD和S5TIME的方法

    real转双整数是有一个取整指令的round,这样就可以实现把real转换为双整数,当然余数丢失了. 双整数比如MD10,那么MD10=(MW10+MW12)组成的,当然这里不是数学符号,不明白的可以 ...

最新文章

  1. conda 基本操作
  2. Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率...
  3. Solaris IPMP 配置
  4. 从Q4财报,看有道如何实现从在线教育“迷途”中脱身?
  5. 在java中arraylist_在Java中将ArrayList添加到另一个ArrayList
  6. magenta内核与linux,谷歌将推出新操作系统Fuchsia:Magenta语言为内核
  7. SQL中on条件与where条件的区别(二)【转】
  8. 【汇编语言与计算机系统结构笔记02】整数的计算机表示与运算,C中的无符号字符(unsigned)和带符号字符(signed),补码,一些例题
  9. 地理加权归回模型 (GWR) 参数估计
  10. CAN与CAN FD通信之间存在的问题
  11. go编译成linux可执行,Golang 编译Mac、Linux、Windows多平台可执行程序
  12. 深度学习小笔记04-魏秀参《解析深度学习-卷积神经网络原理与视觉实践》
  13. php在线生成logo,logo在线生成 php在线生成ico文件的代码
  14. 计算机界十位顶级人物!
  15. Error Code: 1054. Unknown column 'xxx' in 'field list'
  16. JQuery插件之-----Datatables(三)Datatables实现多选框与AJAX返回数据
  17. unity 模拟引力
  18. linux基础学习-ssh基础
  19. html css 最佳实践,30个CSS最佳实践 | Soo Smart!
  20. 细节决定成败,人生要注意的50个细节

热门文章

  1. openGL ES进阶教程(二)之全景图片
  2. RDD断点回归案例怎么分析?
  3. IDEA反编译class文件
  4. 阻止WordPress垃圾评论和广告评论的三种方法
  5. 五分钟学Java:如何学习Java面试必考的网络编程
  6. mysql 密码文件改成密文_需求:实现数据库密码通过密文的方式存储在配置文件中 | 学步园...
  7. 任正非讲的20个小故事——华为大管理的灵魂
  8. 二十一、商城 - 商品录入-KindEditor 编辑器(9)
  9. 激活松果体---凝视太阳---DNA重新编码
  10. Web前端的学习与应用