Python 传递空字符串时计数是如何工作的?

Python 传递空字符串时计数是如何工作的?,python,Python,如果我有问题的话,我有一个问题 h = "hello world" print (h.count('')) 打印12张 但如果我这样做了 print (h[11]) 我得到一个索引器:字符串索引超出范围 我不明白原因 传递空字符串时计数函数的计数是多少?字符串Hello World最多只能索引10。记住索引从零开始 H第一个字符是0 最后的d是10 当您进行计数(“”)时,它在字符串前后都包含一个空格,因此它会添加两个额外的增量 因此,您可以执行len(h)-1或(h.

如果我有问题的话,我有一个问题

h = "hello world"
print (h.count(''))
打印12张

但如果我这样做了

print (h[11]) 
我得到一个索引器:字符串索引超出范围

我不明白原因


传递空字符串时计数函数的计数是多少?

字符串
Hello World
最多只能索引10。记住索引从零开始

H第一个字符是0 最后的d是10

当您进行
计数(“”)
时,它在字符串前后都包含一个空格,因此它会添加两个额外的增量

因此,您可以执行
len(h)-1
或(
h.count(“”)-2
)来显示字符串索引的最后一个元素


注len()显示列表中有多少元素,而不是最后一个元素的索引。字符串或列表的最后一个元素是
len()-1

字符串
Hello World
最多只能索引10。记住索引从零开始

H第一个字符是0 最后的d是10

当您进行
计数(“”)
时,它在字符串前后都包含一个空格,因此它会添加两个额外的增量

因此,您可以执行
len(h)-1
或(
h.count(“”)-2
)来显示字符串索引的最后一个元素


注len()显示列表中有多少元素,而不是最后一个元素的索引。字符串或列表的最后一个元素是
len()-1

它打印12的原因是每个字母之间以及两侧都有空字符串。这是一张图表:

  All empty strings!
^h^e^l^l^o^ ^w^o^r^l^d^
-------------------------------------
a | b | c | d | e | f | g | h | i | j
-------------------------------------
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
-------------------------------------
这看起来很奇怪,但每个
^
都是一个空字符串,如果你算一下,就有12个

出现错误的原因是字符串只是一个字符数组,因此它的索引为零,这意味着第一个元素是索引0,第二个元素是索引1,依此类推。这是一张图表:

  All empty strings!
^h^e^l^l^o^ ^w^o^r^l^d^
-------------------------------------
a | b | c | d | e | f | g | h | i | j
-------------------------------------
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
-------------------------------------

如您所见,第十个元素(
j
)位于索引9,因此尝试获取索引10将导致错误。

它打印12的原因是每个字母之间以及两侧都有空字符串。这是一张图表:

  All empty strings!
^h^e^l^l^o^ ^w^o^r^l^d^
-------------------------------------
a | b | c | d | e | f | g | h | i | j
-------------------------------------
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
-------------------------------------
这看起来很奇怪,但每个
^
都是一个空字符串,如果你算一下,就有12个

出现错误的原因是字符串只是一个字符数组,因此它的索引为零,这意味着第一个元素是索引0,第二个元素是索引1,依此类推。这是一张图表:

  All empty strings!
^h^e^l^l^o^ ^w^o^r^l^d^
-------------------------------------
a | b | c | d | e | f | g | h | i | j
-------------------------------------
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
-------------------------------------

如您所见,第十个元素(
j
)位于索引9,因此尝试获取索引10将导致错误。

空字符串存在于字符串的两端,以及字符串中的每对字符之间:因此结果是字符串长度加1。空字符串存在于字符串的两端,以及其中的每对字符之间:因此结果是字符串长度加1。