学习使用任何一种高级语言进行编程时,字符串都是一种常见类型。在Python中,字符串属于不可变序列类型,使用单引号、双引号、三引号作为界定符(它们之间也可以相互嵌套)。除了序列的通用方法,字符串有一些特有的操作方法,如:格式化操作、字符串查找、字符串替换、字符串连接等。
分割字符串时,split()和rsplit()分别用来以指定字符分隔符,从字符串左端和右端开始将其分割成多个字符串,并返回一个列表,列表中各元素即为分割结果。
举例如下 :

s="apple,peach,banana,pear,cherry"
s.split(",")#以,为分隔符

得到的结果是:

['apple', 'peach', 'banana', 'pear', 'cherry']

事实上,并不是所有的字符都可以被指定为分隔符,来看一个例子。

s='\n\nhello\t\t world \n\n\n My name\t is Dong'
print(s.split("\"))

编译后报错:
EOL while scanning string literal是指读取字符串时出错。问题出在哪呢?是不是限定符设定得不对呢?我们再来看一个例子:

s='\\hello\\ world \My name\ is Dong'
print(s)

先猜猜输出的结果会是什么?会是\hello\ world \My name\ is Dong吗?

这就说明电脑认为\\和\是一样的,但是单反斜杠后面一定得再跟一个字符,因为计算机语言中有一种特殊的字符:转义字符。

前一段代码中的\n \t 都称为转义字符,\t 是制表符,功能相当于键盘的 tab键,主要用于缩进;\n是换行符,相当于回车。
举个例子:
由此可以猜测,如果想要用\作为分隔符切割字符串,并不影响转义字符,应采用\作为分隔符。

s='\n\\\n hello\\t world \\ \n\n My name\\\t is Dong'
s.split("\\")

验证后可知,该方法是正确的。

更多推荐

[自学python]从报错开始(3)字符串操作中的EOL while scanning string literal