python字符详解及常用连接

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 "", line 1, in 
    content[0] = 'j'
TypeError: 'str' object does not support item assignment
>>> content[2]= 'su'
Traceback (most recent call last):
  File "", line 1, in 
    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

你可能感兴趣的:(python字符详解及常用连接)