### **字符串**
字符串本质是:字符序列,python的字符串是不可改变的,我们无法对原字符串进行任何修改,但可以将字符串的一部分复制到新建的字符串,达到看起来修改的效果
<br>
**字符串的编码**
python3直接支持unicode, 可以标识世界上任何书面语言的字符,python3的字符默认就是16位unicode编码, ASII码是Unicode编码的子级
使用内置函数ord()可以把字符串转换成对应的Unicode码,
使用内置函数chr()可以把十进制数字转换成对应的字符
字符串 的定义 可以使用" "、' '、''' '''来定义
<br>
**转义字符**
我们可以使用“、+特殊字符”,实现某些使用字符表示的效果
转义字符
| 转义字符 | 描述 |
| --- | --- |
| \ 在行尾 | 续行符 |
| \b | 退格 |
| \n | 换行 |
| \t | 横向制表符 |
| \r | 回车 |
```
# \n使用
>>>a = 'i\nlove\nyou'
>>>print(a)
i
love
you
# \使用
>>>b='i\'m a teacher'
>>>print(b)
i'm a teacher
# \ 续行符
>>>print('asdfasdfasdfasd\
fasdfasdfasdf')
asdfasdfasdfasdfasdfasdfasdf
```
<br>
**字符串拼接**
可以使用 + 将多个字符串拼接起来。 例:'aa' + 'bb' = 'aabb'
* 如果 + 两边都是字符串,则拼接
* 如果 + 两边都是数字,则加法运算
* 如果 + 两边类型不同,则抛出异常
可以将多个字符串直接放到一起实现拼接。例 'aa' 'bb' = 'aabb'
```
>>>a = 'asdf'+'awsdf'
>>>a
'asdfawsdf'
>>>b = 'dfgsd''asdfasdf'
>>>b
'dfgsdasdfasdf'
```
<br>
**字符串复制**
使用 * 可以实现字符串复制
```
>>>a = 'abc'*3
>>>a
abcabcabc
```
<br>
**不换行打印**
正常使用print时,会自动加上一个换行符,可以通过参数 end = '任意内容' 实现末尾添加任何内容
创建python
print('abc', end=' ')
print('abc', end='##')
pring('abc)
运行结果: abc abc##abc
<br>
**从控制台读取字符串**
我们可以使用 input() 从控制台读取键盘输入的内容
```
>>>myname = input('请输入名字:')
请输入名字:浩哥
>>>myname
'浩哥'
```
<br />
**使用 [] 提取字符**
我们可以通过在字符串后面加 [] ,提取单个字符
```
>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>a[0]
'a'
>>>a[26-1] # 可以使用运算符
'z'
>>>a[-2] # 可以从后往前找
'y'
>>>a[-26]
'a'
```
<br>
**字符串驻留机制和字符串比较**
字符串驻留:只保存一份字符串对象,如果新定义字符串相同的变量则直接引用 不会创建新的对象。
python支持字符串驻留机制,对于符合标识符规则的字符串(仅包含数字、字母、_)会启用字符串驻留机制。
```
>>>a='01_abc'
>>>b='01_abc'
>>>a is b
True
>>>a='sc#01'
>>>b='sc#01'
>>>a is b
False
>>>a = 'abc'
>>>b= 'abc'
>>>a is b
True
>>>a = '123'
>>>b = '123'
>>>a is b
True
```