조건문
True인지 False인지 평가하여 해당 조건이 True인 경우 특정 코드 블록을 실행
Python에서 주로 if문을 사용하고 3.10 버전 이후부터는 match문으로도 작성할 수 있음
if문에 사용할 수 있는 표현식
비교 연산자 : ==, !=, <, <=, >, >=
논리 연산자 : and, or, not
멤버 연산자 : in, not in
식별 연산자 : is, is not
다른 함수의 반환 값이나 변수의 값 (불리언으로 평가)
+ 단축평가 : 논리 연산에서 두 번째 인수의 평가가 첫 번째 인수의 결과에 따라 달라지는 방식
= and 및 or 연산자가 이러한 평가를 수행
+ 삼항 연산자 : if-else 구문을 한 줄로 간단하게 표현할 수 있는 방법을 제공
= X if 조건 else Y와 같은 형태로 사용 (조건이 참이면 X가 평가, 거짓이면 Y가 평가됨)
+ 람다함수 : 함수 내 조건문을 사용하여 간단한 조건 로직 구현 가능
ex) my_function = lambda x: 'Even' if x % 2 == 0 else 'Odd'
+ 딕셔너리 : 컴프리헨션을 사용하여 조건문을 기반으로 딕셔너리를 생성 가능
ex) my_dict = {x: 'Even' if x % 2 == 0 else 'Odd' for x in range(10)}
1. if - else : 조건문을 확인해서 True면 문장 1(if)을, False면 문장 2를(else) 수행
2. if - else - elif : if의 조건이 True가 아니라면 elif문의 조건이 True면 수행
3. 중첩 if - elif : 조건문 안에 또 다른 조건문을 포함 (and를 사용하여 변경 가능, elif와 else를 모두 사용 가능)
+ match
= Python 3.10 버전부터 추가됨 (python에 없는 switch 문을 switch처럼 사용하기 위해)
여러 조건을 체크하여 해당 조건에 맞는 코드 블록을 실행하는 제어문
일반적으로 if-elif-else 문보다 가독성이 좋음
match 문법 활용 예시
코드 풀이
1. Hello 문자열과 일치하는지 확인 후 일치하지 않아 건너뜀
2. World 문자열과 일치하는지 확인 후 일치하지 않아 건너뜀
3. (_)는 와일드카드로 어떤 값과도 일치한다는 것을 나타냄, 따라서 No Match가 출력
+ (|) 대신 and나 or연산자는 가능하지 않음
반복문 (for)
for문은 특정 범위나 순서열(ex 리스트, 문자열 등)을 순회하며 순서열의 끝에 도달하면 반복을 멈춤
객체를 처음부터 끝까지 하나씩 추출하며 순회하기 때문에 다양한 방식으로 활용 가능
+ 시퀀스 자료형 또는 반복 가능한 자료형을 순회 돌 수 있음
for 변수명 in 순회 가능한 객체 :
pass # 수행할 문자
1. 시퀀스 자료형 문자열 순회
2. 시퀀스 자료형 튜플 순회
3. 문자열(str) 자료형을 범위로 지정
4. 리스트(list) 자료형을 범위로 지정
5. 사전(dict) 자료형을 범위로 지정
+ for문을 이용해 dict 자료형을 순회하며 key만 가져옴, key에 해당하는 value 가져오고 싶을 경우 튜플 언패킹 사용 가능
6. range를 범위로 지정
+ range(시작값, 종료값, 연속하는 두 수의 차)
중첩 for문
= 반복문 안에 새로운 반복문 (대표적인 예시로 구구단 만들기, 별 찍기 등 있음)
# 구구단 코드 (9단)
for i in range(2, 10) :
print(f'---{i}단---')
for j in range(1, 10):
print(f'{i} X {j} = {i * j}')
컴프리헨션 (comprehension)
1. 리스트 컴프리헨션 : 간결하게 리스트를 생성하는 기능, 반복문과 조건문을 결합하여 리스트를 생성
2. 조건문 컴프리헨션 : 반복문의 인자가 뒤의 조건문에 해당하는지를 확인하여 그 인자를 리스트의 요소로 가지게 되는 것
3. 중첩된 반복문과 중첩된 컴프리헨션 : 컴프리헨션은 중첩된 반복문을 사용할 수 있으며 컴프리헨션 내에서도 컴프리헨션 중첩이 가능
(컴프리헨션 문법의 중첩은 코드의 가독성을 떨어트림, 3개 이상의 중첩은 권장하지 않음)
4. 함수 사용 컴프리헨션 : 기존 리스트를 순회하며 요소들을 함수의 인수에 넣어 함수의 return 값을 새로운 리스트에 저장 가능
5. 딕셔너리 컴프리헨션 : 중괄호({}) 내부에 for문과 필요한 조건문을 넣어 그 앞에 딕셔너리의 key와 vlaue값이 콜론(:)으로 구분되어 위치
그 외 세트 컴프리헨션 : 리스트 컴프리헨션과 동일하게 사용되지만 대괄호([])대신 중괄호({})를 사용함
컴프리헨션 정리
복합 자료형 순회
반복되는 값이 같은 구조는 언패킹 하여 한번에 순회
+ 언패킹 : 순회할 수 있는 객체를 변수에 하나씩 할당하는 것
= 복합 자료형이 중첩되어 있을 때 어떻게 언패킹 하여 순회를 하는지?
리스트 안에 문자열이 들어가 있으면 해당 자료형도 언패킹이 가능
튜플 내의 요소가 3개인 경우에도 각각의 요소를 가져와서 출력 가능
enumerate를 사용한 순회
= enumerate는 순서를 매길 때 사용, 별도의 변수를 선언하지 않고 가능
인덱스의 시작값을 지정하지 않으면 기본값 0부터 시작
while문도 앞부분은 배웠지만, 내일 전체 정리하겠습니다.
지금까지 배운 반복문과 조건문을 활용해 마지막 한 시간에는 랜덤게임을 만들었어요.
랜덤숫자 맞추기와 가위바위보 게임의 코드를 짰습니다.
해당 코드는 밑의 사진 참조 바랄게요 :)
이렇게 배운 부분과 알고 있던 부분을 조금씩 활용하여 게임을 만드니 확실히 집중력과 이해도가 높아지는 것 같아서 추천합니다.