字符串(String)
1 . 单引号字符串以及对引号转义? 1.与数一样,字符串也是值:
‘Hello,world!‘ 在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单引号将整个字符串括起,否则解释器将报错(做出这样的反应是正确的)。 在这里,字符串为,因此Python不知道如何处理后面的(更准确地说是当前行余下的内容)。 >>> ‘Let‘s go!‘ "Let‘s go!"
? 这样Python将明白中间的引号是字符串的一部分,而不是字符串结束的标志。虽然如此,Python打印这个字符串时,还是使用了双引号将其括起。与你预期的一样,对于双引号可采用同样的处理手法。 长字符串 >>> ""Hello,world!" she said" ‘"Hello,world!" she said‘ 要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。 print(‘‘‘This is a very long string. It continues here. And it‘s not over yet. "Hello,world!" Still here.‘‘‘) 还可使用三个双引号,如
原始字符串 原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用。在常规字符串中,反斜杠扮演着特殊角色:它对字符进行转义,让你能够在字符串中包含原本无法包含的字符。例如,你已 经看到可使用 >>> print(‘Hello,nworld!‘) Hello, world!
这通常挺好,但在有些情况下,并非你想要的结果。如果你要在字符串中包含 可对反斜杠本身进行转义 >>> print(‘C:nowhere‘) C:nowhere
这很好,但对于很长的路径,将需要使用大量的反斜杠: path = ‘C:Program Filesfnordfoobarbazfrozzbozz‘
在这样的情况下,原始字符串可派上用场,因为它们根本不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样。 >>> print(r‘C:nowhere‘) C:nowhere >>> print(r‘C:Program Filesfnordfoobarbazfrozzbozz‘) C:Program Filesfnordfoobarbazfrozzbozz
如你所见,原始字符串用前缀 >>> print(r‘Let‘s go!‘)
Let‘s go! 另外,原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的最后一个字符不能是反斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据前一个示例,这一点应该是显而易见的。如果最后一个字符(位于结束引号前面的那个字符)为反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。 >>> print(r"This is illegal") SyntaxError: EOL while scanning string literal
这合乎情理,但如果要指定以反斜杠结尾的原始字符串(如以反斜杠结尾的DOS路径),该如何办呢? 解决这个问题,但基本技巧是将反斜杠单独作为一个字符串,下面是一个简单的示例: 请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。>>> print(r‘C:Program Filesfoobar‘ ‘‘) C:Program Filesfoobar
使用能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用时,通常会获得值的合法Python表达式表示。 ? 注:实际上,像 >>> print(repr("Hello,nworld!")) ‘Hello,nworld!‘ >>> print(str("Hello,nworld!")) Hello, world! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |