2016-08-25 2 views
0

자바에서 FOR 루프 구문은 조건을 추가 할 수있는 곳을 제공합니다. 예를 들어, 아래 코드에서 조건이 우리가 루프 문에 대한 이러한 조건을 추가 할 수있는 방법, 내가 J에게 파이썬에서 < N파이썬 루프에서 조건을 추가하는 방법

for (i=0; i*j < n; i++) 
{ ... } 

을 *인가?

for i in range(n): 

for 루프에 if 문을 추가 할 수 있다는 것을 알고 있지만 실행 시간이 O (n)로 늘어날 염려가 있습니다. 제발 조언.

+2

을 : 구체적인 예를 들어, C, 당신은

for(i=0; i<len(str); i++){ str[i] blah blah blah } 

파이썬에서 아마 당신은이 작업을 수행하는 방법과 직접 문자를 반복하는 것입니다 작성할 수 있습니다 어떤 경우에도 O (n). 'for' 대신에'while'도 사용할 수 있습니다. –

+0

예에서 보듯이'for i in range (n // j + 1) '와 같은 것을 얻을 수 있습니다. – fuglede

답변

4

forO(n)의 복잡성을 가지므로 if은 복잡성을 변경하지 않습니다. 나는 이것이 나의 가장 큰 걱정 중 하나, 파이썬을 C로 전환 할 때

i = 0 # initialization 
while i * j < n: # conditions 
    do_something 
    i += 1 # step 
1

하지만, 실제로의의 오해 밝혀 :

자바의 for(i=0; i*j < n; i++)은 Python으로 while로 표현된다 통사론. 파이썬에서는 비록 여러분이 for i in range(n)이라고 쓸 수는 있지만, 이것은 보통 여러분이 뭔가 잘못하고 있다는 표시입니다. 숫자가 아닌 요소를 반복하는 것이 더 좋습니다. 나는 당신이 어떤 DIFF에있는 것 같아요

for char in str: 
    char blah blah blah 
관련 문제