2

1.14Python下字符串

Posted by 撒得一地 on 2015年11月24日 in python教程

很多编程语言的第一个程序都是简单的输出一行向世界问好的字符串,Python程序如下:

print("Hello World!")

似乎已经约定俗成了,那么"Hello World!"是什么?其实就是一字符串,字符串在几乎所有真实可用的Python程序中都会存在,并且有多种用法,其中最主要的用法就是表示一些文本。

单引号字符串和转义引号

字符串是数值,如同数字一样。在Python中,可以用单引号和双引号来表示字符串,二者没有什么区别,如下:

>>> "hello,world"
'hello,world'
>>> 'hello,world'
'hello,world'

上面的例子,不管我们字符串是单引号还是双引号,打印结果都一样,结果都用单引号表示。不过,在某些特殊情况下字符串只能用其中一种方法表示,比如:

>>> "Let's go!"
"Let's go!"
>>> '"Hello,World!" she said'
'"Hello,World!" she said'

只能用成对的单引号或双引号来表示字符串,在上面代码中,第一段字符串包含了单引号,这是候就不能再用单引号将整个字符串括起来。比如,这样就会报错:

>>> 'Let's go!'
  File "<stdin>", line 1
    'Let's go!'        ^

SyntaxError: invalid syntax

在这里字符串为'let',Python不知道如何处理后面的内容。因为字符串都是被单引号或双引号成双成对包括起来的。当你的字符串中真要包含单引号或双引号这些容易引起歧义的字符时,还有另一种选择就是:使用反斜线(\)对字符串中的引号进行转义:

>>> 'Let\'s go!'
"Let's go!"

Python会明白中间的单引号是字符串中的一个字符,而不是字符串的结束标记(即便如此,Python也会在打印字符串的时候使用双引号),同理,对双引号也可以使用相同的方式转义:

>>> "\"hello world"
'"hello world'

转义字符十分有用,有时候甚至是必需的。比如:

>>> 'Let\'s say "hello!" '
'Let\'s say "hello!" '

拼接字符串

上面的例子我们还可以通过另一种方式输出,如:

>>> "Let's say " '"hello!" '
'Let\'s say "hello!" '

我们只是用一个接一个的方式写了两个字符串,然后Python自动拼接它们,将其合并成一个字符串。对于字符串拼接,还有另一种特殊的写法,就是直接用加号(+)拼接字符串,如同加法运算一样:

>>> x= "hello. "
>>> y= "world!"
>>> x+y
'hello. world!'

变量来说,字符串拼接只能用加号(+),用空格会报错:

>>> x= "hello. "
>>> y= "world!"
>>> x+y
'hello. world!'
>>> x y
  File "<stdin>", line 1
    x y    ^

SyntaxError: invalid syntax

用str,repr函数来生成字符串

>>> "hehe"
'hehe'
>>> print('hehe')
hehe

可以注意到,所有通过Python打印的字符串都是被单引号括起来的。这是因为Python打印值的时候会报持该值在Python代码中的状态,而不是你希望用户所看到的状态。如果使用print语句,结果就不一样了。

在Python中,将普通值转成字符串有两种机制,通过两个函数来实现,两个函数分别是str函数和repr函数。str函数它会把值转换为合理形式的字符串,而repr会创建一个字符串,以合法的Python表达式的形式来表示值。
比如:

>>> str(123)
'123' //将123转成字符串
>>> repr(123) 
'123' //创建123字符串

Python下实现字符串方法很多,在比较旧的版本还可以使用反引号(`)来表示,不过新版已经不再使用反引号了。

本文地址:http://coderschool.cn/1134.html

标签:

上一篇:

下一篇:

相关推荐

2 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

0 + 8 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.