브렌쏭의 Veritas_Garage

[우리FISA] 3일차 Python 제어문 본문

[Project_하다]/[Project_공부]

[우리FISA] 3일차 Python 제어문

브렌쏭 2024. 7. 10. 16:19

조건문

분기문 이라고도 불리며, 조건에 따라 코드의 흐름을 변경하는 구문이다.

if

가장 기본적인 조건문이다.

  • 조건식이 참일 경우 코드 블럭을 실행한다.
  • 조건식이 거짓일 경우 코드 블럭을 실행하지 않는다.
if 조건식:
    코드 블럭
elif 조건식:
    코드 블럭
else:
    코드 블럭

match ~ case

파이썬 3.10부터 추가된 새로운 분기문이다.

match 변수:
    case 값1:
        코드 블럭
    case 값2:
        코드 블럭
    case 값3:
        코드 블럭
    case _:
        코드 블럭
  • case _:default와 같은 역할을 한다.
  • case 블럭은 break가 필요 없다.
  • case 블럭은 :로 끝나야 한다.
  • case 블럭은 ifelif처럼 여러 개를 사용할 수 있다.
a = 3
match a:
    case 1:
        print("1")
    case 2:
        print("2")
    case 3:
        print("3")
    case _:
        print("default")
  • _default와 같은 역할을 한다.
    • 와일드카드로 사용된다.
  • |를 사용하여 여러 값에 대한 분기를 한 번에 처리할 수 있다.
a = 3
match a:
    case 1 | 2:
        print("1 or 2")
    case 3:
        print("3")
    case _:
        print("default")
examples = [
    ['python'],
    ['1'],
    ['아침', '점심', '저녁'],
    ['score', 100, 22, 90]
]

x = ['python']
# for x in examples:
match x:
    case ['python']:
        print(x)
        # break
    case ['아침', '점심']:
        print(x)
            # break
    case ['1'] | ['2']:
        print(x)
            # break
    case ['score', *z]:
        print(z) # [100, 22, 90]
            # break
    # case _:
    #     print('나머지 모든 경우')
  • case ['score', *z]:에서 *는 나머지 값을 의미한다.
    • ['score', 100, 22, 90]에서 100, 22, 90을 의미한다.
    • *는 리스트나 튜플 등의 컨테이너에 사용할 수 있다.

삼항 연산자

조건문을 한 줄로 표현할 수 있는 삼항 연산자이다.

변수 = 값1 if 조건식 else 값2

# 예시
a = 3
b = 5
max = a if a > b else b
print(max) # 5

들여쓰기 이야기

파이썬은 들여쓰기로 코드 블럭을 구분한다.

  • 들여쓰기는 공백 4칸을 권장한다.
  • 탭을 사용하면 안된다.
if 조건식:
    코드 블럭

pass & continue & break

pass: 아무것도 하지 않는다.

  • 코드 블럭을 구현하지 않았을 때 사용한다.
  • 미구현된 부분을 나중에 구현할 때 사용한다.
  • if 문이나 함수 등에서 아무런 동작을 하지 않게 할 때 사용한다.

continue: 코드 블럭을 건너뛴다.

  • 반복문에서 특정 조건을 만족할 때, 코드 블럭을 건너뛸 때 사용한다.
  • 반복문의 다음 반복으로 넘어간다.
  • continue 아래의 코드는 실행되지 않는다.

break: 반복문을 종료한다.

  • 반복문을 종료할 때 사용한다.
  • 반복문을 강제로 종료한다.
  • break 아래의 코드는 실행되지 않는다.
for i in range(10):
    if i == 3:
        pass
    elif i == 5:
        continue
    elif i == 7:
        break
    print(i)
  • 위 코드에서 pass는 아무런 동작을 하지 않는다.
  • 두번째 elif에서 continue로 인해 print(i)가 실행되지 않는다.
  • 세번째 elif에서 break로 인해 반복문이 종료된다.

논리연산자 && 비트연산자

논리연산자

  • and: 논리곱
  • or: 논리합
  • not: 논리부정
  • ==: 같다
  • !=: 같지 않다
  • is: 같은 객체인지 확인 (주소값 비교)
  • is not: 같은 객체가 아닌지 확인 (주소값 비교)
  • in: 포함되어 있는지 확인
  • not in: 포함되어 있지 않은지 확인
a = 3
b = 5
c = 3

print(a == b) # False
print(a == c) # True
print(a is b) # False
print(a is c) # True
print(a in [1, 2, 3]) # True
print(a not in [1, 2, 3]) # False

비트연산자

  • &: 비트곱
  • |: 비트합
  • ^: 배타적 비트합
  • ~: 비트부정
a = 3
b = 5

print(a & b) # 1
print(a | b) # 7
print(a ^ b) # 6
print(~a) # -4

비트연산자의 경우 비트 단위로 연산을 수행한다.

  • 작동 방식이 논리연산자와 다르다.
    • 논리연산자는 논리 단위로 연산을 수행한다.

보통의 경우 비트연산자를 사용할 일은 없다.

  • 하드웨어 제어나 네트워크 프로그래밍 등에서 사용한다.


반복문

반복문은 코드 블럭을 반복적으로 실행하는 구문이다.

while

조건식이 참일 경우 코드 블럭을 반복적으로 실행한다.

  • 조건식이 거짓일 경우 반복문을 종료한다.
while 조건식:
    코드 블럭
i = 0 # 초기값, 반복문의 바깥에서 선언

while i < 10: # 조건식
    print(i)
    i += 1 # 증감식

초기값을 반복문 바깥에서 선언하고, 반복문 안에서 증감식을 사용한다.

  • 무한루프에 빠지지 않도록 주의한다.
  • break를 사용하여 반복문을 종료할 수 있다.
  • continue를 사용하여 반복문의 다음 반복으로 넘어갈 수 있다.
  • pass를 사용하여 코드 블럭을 구현하지 않을 수 있다.
  • else를 사용하여 반복문이 종료되었을 때 실행할 코드 블럭을 구현할 수 있다.
i = 0

while i < 10:
    if i == 5:
        break
    print(i)
    i += 1
else:
    print("반복문 종료")

for

시퀀스(리스트, 튜플, 문자열)의 요소를 하나씩 꺼내서 코드 블럭을 실행한다.

for 변수 in 시퀀스:
    코드 블럭
for i in range(10):
    print(i)

비교적 끝나는 시점이 명확한 경우에 사용한다.

  • while은 끝나는 시점이 명확하지 않은 경우에 사용한다.
  • for는 끝나는 시점이 명확한 경우에 사용한다.

for문에서 else를 사용할 수 있다.

  • for문이 정상적으로 종료되었을 때 실행할 코드 블럭을 구현할 수 있다.
for i in range(10):
    if i == 5:
        break
    print(i)
else:
    print("반복문 종료")

특이한 파이썬만의 무언가는 딱히 없는 것 같다.

다만, match ~ case는 파이썬 3.10부터 추가된 새로운 분기문이다.

  • switch ~ case와 비슷한 역할을 한다.

파이썬은 들여쓰기로 코드 블럭을 구분한다.

  • 들여쓰기는 공백 4칸을 권장한다.
  • 탭을 사용하면 안된다.
  • 다른 언어와 달리 들여쓰기가 문법적인 요소로 사용된다.
Comments