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로 푸세요. 다음 레슨에서 더 다룹니다.
누적 초기값
- 합:
0 - 곱:
1 - 최댓값:
float('-inf')또는arr[0](빈 배열 주의) - 최솟값:
float('inf')또는arr[0]
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도 오래 돌면 탭이 버벅입니다.