admin 管理员组

文章数量: 1086866

python的核心数据类型

## 说明

字符串`字面量`:把文本放入单引号/双引号/三引号中,单双引号混合时使用**3单引号**。

python2 使用`unicode`编码,使用u进行标识, 如u'hiyang',python3自动支持。

文档字符串:模块/类或者函数的`第一条语句`是一个字符的话,该字符串成为`文档字符串`,可以使用__doc__引用。

## 索引和切片

索引运算符:`[i]`

切片运算符:`[i:j]`

切片运算符**扩展**:[i:j:stride],`[::1]`正向显示` [::-1]`倒序显示

## 字符串操作符

![](.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转化为字符串。

![](.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的核心数据类型