[TIL]_2025.03.10 본캠프 22일차 (3): 파이썬 종합반 3주차

JIYUU·2025년 3월 10일

02. 조건문

1) 조건문이란?

  • 특정 조건이 True인 경우만 코드 블록을 실행하도록 함
  • if, elif, else 3가지 키워드를 사용하여 구성
  • 조건의 순서는 상관 없음
if 조건:
    # 조건이 참일 때 실행될 코드
elif 다른조건:
    # 다른 조건이 참일 때 실행될 코드
else:
    # 위의 조건이 모두 거짓일 때 실행될 코드

2) 들여쓰기 및 띄어쓰기의 중요성

# 잘못된 들여쓰기

x = 10

if x > 5:
print("x는 5보다 큽니다.")
else:
print("x는 5보다 작거나 같습니다.")

3) 연산자

  • 조건 판단을 위한 '비교 연산자'를 사용
    >, < : 초과, 미만
    >=, <= : 이상, 이하
    == : 같음
    != : 같지 않음
  • 조건 결합을 위한 '논리 연산자'
    and : 모두 참일 때 참
    or 하나 이상이 참일 때 참
    not 조건을 부정

4) 조건문의 다양한 에시

  • 논리 연산자를 사용하는 다중 조건식
x = 10
y = 5

if x > 5 and y < 10:
    print("x는 5보다 크고, y는 10보다 작습니다.")
elif x <= 5 or y > 10:
    print("x는 5보다 작거나 같거나, y는 10보다 큽니다.")
else:
    print("다른 조건")
  • 조건문은 중첩 사용이 가능
x = 10
if x > 0:
    if x % 2 == 0:
        print("양의 짝수입니다.")
    else:
        print("양의 홀수입니다.")
else:
    print("음수 또는 0입니다.")

5) 조건문의 짧은 표현

  • 조건문을 한 줄로 간략하게 표현할 수도 있음
# 자주 사용되지는 않음!

x = 10
result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0"
print(result)

6) 조건문이 실전에서 사용되는 예시 : 분석 결과에 따른 의사 결정

# 판매량에 따른 생산량 결정 예시
sales = 1000

if sales > 1000:
    print("추가 생산이 필요합니다.")
elif sales <= 1000:
    print("현재 생산량이 적당합니다.")

같은 구문에 대해서도 이런 저런 방법으로 다양한 시도를 해보면 학습하는 데에 도움이 된다!

03. 반복문 - for문

1) for문이란?

# 기본 구조

for 변수 in 반복할_데이터:
    코드_블록
  • 반복할 데이터에서 하나씩 변수를 꺼내서 코드 블록을 실행하는 것!
  • 반복할 데이터란 '리스트, 튜플, 문자열' 등 반복 가능한(iterable) 데이터 타입
  • 변수는 각 반복마다 현재 값을 가지는 변수

2) for문 기본 사용법

  • 리스트 순회하기
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
  • range(stop)
# 0부터 시작하여 5 이전까지의 정수 시퀀스 생성
for i in range(5):
    print(i, end=' ')
# 출력: 0 1 2 3 4
  • range(start, stop, step)
# 1부터 시작하여 10 이전까지 2씩 증가하는 정수 시퀀스 생성
for i in range(1, 10, 2):
    print(i, end=' ')
# 출력: 1 3 5 7 9
  • 딕셔너리 순회하기
person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
    print(key, " : ", value)

3) 조건문과 함께 사용하기

  • 짝수만 출력하기
for i in range(1, 11):
	if i % 2 == 0:
    print(i)

# range의 step을 사용하여, 짝수만 구할 수 있음
for i in range(2, 11, 2):
	print(i)
  • 리스트에서 특정 값 걸러내기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []
for num in numbers:
    if num % 2 == 0:
        even_numbers.append(num) # 리스트에 값을 집어 넣음
        
print(even_numbers)
  • 별표로 직각 삼각형 그리기
# 조건문과 반복문을 복합적으로 활용하여 별표로 직각 삼각형 그리기
size = 10 # 삼각형의 크기를 입력

for i in range(1, size + 1):
    print("*" * i)
  • 별표로 역삼각형 만들기
size = 5
for i in range(size, 0, -1):
    for j in range(i):
        print("*", end="")
    print()
  • 특정 문자열 제거하기
sentence = "Hello World"
result = ""
for char in sentence:
    if char != "o":
        result += char # result = result + char
print(result)
  • 딕셔너리에서 특정 조건에 맞는 항목 출력하기 ⭐
ages = {"John": 30, "Jane": 25, "Doe": 35, "Alice": 20}
for name, age in ages.items():
    if age > 25:
        print(name, " is older than 25")

5) 반복문이 실전에서 사용되는 예시들
1. 데이터 정제 및 전처리

  • 결측치 처리, 이상치 탐지를 위해 각 행과 열을 반복적으로 검사
  • 문자열 데이터를 숫자로 변환, 특수문자 제거 등의 전처리 작업에서 반복문 사용
