st = "abXabXAbX"
ch = "A"
st = st.lower()
ch = ch.lower()
for i in st:
if (i==ch):
print st.find(i)
我试图在字符串“st”中以大写和小写的形式定位字符“ch”。 for循环在检测到第一个“a”时停滞不前,如何让循环继续检查字符串的其余部分?
答案 0 :(得分:1)
for循环没有被卡住,而是应该前进。你认为它被卡住了,因为find
会返回它所查找的项目的第一个出现。它始终在索引0处遇到它,因此您的代码打印0,0,0。
要运行此功能,您可以使用enumerate来跟踪信件的索引:
for i, ltr in enumerate(st):
if (ltr==ch):
print i
答案 1 :(得分:1)
>>> st = "abXabXAbX".lower()
>>> ch = "A".lower()
>>> [ ix for ix,item in enumerate(st) if item == ch]
[0, 3, 6]
答案 2 :(得分:1)
st = "abXabXAbX"
ch = "A"
st = st.lower()
ch = ch.lower()
pos = st.find(ch)
print(pos)
while pos >= 0:
pos=st.find(ch,pos+1)
if pos>-1:
print(pos)
这将为您提供所有职位