提问人:Isra 提问时间:8/11/2020 更新时间:8/11/2020 访问量:1037
传递空字符串时计数如何工作?[复制]
How does count work when passing an empty string? [duplicate]
问:
我有一个问题,如果我有的话
h = "hello world"
print (h.count(''))
打印 12。
但是如果我这样做
print (h[11])
我收到 IndexError: string index out of range
我不明白原因。
传递空字符串时,count 函数会计算什么?
答:
0赞
Alexander
8/11/2020
#1
字符串最多只能索引 10。请记住,索引从零开始Hello World
H 第一个字符为 0 末尾的 d 是 10
当您这样做时,它会在 String 之后和之前包含一个空格,因此它会添加两个额外的增量。count('')
因此,您可以执行 or () 来显示字符串索引的最后一个元素。len(h)-1
h.count('')-2
注意:len() 显示列表中有多少个元素,而不是最后一个元素的索引。字符串或列表的最后一个元素是len()-1
0赞
cs1349459
8/11/2020
#2
它打印 12 的原因是每个字母之间和两边都有空字符串。下图如下:
All empty strings!
^h^e^l^l^o^ ^w^o^r^l^d^
看起来很奇怪,但每个都是一个空的 sn 空字符串,如果你数一数,有 12 个。^
出现错误的原因是字符串只是一个字符数组,因此它是零索引的,这意味着第一个元素是索引 0,第二个元素是索引 1,依此类推。下图如下:
-------------------------------------
a | b | c | d | e | f | g | h | i | j
-------------------------------------
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
-------------------------------------
如您所见,第 10 个元素 () 位于索引 9 处,因此尝试获取索引 10 将导致错误。j
评论