Python字符串
一、字符串的表示
字符串有三种表示方式:普通字符串、原始字符串、长字符串。
普通字符串
普通字符串指的是用单引号或双引号括起来的字符串。

这里说明一下关于转义,不是只有',",在字符串中可能存在其它一些特殊符号比如换行符、制表符等,这些还是要做转义的,转义的时候要在前面加上\
常见的转义字符如下
字符表示
|
Unicode编码
|
说明
|
\t
|
\u0009
|
水平制表符
|
\n
|
\u000a
|
换行
|
\r
|
\u000d
|
回车
|
\"
|
\u0022
|
双引号
|
\'
|
\u0027
|
单引号
|
\\
|
\u005c
|
反斜线
|

原始字符
由于字符串中存在\时会认为转义,但有的场景下就是认一个字符\这个时候要把它的原始意义表示出来则可以使用原始字符raw string

长字符串
如果要使用字符串表达一段有格式的排版的字符,可以使用长字符串表示,要表示长字符串可以使用三个"把字符串括起来。

二、字符串与数字的相互转换
字符串与数字之间是不兼容的,相互之间不可以隐式转换,在需要转换时可以使用对应的函数进行显示转换。
字符串转换为数字
把字符串转换为数字,可以使用int(),float()实现,如果成功则返回对应的数字,否则会产生异常

按下面这种方式做两次转换则是可以的
s = '8.0'
f = float(s)
i = int(f)
那么这个时候f = 8.0,i = 8
注意:默认情况,int()函数是把字符串参数作为十进制数字进行转换,所以int('A')是会转换失败的,但是我们在使用int函数时同样是可以指定进制的,如下:
s = 'a'
i = int(s,16) # 这里第二参数16表示是按16进制转换
这个时候i = 10
把数字转换为字符串
把数字转换为字符串,可以使用str()函数,很多类型数据都可以通过str()函数把数据转为字符串

三、字符串格式化
使用占位符进行替换
如果想要把表达式的计算结果插入字符串中,需要使用占位符,占位符使用一对大括号表示。

占位符的方式:
默认占位符,如:s = 'i * i = {}'.format(i* i),在这个{}中没有指定任何内容,默认把format的值替换到这个位置
参数序号占位符,如:s = '{0} * {0} = {1}'.format(i, i * i),在这里{}中指定了format参数的序号,注意参数的序号是从0开始的,这样在格式化的时候可以对应的进行替制解
参数名占位符,如:s = '{o1} * {o2} = {r}'.format(o1 = i,o2 = i,r = i * i),在{}中指定了format参数中的名称
格式化控制符
在占位符中还可以有格式化控制符,可以对字符串的格式进行更加精准的控制。
格式化控制符位于占位符索引或占位符名称后面,它们之间使用冒号进行分隔,
{参数序号/名称:格式控制符}
格式控制符有如下:
s 字符串
d 十进制整数
f、F 十进制浮点数
g、G 十进制整数或浮点数
e、E 科学计算法表示浮点数
o 八进制,小写的英文o
x、X 十六进制整数,x是小写表示,X是大写表示

四、操作字符串
操作字符串有如下一些方法
1、find() 查找子字符串,这个方法的语法是str.find(sub[, start[, end]]),表示在索引start到end之间查找子字符串sub,如果找到则返回最左端位置的索引,如果没有找到则返回-1

2、replace() 替换字符串,替换匹配的子字符串,返回值是替换后的字符串,这个方法的语法是:str.replace(old,new[,count]),表示用new字符串替换字符串中的子字符串old,count表示替换old子字符串的个数,如果count被省略了则替换所有的old子字符串。

3、字符串分割 split(),按照子字符串来分割字符串,返回字符串列表对象,这个方法的语法是:str.split(sep=None,maxsplit = -1),表示用sep子字符串分割字符串str。maxsplit表示最大分割次数,如果maxsplit被省略,表示不限制分割次数。
