[구조 설명]
range(시작, 끝, 간격) 형태로 사용합니다.
시작 (len(food)-1): 반복을 시작할 숫자입니다.
리스트 food의 길이가 4라면, 3부터 시작합니다.
(리스트의 마지막 인덱스를 의미합니다)
끝 (0): 반복을 멈출 기준 숫자입니다.
주의할 점: 이 숫자는 포함되지 않습니다.
즉, 0 바로 앞인 1까지만 반복하고 멈춥니다.
간격 (-1): 숫자가 변하는 크기입니다.
-1이므로 숫자가 1씩 줄어듭니다. (예: 3 → 2 → 1)
[예시 (food 리스트 길이가 4일 때)]
for i in range(3, 0, -1):
print(i)
3
2
1
파이썬에는 for-else, while-else라는 특별한 문법이 있어서, 반복문이 break 없이 끝까지 실행되면 else 블록이 동작합니다.
while-else 동작 원리while 조건:
# 반복 코드
if 특정_조건:
break # ← break 만나면 else 실행 안됨
else: # ← while이 break 없이 끝날 때만 실행
# "반복문이 정상 종료"됐을 때 실행할 코드
while i < len(s): # 내부 while문
if s[i] == x:
x_count += 1
else:
other_count += 1
i += 1
if x_count == other_count: # 조건 만족!
answer += 1
break # ← break → else 실행 안됨
else: # ← 이 else는 위의 while에 붙음!
answer += 1 # "조건 미달성 + 문자열 끝"일 때 실행
# 리스트에서 5 찾기
numbers = [1, 3, 7, 9]
for num in numbers:
if num == 5:
print("5 발견!")
break
else: # break 없이 끝나면 실행
print("5를 찾을 수 없음") # 이게 출력됨
문자열 나누기에서 else는 "반복문이 끝까지 돌았는데도 분리 조건(x_count == other_count)을 만족하지 못했다" → "남은 문자열을 마지막 조각으로 분리"하는 역할을 합니다.