Python数据类型之字符串及其转义

  字符串

  与数字一样,字符串也是值,用单引号或双引号括起来。

  'Hello world!' 或 "Hello world!"

  字符串的转义

  当我想在屏幕上输出 Let's go! 时可以这样写

print("Let's go!")
>>> Let's go!

  当输出内容有'时  可以用双引号来标识字符串的开始和结尾。

  如果想输出在屏幕上的字符串中有双引号时,可以用单引号来标识字符串的开始和结尾。

print(' "hello world!" she said')
>>> "hello world!" she said

 

  但是,当想输出在屏幕上的字符串既有单引号又有双引号时(Let's say "Hello, world!"),就需要用反斜杠(\)进行转义。

print('Let\'s say "hello world!"')
>>> Let's say "hello world!"

  这样Python将明白中间的引号是字符串的一部分,而不是字符串结束的标志。

  常规字符串也可以横跨多行,只要在行尾加上反斜杠,反斜杠和换行符将被转义,即忽略。

print\
('hello world')
>>> hello world

print (1+2\
+3+4)
>>> 10

  当不想用反斜杠来进行转义时,就需要长字符串和原始字符串了。

  长字符串(三个单引号或者双引号)

print('''Let's say "hello world!"''')
>>> Let's say "hello world!"

  长字符串常用于不想用反斜杠转义字符串里有较多的单引号或者双引号时比较有效。

  原始字符串

  原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用(正则表达式或者表示文件路径)

print('Hello,\nworld!')
>>> Hello,
   World!

  \n为换行符,此时输出的没有问题,但是当字符串中需要显示\n时,比如表示文件路径

path = 'C:\nowhere'
print(path)
>>> C:
        owhere

  1.用\进行转义

path = 'C:\\nowhere'
print(path)
>>> C:\nowhere

  2.如果路径很长,可以使用原始字符串 (r)

print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz')
>>> C:\Program Files\fnord\foo\bar\baz\frozz\bozz

  原始字符串常用于不想用反斜杠转义字符串里有较多的反斜杠时比较有效。因为原始字符串r''  如果字符串中有较多单引号或者双引号。。会报错

  指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。那就意味着当字符串里含有大量单双引号时(此时可以忽略反斜杠了),如果第一个是单引号,原始字符串可以以r"""字符串"""的形式来写,如果第一个是双引号,原始字符串可以以r'''字符串'''的形式来写。这样是不是就不存在长字符串和原始字符串的使用形式了(字符串里单双引号较多还是反斜杠较多)

  另外,原始字符串不能以单个反斜杠结尾。如果最后一个字符(位于结束引号前面的那个字符)为反斜杠,且未对其进行转义Python将无法判断字符串是否到此结束。但如果要指定以反斜杠结尾的原始字符串(如以反斜杠结尾的DOS路径)。

print(r'C:\Program Files\foo\bar' '\\')
>>> C:\Program Files\foo\bar' 

猜你喜欢

转载自www.cnblogs.com/romacle/p/10732814.html