문법 · Python · beginner

조건·반복: if, for, while, range

배타적 조건 순서와 for/while, range, enumerate.

배우기 · Python 문법 · 15분 · 2/9 · python · 조건 · 반복

이 트랙 목차 (9)
  1. 1. 들여쓰기·타입·변수: Python 기초
  2. 2. 조건·반복: if, for, while, range
  3. 3. 리스트·슬라이스·문자열
  4. 4. 딕셔너리·집합·컴프리헨션
  5. 5. 함수·기본인자·헬퍼 나누기
  6. 6. 자주 쓰는 표준: collections 맛보기
  7. 7. 예외 기초: try · except · 입력 가드
  8. 8. itertools 맛보기: chain · product · combinations
  9. 9. 정렬 key: 커스텀 비교

if / elif / else

if n % 15 == 0:
    return 'FizzBuzz'
elif n % 3 == 0:
    return 'Fizz'
elif n % 5 == 0:
    return 'Buzz'
return str(n)

구체적인 조건을 위에 둡니다.

for · range · enumerate

for i in range(n):          # 0 .. n-1
    ...
for i in range(1, n + 1):   # 1 .. n
    ...
for i, x in enumerate(arr):
    ...
for x in arr:
    ...

range는 끝 미포함입니다. 오프바이원에 주의하세요.

while

lo, hi = 0, n - 1
while lo <= hi:
    mid = (lo + hi) // 2
    # lo / hi 를 반드시 갱신

무한 루프가 되면 Worker/브라우저가 끊을 수 있습니다.

리스트 컴프리헨션 (맛보기)

squares = [x * x for x in nums if x > 0]

한 줄로 읽히면 쓰고, 복잡하면 일반 for로 푸세요. 다음 레슨에서 더 다룹니다.

누적 초기값

range 경계

range(n) → 0..n-1
range(1, n+1) → 1..n
range(n-1, -1, -1) → n-1..0

손으로 작은 n을 대입해 확인하세요.

zip

for a, b in zip(xs, ys):
    ...

길이가 다르면 짧은 쪽에서 멈춥니다.

무한 while 방지

루프 안에 lo/hi/i반드시 변하는지 검사.
Pyodide도 오래 돌면 탭이 버벅입니다.

관련 짧은 원리

관련 문제