如何将转义符计入字符串长度?

时间:2019-03-16 14:10:58

标签: python python-3.x

我曾经认为转义字符\在字符串长度上计为1。

y = "I\'m tired"
  print(len(y))

print(Len(y)) = 9的结果很有意义。(imtired有7个字符,'计为1,\计为1) 。但是,当我测试以下编码时,结果是7而不是8water有5个字符,\换码符算为1,""算作2)。我真的为此感到困惑。

m = "wa\"t\"er"
print(len(m))

2 个答案:

答案 0 :(得分:1)

转义字符不可能,因为因为它们不是字符串的一部分。这就是转义字符的重点,实际上是 reason 为何将其称为“转义”字符:因为允许您“转义”其中的内容将该字符串划分为不同的级别,您可以通过特殊处理(例如,在\n中)或确保对其进行特殊处理(例如,在{{ {1}}或\'的一种非常特殊的情况,其中第一个反斜杠是一个特殊字符,告诉解析器对下一个字符进行特殊处理(即,不像对待其他字符那样特殊处理)。

术语“转义”来自带内通信协议,其中内容和控件共享数据流。转义序列或转义字符使您可以从内容切换到控件。

\\(这是一种替代方法,并且可以100%相同地编写字符串)的长度为9的原因是…………好……它有9个字符:

  1. I
  2. '
  3. m
  4. 空格
  5. t
  6. i
  7. r
  8. e
  9. d

同样,字符串"I'm tired"(这是写完全等效的"wa\"t\"er"的一种复杂且难以理解的方式)具有7个字符:

  1. w
  2. a
  3. t
  4. e
  5. r

答案 1 :(得分:0)

转义字符不计入len()中。

y = "I\'m tired"
上面的

len()输出包括空格在内为9。 \不计算在内。

m = "wa\"t\"er"

的长度为7-> 'water'(5)+两个双引号(2)。