# 결측치 처리 예시
data = [10, 20, None, 30, 40, None, 50]
cleaned_data = []
for d in data:
    if d is not None:
        cleaned_data.append(d)
print(cleaned_data)
  1. 통계 계산
  • 데이터 요약 통계 계산 시 각 요소를 반복 처리
  • 히스토그램 등 분포를 만들 때 데이터 반복 처리 및 카운트
# 평균 계산 예시
data = [10, 20, 30, 40, 50]
total = 0
for d in data:
    total += d
mean = total / len(data)
print("Mean:", mean)
  1. 데이터 탐색
  • 데이터 특정 패턴이나 특징을 찾기 위해 데이터 반복 탐색
  • 다차원 데이터 구조 탐색, 관련 정보 추출하기 위해 사용
# 특정 조건을 만족하는 데이터 찾기 예시
data = [10, 20, 30, 40, 50]
threshold = 25
for d in data:
    if d > threshold:
        print("Value greater than", threshold, "found:", d)
  1. 모델 평가
  • 모델의 성능 평가 시, 예측값과 실제값을 비교하기 위해 데이터 반복 처리
  • 교차 검증 수행 시, 각 폴드에 대한 반복을 사용하여 모델 훈련 및 평가
# 모델 성능 평가 예시
true_values = [1, 0, 1, 0, 1]
predicted_values = [0, 0, 1, 0, 1]
correct_predictions = 0
for true, pred in zip(true_values, predicted_values):
    if true == pred:
        correct_predictions += 1
accuracy = correct_predictions / len(true_values)
print("Accuracy:", accuracy)

04. 반복문 - while문

1) while이란?

  • 조건을 만족하는 동안 코드 블록을 반복적으로 실행
  • 특정 조건이 True일때 실행, False가 될 때까지 반복
i = 1
while i <= 5:
    print(i)
    i += 1
    
# i가 5을 넘어가면 False가 되어 루프 종료
  • 무한루프와 break문
while True:
    user_input = input("Type 'quit' to exit: ")
    if user_input == 'quit':
        break	# 사용자가 quit을 입력하면 루프 종료
    print("You typed:", user_input)
  • pass문은 아무런 동작을 하지 않고 반복을 계속함. 뒤에 동작이 남은 게 있으면 남은 동작까지도 진행
# 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        pass
    else:
        print(num, "은 홀수입니다.")
  • continue는 pass와 유사하나, 남은 동작도 진행하지 않고 그냥 지나감. 바로 다음 반복으로 넘어갈 경우 continue를 사용
# 1부터 10까지의 숫자 중 짝수를 출력
num = 0
while num < 10:
    num += 1
    if num % 2 == 1:
        continue
    print(num)
  • 조건에 따른 특정 동작 반복 예시
count = 0
while count < 3:
    print("Hello")
    count += 1
  • while문을 사용한 팩토리얼 계산
num = 5
factorial = 1
while num > 0:
    factorial *= num
    num -= 1
print("Factorial of 5 is:", factorial)

05. Quiz

1) 조건문*
1. 다음 중 파이썬의 비교 연산자가 아닌 것은?
a) ==
b) !=
c) <=
d) >< ✅

  1. 임의의 수를 변수에 넣고 그 변수에 입력된 수가 양수인지 음수인지 판별하여 결과를 출력하는 파이썬 코드를 작성해보세요. (0은 양수로 간주합니다)
n = 10
if n >= 0:
    print('양수 입니다.')
else:
    print('음수 입니다.')

2) for문
1. 다음 코드의 출력 결과는 무엇인가요? (코드를 치지 않고도 한번 맞춰 보세요!)

numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        print(num)

a) 1
b) 2 ✅
c) 3
d) 4 ✅
e) 5

  1. 1부터 10까지의 정수 중에서 홀수만을 포함하는 리스트를 생성하는 파이썬 코드를 작성해보세요.
odd_number = []
for n in range(1, 11):
    if n % 2 == 1:
        odd_number.append(n)

print(odd_number)

3) while문 퀴즈
1. 다음 중 무한 루프를 탈출하는 방법이 아닌 것은?
a) break문 사용
b) continue문 사용
c) 조건문에서 False가 되도록 설정
d) return문 사용 ✅

4) 종합 퀴즈(조건문과 반복문 모두 이용하기)
1. 1부터 100까지의 정수 중에서 3의 배수일 때 "Fizz", 5의 배수일 때 "Buzz"를 출력하세요. (나머지 경우에는 그냥 숫자를 출력합니다)

for n in range(1, 101):
    if n % 3 == 0:
        print('Fizz')
    elif n % 5 == 0:
        print('Buzz')
    else:
        print(n)

0개의 댓글