趁着年轻去拼搏 发表于 2020-4-27 09:05:06

字符长度

>>>str=("a\b\c")
>>>len(str)
4

问题:为什么等于四不等于3,\b和\c不是分别表示一个字符长度吗?

wuqramy 发表于 2020-4-27 09:08:48

你print一下str就知道了
>>> str=("a\b\c")
>>> len(str)
4
>>> print(str)
a\c

qiuyouzhi 发表于 2020-4-27 09:09:17

\c表示两个字符长度。
>>> len('\c')
2

_2_ 发表于 2020-4-27 09:10:54

wuqramy 发表于 2020-4-27 09:08
你print一下str就知道了

看一眼你第 5 行是个啥

KevinHu 发表于 2020-4-27 09:11:52

'\c'不是一个转义字符,是两个字符组成的:'\'和'c'

_2_ 发表于 2020-4-27 09:19:08

>>> print("a\b\c")
a\c
>>> #从这里看出来,print 之后长度为 4
>>> len("a\b\c")
4

heidern0612 发表于 2020-4-27 09:19:28

本帖最后由 heidern0612 于 2020-4-27 09:21 编辑

因为\a和\b都是关键字,都算一个,\C不算关键字,算俩字符。所以一共是四个字符。

所以才有下面\a\b\c打印的结果只有/c。


另外,不要命名重新命名str内置函数。

sunrise085 发表于 2020-4-27 09:21:55

本帖最后由 sunrise085 于 2020-4-27 09:25 编辑

并不是所有的字符前加反斜杠都会被转义的。所有能转义的都是有规定的。
如:\b转义为退格,\n转义为回车换行,\t转义为Tab, 等等
你要把\c转义?没这个规定啊
所以\c是两个字符'\'和'c'
因此,"a\b\c"是四个字符

wuqramy 发表于 2020-4-27 09:22:16

heidern0612 发表于 2020-4-27 09:19
因为\a和\b都是关键字,都算一个,\C不算关键字,算俩字符。所以一共是四个字符。

所以才有下面\a\b\c打 ...

那是a\b\c啊

永恒的蓝色梦想 发表于 2020-4-27 09:22:21

heidern0612 发表于 2020-4-27 09:19
因为\a和\b都是关键字,都算一个,\C不算关键字,算俩字符。所以一共是四个字符。

所以才有下面\a\b\c打 ...

他没用 \a 。

heidern0612 发表于 2020-4-27 09:22:54

wuqramy 发表于 2020-4-27 09:22
那是a\b\c啊

噢,\a和a都是一个字符。
页: [1]
查看完整版本: 字符长度