字符串可以用' '或者" "括起来表示。
1.如果字符串本身包含' ',则可以用" "括起来表示,如:"I'm OK."
2.如果字符串本身包含" ",则可以用' '括起来表示,如:'Learn "Python" in imooc'
3.如果字符串本身即包含' '又包含" ",这时候需要对特殊字符进行转义,Python字符串用\进行转义。
如:Bob said "I'm OK".,可以表示为:'Bob said \"I\'m OK\".'
常用的转义字符还有:
\n 表示换行
\t 表示一个制表符
\\ 表示\字符本身
任务
请将下面两行内容用Python的字符串表示并打印出来:
Python was started in 1989 by "Guido".
Python is free and easy to learn.
代码如下:
print'Python was started in 1989 by \"Guido\".'
print "Python is free and easy to learn."
如果字符串有很多需要转义的字符,可以在字符串前面加个前缀“r”,表示这是一个raw字符串,里面的字符就不需要转义了。
如:
r'\(~_~)/ \(~_~)/'
但是r'...'
表示法不能表示多行字符串,也不能表示包含'
和 "
的字符串
如果要表示多行字符串,可以用'''...'''
表示:
'''Line 1 Line 2 Line 3'''
上面这个字符串的表示方法和下面的是完全一样的:
'Line 1\nLine 2\nLine 3'
还可以在多行字符串前面添加 r
,把这个多行字符串也变成一个raw字符串:
r'''Python is created by "Guido". It is free and easy to learn. Let's start learn Python in imooc!'''
任务
请把下面的字符串用r'''...'''
的形式改写,并用print打印出来:
'\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.'
代码如下:
print r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''
Unicode字符串表示方式,以Unicode表示的字符串用u'...'表示,如:print u'中文'
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u
之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
转义:
u'中文\n日文\n韩文'
多行:
u'''第一行 第二行'''
raw+多行:
ur'''Python的Unicode字符串支持"中文", "日文", "韩文"等多种语言'''
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -*- coding: utf-8 -*-
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。
任务
用多行Unicode字符串表示下面的唐诗并打印:
静夜思
床前明月光,zhu
疑是地上霜。
举头望明月,
低头思故乡。
代码如下:
# -*- coding: utf-8 -*-
print '''静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。'''
注意:因为第一行添加了注释# -*- coding: utf-8 -*-,所以print 后面不需要加u了。