startswith() 函数在 while 循环中不起作用但在 for 循环中起作用? python
startswith() function not working in while loop but works in for loop? python
while-loop 不工作
i=0
l1=["rohan","sachin","sam","raj"]
while i<len(l1):
if l1[i].startswith('s'): #if i comment out this line it is working
print("GREET "+l1[i])
i=i+1
缩进在 Python 中很重要。
你必须每次都增加你的计数器i
,而不仅仅是在你打印的时候,否则它是一个无限循环。
i=0
l1=["rohan","sachin","sam","raj"]
while i<len(l1):
if l1[i].startswith('s'):
print("GREET "+l1[i])
i=i+1 # <- increment counter outside of if-block!
这是因为 i 的递增是在 if 条件而不是 while 循环中完成的。由于列表中的第一个单词不是以“S”开头,因此如果 i 没有递增并且 while 循环永远执行,它就不会进入内部。这只是一个逻辑问题
是的,将计数器向左移动后它就可以工作了。计数器应该放在 if 块的外面。
while-loop 不工作
i=0
l1=["rohan","sachin","sam","raj"]
while i<len(l1):
if l1[i].startswith('s'): #if i comment out this line it is working
print("GREET "+l1[i])
i=i+1
缩进在 Python 中很重要。
你必须每次都增加你的计数器i
,而不仅仅是在你打印的时候,否则它是一个无限循环。
i=0
l1=["rohan","sachin","sam","raj"]
while i<len(l1):
if l1[i].startswith('s'):
print("GREET "+l1[i])
i=i+1 # <- increment counter outside of if-block!
这是因为 i 的递增是在 if 条件而不是 while 循环中完成的。由于列表中的第一个单词不是以“S”开头,因此如果 i 没有递增并且 while 循环永远执行,它就不会进入内部。这只是一个逻辑问题
是的,将计数器向左移动后它就可以工作了。计数器应该放在 if 块的外面。