Python中单、双引号及多引号区别
String字符串中的引号
- 引号均可用于String字符串的实现
- 注意引号在混合使用中的匹配问题
- 多引号可以包含字符串的格式(字面量字符串在idle直接输出时,换行会以转义字符的形式显示)及注释内容的显示
- 多引号可以减少转义字符的使用
下面是字符串的引号字面量创建:
##单引号字符的显示
>>> 'Hello Python'
'Hello Python'
>>> 'Hello ''Python' ##字面量字符串的自动级连
'Hello Python'
##双引号字符的显示
>>> "Hello Python"
'Hello Python'
>>> "Hello ""Python"
'Hello Python'
>>> "Hello " 'Python'
'Hello Python'
##多引号的使用
>>> '''Hello python'''
'Hello python'
>>> '''Hello''' ''' Python'''
'Hello Python'
由上面代码可以看出,引号显示的字符串是一样的。
下面说说单双引号的使用匹配问题:
>>> "Hello 'Python"
"Hello 'Python" ##双引号中包含单引号时,会原样输出
>>> 'Hello'Python'
SyntaxError: invalid syntax
>>> "Hello "Python"
SyntaxError: invalid syntax
##单(双)引号,中包含自身时,会出现成引号的匹配问题,出现语法错误
>>> 'Hello \'Python'
"Hello 'Python" ##可以通过转义来实现上面的在单引号中的引号打印
>>>
##可以消除转义的字符r
>>> s1 = r'test\tddd'
>>> s2 = 'test\tddd'
>>> print s1
test\tddd
>>> print s2
test ddd
>>>
下面看看多引号和单双引号的区别:
>>> "Hello Python"
'Hello Python'
>>> '''Hello
Python'''
'Hello\nPython'
>>> '''
Hello
Python
''' ##IDLE中多引号字面量会打印出转义字符(换行\n)
'\nHello\nPython\n' ##IDLE中的字面量字符串直接打印的显示结果
##通过变量接收字面量字符串后打印
##s1中的\字符为换行符(继行符),出现在每一行的末尾时,才会被认定为换行符
>>> s1 = "\
Hello,\
Python "
>>> s2 = '''
Hello,
Python '''
>>> print s1
Hello, Python
>>> print s2
Hello,
Python
>>>
##打印多行字符串时,使用单双引号的字符串需要使用转义字符换行
>>> s1 = "Hello \nPython "
>>> print s1
Hello
Python
>>> s2 = '''Hello
Python'''
>>> print s2
Hello
Python
>>>
由上面代码不难看出单双引号不能直接实现打印多行,且会忽略字符串的格式,而多引号则会按照字符串的格式打印,注意区别字面量的直接打印和赋值打印效果。
>>> s1 = "\
Hello,\
Python #code comments"
SyntaxError: EOL while scanning string literal
>>> s2 = '''
Hello,
Python #code comments'''
>>> print s2
Hello,
Python #code comments
>>>
上面代码中依次在双引号及多引号中添加注释,双引号会报错,而多引号会打印出注释。
注意:
- 本文中使用的是python2.7.9,大家测试时,注意和python3的区别
- 上面的代码中##的注释为后面编辑手动添加做说明用,#为代码中添加的注释