여러 개의 elif 가 있을 수도 있고, else 는 선택적입니다.
키워드 elif 는 else if 의 줄임 표현인데, 과도한 들여쓰기를 피하는 데 유용함.
if … elif … elif 시퀀스는 다른 언어들에서 발견되는 switch 나 case 문을 대신
파이썬의 for 문은 임의의 시퀀스 (리스트나 문자열)의 항목들을 그 시퀀스에 들어 있는 순서대로 이터레이션 함.
끝값은 만들어지는 수열에 포함되지 않는다.
- range(10)은 10개의 값을 만드는데, 길이 10인 시퀀스의 항목들을 가리키는 올바른 인덱스들입니다.
- 범위가 다른 숫자로 시작하거나, 다른 증가분을 (음수조차 가능합니다; 때로 이것을 ‘스텝(step)’ 이라고 부릅니다) 지정하는 것도 가능합니다.
list(range(5, 10))
list(range(0, 10, 3))
list(range(-10, -100, -30))
range()가 돌려준 객체는 리스트인 것처럼 동작하지만, 사실 리스트가 아니며 실제로 리스트를 만들지 않아서 공간을 절약합니다. => 이러한 객체를 이터러블 객체라고 부른다.
break 는 for 문이나 while 문을 나오는 역할을 하게 된다.
continue 는 해당 루프의 다음 iteration 으로 계속되게 한다.

pass 문은 아무것도 하지 않는다.
‘match’ 는 하나 이상의 case 블록으로 주어진 연속적인 패턴과 그 값을 비교합니다.
이는 표면적으로는 C, Java, JavaScript(그리고 다른 여러 언어)의 switch 문과 유사하지만, Rust나 Haskell 같은 언어의 패턴 매칙과 더 유사합니다.
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the internet"
case 401 | 403 | 404
return “Not allowed”
-> | (“or”)를 사용하여 여러 리터럴을 단일 패턴으로 결합할 수 있음.
cf) 조건 더 보기
논리 연산자 and 와 or 는 소위 단락-회로(short-circuit)연산자입니다.
인자들은 오른쪽으로 값이 구해지고, 결과가 결정되자마자 값 구하기는 중단됩니다.