Python的字符串可以使用单引号('), 双引号("), 三引号('''); 三引号(''')里面, 可以添加单引号和双引号, 也可以通过转义序列()添加;
字符串放在一起自动连接成为一个字符串;
字符串前面添加限定词R或r, 表示是自然字符串(nature string), 可以忽略里面的格式限制;
在物理行末尾添加"", 可以连接下一个物理行; 括号, 方括号, 大括号也可以一定限度的扩充物理行;
字符串定义
- 使用单引号或双引号
>>> 'Hello World'
'Hello World'
>>> "hello world"
'hello world'
- 单双引号混用
>>> "Hello,'xiao Ming'"
结果:"Hello,'xiao Ming'"
>>> '"xiao Ming",ni mei er'
结果:'"xiao Ming",ni mei er'
说明:如果双引号中间有单引号,可以作为普通字符,如果单引号中间有双引号,亦然
- 使用三引号(单/双)
>>> """xiaoming
xiaoli
xiaopihai"""
结果:'xiaoming\nxiaoli\nxiaopihai'
>>> '''
XIAOMING
XIAOLI
XIAOPIHAI
XIAOGHAI'''
结果:'\nXIAOMING\nXIAOLI\nXIAOPIHAI\nXIAOGHAI'
说明:1. 三单引号、双引号一般用于跨行字符串输入。2. 行末端包含在字符串中,所以显示包含字符串\n 3.如果字符串中有单引号且无双引号,建议使用双引号标志,可读性变强
- 字符串转义
>>> 'isn\'t'
结果:"isn't"
>>> "xiaoMing said \"fuck\" "
结果:'xiaoMing said "fuck" '
>>> '%%hi tom hi beibei,like:%%d %%s %%f %d'%10
结果:'%hi tom hi beibei,like:%d %s %f 10'
说明:'转义字符',"转义字符",%%转义字符%
- 字符串输出
>>> '"dosn\'t",kiss me'
'"dosn\'t",kiss me' #此处没有转义
>>> print('"dosn\'t",kiss me')
"dosn't",kiss me
>>> l = 'first line.\nSecond line.' #\n为换行
>>> l
结果:'first line.\nSecond line.' #为使用print(),\n包含在输出的结果中
>>> print(l) #使用print()函数,\n表示换行,输出结果如下
结果:first line.
Second line.
>>> print("""test
first:This is first Line
-h display this line
-H not display this line
""")
test
first:This is first Line
-h display this line
-H not display this line
>>> print('''
...
...
...''')
...
...
...
>>> print("""test\ #可以使用\ 来取消跨行输出
first:This is first Line\
-h display this line
-H not display this line
""")
结果:testfirst:This is first Line-h display this line
-H not display this line
- 禁止字符转义
>>> print('c:\python\npython35') #这里的\n被解释为作为换行
结果:c:\python
python35
>>> print(r'c:\python\n pyhon35') #如过不想换行,可以在第一个引号前面加r
结果:c:\python\n pyhon35
- 字符串连接应用
>>> conf = {'host':'127.0.0.1',
... 'db':'test',
... 'user':'sb',
... 'passwd':'fuck'}
>>> ';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
结果:'passswd=fuck;db=test;user=sa;host=127.0.0.1'
说明: join() 函数的高效率(相对于循环相加而言),使它成为最值得关注的字符串方法之一。它的功用是将可迭代的字符串序列连接成一条长字符串,其接受一个列表,然后用字符串依次连接列表中每一个元素
- 字符串连接
>>> 'hello' + ' ' + 'world' #用+号连接字符串
结果:'hello world'
>>> ('YY' * 3) + 'DDHH'
结果:'YYYYYYDDHH'
>>> 'yang' '20160122' #用空格连接字符串
结果:'yang20160122'
>>> lidefeng = 'ldf'
>>> lidefeng 'ldf'
结果:SyntaxError: invalid syntax
说明:不管字符串之间有多少空格都会被当作一个空格来看待,尽量不要用空格连接字符串,两者都是字符串不适用与变量或表达式
- 字符串连接续
>>> content = ('hello world I come from china' #回车
'i want to jiangsu.')
>>> content
'hello world I come from chinai want to jiangsu.'
>>> content = 'welcome to school'
>>> text = (content #回车
+ 'i like u to wish'
)
>>> text
'welcome to schooli like u to wish'
>>> 5 * "hello" + "fuck" #用*号重复字符串
'hellohellohellohellohellofuck' #注意:数字必须写在最前面,如需变化顺序需要加上括号(),如上
>>> content = "jiangsu"
>>> content[0] = 'j' #非法赋值
Traceback (most recent call last): #不允许利用索引或切片改变获取字符,字符串,但是可以通过+号来连接获取的字符串
File "<pyshell#119>", line 1, in <module>
content[0] = 'j'
TypeError: 'str' object does not support item assignment
>>> content[2]= 'su'
Traceback (most recent call last):
File "<pyshell#120>", line 1, in <module>
content[2]= 'su'
TypeError: 'str' object does not support item assignment
>>> "i" + content[:4] #不允许利用索引或切片改变获取字符,字符串,但是可以通过+号来连接获取的字符串
'ijian'
- 字符串连接(特殊场景)
>>> "beijing".join("")
结果:''
>>> "beijing".join("a")
结果:'a'
>>> list = ["i"]
>>> "e".join(list)
结果:'i'
>>> "\".jion("content") #不是每种字符串都可以用分隔符
结果:SyntaxError: invalid syntax
网友评论