BootCamp/모두의연구소:오름캠프

24.01.09

혼복필 2024. 1. 9. 17:16
728x90
300x250
SMALL

조건문

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문도 앞부분은 배웠지만, 내일 전체 정리하겠습니다.

지금까지 배운 반복문과 조건문을 활용해 마지막 한 시간에는 랜덤게임을 만들었어요.

랜덤숫자 맞추기와 가위바위보 게임의 코드를 짰습니다.

해당 코드는 밑의 사진 참조 바랄게요 :)

이렇게 배운 부분과 알고 있던 부분을 조금씩 활용하여 게임을 만드니 확실히 집중력과 이해도가 높아지는 것 같아서 추천합니다.

 

728x90
300x250
LIST

'BootCamp > 모두의연구소:오름캠프' 카테고리의 다른 글

24.01.11  (5) 2024.01.11
24.01.10  (2) 2024.01.10
24.01.08  (4) 2024.01.08
23.01.05  (4) 2024.01.05
24.01.04  (4) 2024.01.05