2017-10-04 1 views
1

for 루프의 Python3.6에 대한 질문이 있습니다.for 및 while 루프는 왜 다르게 반복됩니까?

왜 while 루프 내의 변수가이 루프에 영향을 주며 for 루프 내의 변수는 사용할 수 없습니까? 후자의 방법을 사용할 수있는 방법이 있습니까?

계산에 파이썬을 사용하여 수학 질문을하고 있는데 알고리즘은 for 루프를 코드 블록의 첫 번째 루프와 동일하게 사용합니다. 그러나이 루프의 변수 -a 값이 변경되면 for 루프의 범위는 유지됩니다.

그래서 저는 목표를 달성하기 위해 while 루프를 사용합니다. 내 생각 엔이 범위 (일련의 요소)가 일단 실행되거나 for 루프가 while 루프와 동일한 '특성'을 공유하지 않는다는 것입니다.

a = 28 
for i in range(1,a): 
    a = a - 5 

# outcomes: a = -107, i =27 

a = 28 
i = 1 
while i < a: 
    a = a - 5 
    i = i + 1 

# outcomes: a = 3, i = 6 
+1

예, for 루프에서 범위가 미리 계산되므로 반복이 수정됩니다. while 루프에서는 각 반복 후에'a'와'i'의 값에 따라 조건이 재검사됩니다. –

+0

각 루프 안에 print 문을 추가하여 @ cᴏʟᴅsᴘᴇᴇᴅ의 대답과 Python 루프가 실제로 작동하는지 확인할 수 있습니다. – SherylHohman

+0

예, 파이썬'for' 루프는 "for-each"구문입니다 –

답변

2
a = 28 
for i in range(1,a): 
    a = a - 5 

읽기 : a에서 빼기 5, 27 번.


a = 28 
i = 1 
while i < a: 
    a = a - 5 
    i = i + 1 

읽기 : 한 ia보다 적은 그대로 a에서 5를 뺀 하십시오.


분명히이 두 문장은 동일하지 않습니다. for 루프는 범위를 미리 계산하고 a 값에 관계없이 반복을 고정합니다. while의 경우, 새로운 반복을 할 때마다 최신 값이 a 인 상태로 재검사가 이루어집니다.

+0

죄송합니다, new to stackoverflow. 나는 upvoting이 대답을 받아 들일 것을 의미한다고 생각했다. 단지 대답이 필요한 것 옆에 체크 표시가되어 있다는 것을 알았다. 도와 주셔서 감사합니다! – Sirius5783

관련 문제