为什么不用这个循环中断?我得到的是stats变量的第一个字母和从0到无限的计数。
x = 0
for letter in range(0,len(stats)):
while True:
if stats[letter] != ',':
x += 1
print(stats[letter])
print (x)
elif stats[letter] == ',':
break
break
print(stats[letter])
答案 0 :(得分:1)
它不会中断,因为你的letter
永远不会在while循环中被更改。如果
stats[letter] != ','
在while
循环的开头,然后该分支将被反复使用。
答案 1 :(得分:0)
for letter in range(0,len(stats)-1):
if stats[letter] != ',':
x += 1
print(stats[letter])
print (x)
elif stats[letter] == ',':
break
print(stats[letter])
我认为上面的代码就是你所追求的。您不需要while
循环,for
循环将测试字符串stats
中的每个字母,并在您使用逗号时中断。
如果字符串中没有逗号,最后一行将打印逗号或最后一个字母。我也改变了循环限制,因为我认为你测试一个不存在的字符会出错。
编辑:它适用于我,虽然我认为另一个答案是更好的方法。我在下面运行了这个测试脚本,并且每次命中逗号都会破坏它。#!/usr/bin/python
def SO_answer(stats):
x = 0
for letter in range(0,len(stats)-1):
if stats[letter] != ',':
x += 1
print(stats[letter])
print (x)
elif stats[letter] == ',':
break
print(stats[letter])
SO_answer("test")
SO_answer("testing, 1, 2, 3")
SO_answer("Here's a long string with a comma at the end,")
SO_answer(",,,,,")
答案 2 :(得分:0)
这是你要解决的问题吗?内置enumerate()为您提供index
和value
的{{1}}。
iterable