【发布时间】:2021-07-04 11:15:46
【问题描述】:
我正在编写一个程序来找出字符串 =“Hello World”中给定值 'o' 的索引号。我使用了三种方式,第一种是使用 index(),第二种是使用带有计数器变量的 for 循环,第三种是使用带有 enumerate() 函数的 for 循环。
我对计数器变量有疑问。因此,“Hello World”中有两个“o”,第一个在第 4 个索引处,第二个在第 7 个索引处。但我的计数器变量显示我 4 和 6 作为输出。但是 enumerate() 显示我 4 和 7 作为输出。我想知道我的计数器变量出了什么问题。
提前致谢。
这是我的代码
val = 'Hello World'
counter = 0
print("Index of 'o' Using Index Function: ", val.index('o', 5))
print('---------------------------------------')
for i in val:
if i == 'o':
print(i, counter)
#I don't want to use break here because I want to print all the index of 'o'
else:
counter += 1
print("------------------")
for i, var in enumerate(val):
print(i, var)
这是输出
Index of 'o' Using Index Function: 7
---------------------------------------
o 4
o 6
------------------
0 H
1 e
2 l
3 l
4 o
5
6 W
7 o
8 r
9 l
10 d
【问题讨论】:
-
无论匹配如何,都应该增加
counter。 -
请你解释一下,其实我是初学者。
-
只有在
i != "o"即else部分中,您才在做counter += 1;但是counter不管它是否命中"o"都必须上升,对吧? -
@KapilYadav 删除
else块并让计数器留在循环中 -
尝试更改
val = "ooooooooooo"并运行您的代码,看看counter有什么。
标签: python python-3.x for-loop