2012-10-20 5 views
-2

for 루프를 while 루프로 변경하려면 어떻게해야합니까? forwhile 루프 사이의 중요한 차이점은 무엇입니까? 동일한 코드의 while 루프 구현for를 while 루프로 바꾸는 방법

index = 0 
count = 0 
while index < len(S): 
    #do something with index and S ... 
    index += 1 
+5

어떤 방식으로 생각해 보셨습니까? –

+0

왜 'while' 루프를 원하십니까? 이 for 루프는 멋지게 보입니다. (모든 것이 'count = S.count ('a ')'로 대체 될 수도 있습니다.) – nneonneo

+2

@nneonneo : 제 생각에 이것은 숙제입니다. 변경 :). – lightalchemist

답변

3

다음입니다 : "카운터 < 렌 (S)하면서"여기

가 시작이다

S="I had a cat named amanda when I was little" 
count = 0 
for i in S: 
    if i =="a": 
     count += 1 
print (count) 
+0

답장을 보내 주셔서 감사합니다. –

1

당신은 때마다 증가합니다 카운터를 필요 .

i = 0 
count = 0 
while i < len(S): 
    if S[i] == 'a': 
     count += 1 
    i += 1 
print count 
+0

당신은 혼란을 피하기 위해'counter' 대신'index' name을 사용할 수 있습니다. – jfs

+0

@ J.F.Sebastian - 예. 나는 그럴 것이라고 생각한다. 나는 잠시 동안 그 이름으로 앞뒤로 갔다. 궁극적으로'counter '에 정착했습니다. 왜냐하면 그 일이 그렇게하고 있기 때문이죠. 그리고 다른 언어에서는 이와 같이 루프에서 사용되는 변수에 대해 상대적으로 일반적인 이름입니다. 나는 또한 '카운터'가 자신을위한 지수가 될 것이라는 점을 알아 내기 위해 OP를 원했다. 나는 이런 질문을 줄 정도를 결코 알지 못한다. 어쨌든, 아마 맞을 것이다. OP가 자신의 의미를 이해할 것이라는 희망에 다소 모호한 코드가 아니라 SO에 명확한 코드를 게시하는 것이 가장 좋습니다. – mgilson

0

빈 문자열/목록/사전의 부울 속성을 사용하여 수행 할 수도 있습니다.

S="I had a cat named amanda when I was little" 
count = 0 
while S: 
    # pop the first character off of the string 
    ch, S = S[0], S[1:] 
    if ch == "a": 
     count += 1 
print (count) 
+0

그리고 만약 당신이 정말로 영리하고 싶다면'if'-'count + = ch == 'a'를 없앨 수 있습니다. 그러나 그것은 그것이해야하는 것보다 더 똑똑합니다. (단지 재미로 언급하는 것이지, 당신이 그것을 사용해야한다고 생각하지 않기 때문에). – mgilson

+0

그것은 완전히 다른 세계입니다. "len (filter (lambda c : c == 'a', S))'' – koblas

+1

또는'sum (c == 'a'in c) '... – mgilson

관련 문제