python入门学习--字符串

1.字符串

1.1 单引号字符串和转义引号

1.1.1引号字符串

字符串就是值,就像数字一样:

当python打印出字符串时,是用单引号括起来的,但在程序中用的是双引号。单引号和双引号事实上没有区别

上面两个图用的分别用的是双引号和单引号,打印出来的结果是一样的。但是在某些情况下,单双引号会派上用场

在上面的代码中,第一段字符串包含了单引号(或者称为撇号,根据上下文,应该叫撇号),这时候就不能用单引号将整个字符串括起来。

如果这么做,解释器就会报错。注:撇号在英文中表示所有格

这里字符串为'Let',Python并不知道如何处理后面的s(也就是这行剩下的内容)

在第二个字符串中,句子里包含双引号。所以需要单引号把字符串括起来。

1.1.2 转义引号

使用反斜线(\)对字符串中的引号进行转义,如上图

 

1.2 拼接字符串

上图中是用一个接着一个的方式写了两个字符串,python会自动拼接他们,即将它们合为一个字符串。这种机制用的比较少,有时却非常有用。

拼接字符串用的比较多的方法是直接用加号+,如下图

 

1.3 字符串表示,str和repr

值被转化为字符串的两种机制。可以使用两个函数来使用这两种机制:一种是通过str函数,它会把值转换为合理形式的字符串,以便用户可以理

解;另一种是通过repr函数,它会创建一个字符串,以合法的python表达式的形式来表示值。如下面的例子

repr(x)也可以写作`x`实现(注意,`是反引号,不是单引号)。如果打印一个包含数字的句子,那么反引号就很有用了。比如

str、repr和反引号是将python值转化为字符串的三种方法。函数str让字符串更容易阅读、而repr(和反引号)则把结果字符串

转化为合法的python表达式。

1.4 input和raw_input的比较

上图看起来是一个完全合法的程序。但是运行该程序

问题在于input会假设用户输入的是合法的python表达式(或多或少有些与repr函数相反的意思)如果以字符串作为输入的名字,

程序运行是没有问题的:

要求用户带着引号输入名字有点过分,因此,需要使用raw_input函数,它会把所有的输入当作原始数据(raw data),然后将其放入

字符串中:

除非对input有特别的需要,否则应该尽可能使用raw_input函数。

1.5 长字符串、原始字符串和Unicode

1.5.1 长字符串

如果需要写一个非常非常长的字符串,他需要跨多行,那么,可以使用三个引号代替普通引号

还可以用三个双引号,如"""Like This"""。注:在用这种不同的引用方式,可以在字符串之中同时使用单引号和双引号,而不需要使用反斜线进行

转义。

普通字符串也可以跨行,如果一行中最后一个字符是反斜线,那么,换行符本身就“转义”了,也就是被忽略了

同样也试用于表达式和语句

 1.5.2原始字符串

原始字符串以r开头。可以在原始字符串中放入任何字符。像平常一样对引号进行转义,最后的输出的字符包含了转义所用的反斜线:

不能在原始字符串结尾输入反斜线,换句话说就是原始字符串最后一个字符不能是反斜线,除非对反斜线进行转义(转义的反斜线也会成为字符串的一部分)

 

如果希望原始字符串以一个反斜线作为结尾,该如何处理

本质上就是把反斜线单独作为一个字符串来处理。上图中就是最简单的作法。

注意,可以在原始字符串中同时使用单双引号,甚至三引号字符串也可以。

1.5.3Unicode字符串

python中的普通字符串在内部是以8位的ASCII码形成存储的,而Unicode字符串则存储为16位Unicode字符,这样就能够表示更多的字符集了,

包括世界上大多数语言的特殊字符。

可以看到,Unicode字符串使用U前缀,就像原始字符串使用r一样。在python3中,所有字符串都是Unicode字符串。

 

posted @ 2017-07-08 21:37  青天白日ROC  阅读(332)  评论(0编辑  收藏  举报