Ming's Life

[내일배움캠프] 11일차 본문

내일배움캠프

[내일배움캠프] 11일차

chamiii 2025. 5. 26. 20:27

1. 오늘 학습 키워드

  • 데이터 분석 파이썬

 


 

2. 오늘 학습 한 내용을 나만의 언어로 정리하기

 

 

조건문

- 파이썬의 조건문은 프로그램의 흐름을 제어하는 중요한 요소 중 하나입니다.

- 이것은 특정 조건이 참(True)인 경우에만 특정 코드 블록을 실행하도록 합니다.

- 파이썬에서 조건문은 if, elif(else if의 줄임말), else 키워드를 사용하여 구성됩니다.

if 조건:
    # 조건이 참일 때 실행될 코드
elif 다른조건:
    # 다른 조건이 참일 때 실행될 코드
else:
    # 위의 조건이 모두 거짓일 때 실행될 코드

 

x = 10
if x > 0:
	  print("양수입니다.")
elif x < 0:
    print("음수입니다.")
else:
    print("0입니다.")

* 변수 x의 값이 양수인지, 음수인지, 아니면 0인지를 판별하여 각각에 맞는 메시지를 출력하는 예시

 

 

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

1. 올바른 들여쓰기

x = 10

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

* 이 예시에서는 if 문과 else 문이 서로 다른 인덴트 수준에 위치합니다.

   이것은 각각의 블록이 어디서 시작하고 끝나는지 명확하게 보여줍니다.

 

2.잘못된 들여쓰기

x = 10

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

 

* 이 예시에서는 print 문이 각각의 블록 안에 있는 것처럼 보입니다.

* 그러나 파이썬은 들여쓰기를 통해 블록을 식별하기 때문에 들여쓰기가 제대로 이루어지지 않으면 오류가 발생합니다.

 

3. 들여쓰기의 중요성

x = 10

if x > 5:
    print("첫 번째 블록 시작")
    if x < 15:
        print("두 번째 블록 시작")
else:
    print("첫 번째 블록 끝")

* 이 예시에서는 들여쓰기를 사용하여 블록이 서로 어떻게 연결되어 있는지 명확하게 보여줍니다.

   첫 번째 if 문의 내부에 두 번째 if 문이 있는 것을 알 수 있습니다.

 

 

연산자

- 파이썬에서 조건을 판단하기 위해 비교 연산자를 사용합니다.

  • > : 초과
  • < : 미만
  • >= : 이상
  • <= : 이하
  • == : 같음
  • != : 같지 않음

조건을 결합할 때 사용하는 논리 연산자

  • and : 모두 참일 때 참
  • or : 하나 이상이 참일 때 참
  • not : 조건을 부정
x = 10
if x > 0 and x % 2 == 0:
    print("양의 짝수입니다.")

* x가 양수이고 짝수인지를 판별하여 그에 맞는 메시지를 출력하는 예시

 

 

조건문의 다양한 예시

- 논리 연산자를 사용하는 다중 조건식

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("다른 조건")

* 이 예시에서는 논리 연산자 and, or를 사용하여 여러 개의 조건식을 결합합니다.

x = 10
y = 7

if x > 5 and y < 10:
    print("x는 5보다 크고, y는 10보다 작습니다.")

if x < 5 or y > 10:
    print("x는 5보다 작거나, y는 10보다 큽니다.")

if not (x == 5):
    print("x는 5와 같지 않습니다.")

* 아래의 예시에서는 각각 and, or, not 연산자를 사용하여 다중 조건식을 활용한 예시를 보여줍니다.

 

x = 10

if x > 5:
    print("x는 5보다 큽니다.")
    if x < 15:
        print("x는 15보다 작습니다.")
    else:
        print("x는 15보다 큽니다.")
else:
    print("x는 5보다 작거나 같습니다.")
x = 10
if x > 0:
    if x % 2 == 0:
        print("양의 짝수입니다.")
    else:
        print("양의 홀수입니다.")
else:
    print("음수 또는 0입니다.")

* 조건문은 중첩하여 사용할 수 있습니다.

 

 

조건문의 짧은 표현   -  (잘 사용되지 않는다.)

- 조건문을 한 줄로 간략하게 표현할 수도 있습니다.

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

* 조건식이 참일 경우 "양의 짝수"를, 거짓일 경우 "음수 또는 0"을 출력합니다.

 

 

조건문이 실전에서 사용되는 예시

- 분석 결과에 따른 의사 결정

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

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

* 특정 제품의 판매량이 일정 기준을 넘는다면 추가 생산이 필요하거나, 고객의 특성에 따라 마케팅 전략을 변경해야 할 경우에 조건문을 활용할 수 있습니다.

 

 

반복문

- 코드를 일정 규칙에 따라 반복시키는 문법

 

 

for문

- 파이썬의 for 반복문은 데이터 분석 및 다른 프로그래밍 작업에서 매우 유용합니다. 

for 변수 in 반복할_데이터:
    코드_블록

* 여기서 "순회할_데이터"는 리스트, 튜플, 문자열 등과 같은 반복 가능한(iterable) 데이터 타입이 될 수 있습니다.

* "변수"는 각 반복(iteration)마다 현재 값을 가지는 변수입니다.

 

 

for문 기본 사용법

 

리스트 순회하기

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

* 이 코드는 "apple", "banana", "cherry"를 순서대로 출력합니다.

 

문자열 순회하기

for letter in "hello":
    print(letter)

* 이 코드는 "h", "e", "l", "l", "o"를 순서대로 출력합니다.

 

range() 함수와 함께 사용하기

for i in range(5):
    print(i)

* 이 코드는 0부터 4까지의 숫자를 출력합니다.

 

range 함수에 대해서 자세히 알아보기

- range() 함수는 연속된 정수를 생성하는 데 사용되는 내장 함수입니다.

- 이 함수는 시작값(start), 끝값(stop), 그리고 증가값(step)을 인자로 받아 사용됩니다.

- 이 함수는 주로 반복문에서 사용되며, 특히 for 루프와 함께 자주 사용됩니다.

range(stop)
range(start, stop)
range(start, stop, step)

* start: 순차적인 정수 시퀀스의 시작 값을 나타냅니다. 이 값은 생략 가능하며, 기본값은 0입니다.

* stop: 순차적인 정수 시퀀스의 끝 값을 나타냅니다. 이 값은 필수적으로 지정되어야 합니다. 단, 실제로 생성되는 마지막 숫자는 이 값보다 작습니다.

* step: 각 숫자 사이의 간격을 나타냅니다. 이 값은 생략 가능하며, 기본값은 1입니다.

 

# 0부터 시작하여 5 이전까지의 정수 시퀀스 생성
for i in range(5):
    print(i, end=' ')
# 출력: 0 1 2 3 4

* 사례 1: range(stop)

# 2부터 시작하여 7 이전까지의 정수 시퀀스 생성
for i in range(2, 7):
    print(i, end=' ')
# 출력: 2 3 4 5 6

* 사례 2: range(start, stop)

# 1부터 시작하여 10 이전까지 2씩 증가하는 정수 시퀀스 생성
for i in range(1, 10, 2):
    print(i, end=' ')
# 출력: 1 3 5 7 9

* 사례 3: range(start, stop, step)

 

* range() 함수의 인자에 따라 생성되는 정수 시퀀스의 범위와 증가량이 달라집니다. 이를 활용하여 다양한 반복 작업을 수행할 수 있습니다.

 

 

딕셔너리 순회하기

person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
    print(key, " : ", value)

*이 코드는 딕셔너리의 키와 값 쌍을 출력합니다.

 

 

조건문과 함께 사용하기

짝수만 출력하기

for i in range(1, 11):
    if i % 2 == 0:
        print(i)

* 이 코드는 1부터 10까지의 숫자 중 짝수만 출력합니다.

 

1부터 100까지의 숫자 중 3의 배수 출력하기

# 조건문과 반복문을 복합적으로 활용하여 1부터 100까지의 숫자 중 3의 배수 출력
for i in range(1, 101):
    if i % 3 == 0:
        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)

* 이 코드는 주어진 리스트에서 짝수만 골라내어 새로운 리스트에 저장한 후 출력합니다.

 

구구단 출력하기

# 조건문과 반복문을 복합적으로 활용하여 구구단 출력
for i in range(2, 10):
    print(f"{i}단:")
    for j in range(1, 10):
        print(i, "x", j, " = ", i * j)

 

문자열에서 특정 문자 제거하기

sentence = "Hello World"
result = ""
for char in sentence:
    if char != "o":
        result += char
print(result)

* 이 코드는 문자열에서 "o"를 제외한 모든 문자를 새로운 문자열에 추가하여 출력합니다.

 

딕셔너리에서 특정 조건에 맞는 항목 출력하기

ages = {"John": 30, "Jane": 25, "Doe": 35, "Alice": 20}
for name, age in ages.items():
    if age > 25:
        print(name, " is older than 25")

* 이 코드는 딕셔너리에서 값이 25보다 큰 경우에 대해 이름과 함께 메시지를 출력합니다.

 

 

이중 for문 사용

- 이중 for문을 사용하면 중첩된 데이터 구조를 탐색하거나 이차원 데이터를 처리할 수 있습니다.

- 이를 통해 데이터를 보다 복잡하게 처리하고 원하는 패턴을 찾을 수 있습니다.

for i in range(2, 10):
    for j in range(1, 10):
        print(i, "x", j, "=", i*j)

* 이 코드는 구구단을 출력합니다.

 

 

반복문이 실전에서 사용되는 예시들

- 데이터 분석에서는 반복문을 데이터의 각 요소를 처리하거나 데이터 구조를 탐색하는 데 사용합니다. 

 

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)

 

 

2. 통계 계산

- 데이터의 요약 통계(평균, 중앙값, 표준편차 등)를 계산할 때 각 요소를 반복하여 처리합니다.

- 히스토그램이나 분포를 만들 때 데이터를 반복하여 처리하고 카운트합니다.

# 평균 계산 예시
data = [10, 20, 30, 40, 50]
total = 0
for d in data:
    total += d
mean = total / len(data)
print("Mean:", mean)

 

 

3. 데이터 탐색

- 데이터의 특정 패턴이나 특징을 찾기 위해 데이터를 반복적으로 탐색합니다.

   예를 들어, 특정 조건을 만족하는 데이터를 찾거나 특정 값의 분포를 조사할 때 사용됩니다.

- 다차원 데이터 구조를 탐색하고 관련 정보를 추출하기 위해 반복문이 사용됩니다.

# 특정 조건을 만족하는 데이터 찾기 예시
data = [10, 20, 30, 40, 50]
threshold = 25
for d in data:
    if d > threshold:
        print("Value greater than", threshold, "found:", d)

 

 

4. 모델 평가

- 모델의 성능을 평가할 때 예측값과 실제값을 비교하기 위해 데이터를 반복하여 처리합니다.

- 교차 검증(cross-validation)을 수행할 때 각 폴드에 대해 반복문을 사용하여 모델을 훈련하고 평가합니다.

# 모델 성능 평가 예시
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)

 

 

5. 반복적인 작업 자동화

- 여러 데이터 파일이나 시계열 데이터의 각 시간 단계를 반복적으로 처리하여 일괄적으로 분석하거나 처리합니다.

- 반복적인 분석 작업을 자동화하기 위해 반복문을 사용합니다.

 

 

while문

- 파이썬의 반복문 중 하나인 while문은 조건을 만족하는 동안 코드 블록을 반복적으로 실행합니다.

- while문은 특정 조건이 참(True)일 때에만 실행되며, 조건이 거짓(False)이 될 때까지 반복됩니다.

 

파이썬 while문의 구조

while 조건:
    코드_블록

* 여기서 "조건"은 불리언(boolean) 값(True 또는 False)을 반환하는 표현식입니다.

* 조건이 True로 평가될 때까지 코드 블록이 반복적으로 실행됩니다.

 

 

while문의 기본 사용법

 

1부터 5까지 출력하기

i = 1
while i <= 5:
    print(i)
    i += 1

* 이 코드는 1부터 5까지의 숫자를 출력합니다.

   while문을 사용하여 변수 i가 5 이하일 때까지 반복하여 숫자를 출력하고, 반복마다 i를 1씩 증가시킵니다.

 

사용자 입력 받기

user_input = ''
while user_input != 'quit':
    user_input = input("Type 'quit' to exit: ")
    print("You typed:", user_input)

* 이 코드는 사용자로부터 'quit'을 입력할 때까지 사용자 입력을 받습니다.

  사용자가 'quit'을 입력하면 while문이 종료됩니다.

 

무한 루프와 break문

while True:
    user_input = input("Type 'quit' to exit: ")
    if user_input == 'quit':
        break
    print("You typed:", user_input)

* 이 코드는 무한 루프를 생성하고 사용자가 'quit'을 입력하면 루프를 종료합니다. 이때 break문이 사용되었습니다.

 

* 반복문에는 break, pass, continue와 같이 특정 조건에 따라 반복 동작을 제어할 제어문을 함께 자주 사용합니다!

- break, pass, continue는 각각 반복문의 동작을 중단하거나 다음 반복으로 이동하거나

   아무 동작을 하지 않고 다음으로 넘어가는 데 사용됩니다.

 

break 예시

# 사용자가 'quit'을 입력할 때까지 반복하여 숫자를 입력받고 합을 출력
total = 0
while True:
    num = input("숫자를 입력하세요 (종료하려면 'quit' 입력): ")
    if num == 'quit':
        break
    total += int(num)

print("합:", total)

* 위 예시에서 break 문은 사용자가 'quit'을 입력할 때 반복문을 종료시킵니다.

 

pass 예시

# 홀수를 출력하는 코드에서 짝수일 경우에는 아무 작업도 수행하지 않고 넘어감
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        pass
    else:
        print(num, "은 홀수입니다.")

* 위 예시에서 pass 문은 아무런 동작을 하지 않고 다음 반복을 계속합니다.

   홀수를 출력하는 반복문에서 짝수일 경우 아무 작업도 하지 않고 다음 반복을 진행합니다.

 

continue 예시

# 1부터 10까지의 숫자 중 짝수를 출력
num = 0
while num < 10:
    num += 1
    if num % 2 == 1:
        continue
    print(num)

* 위 예시에서 continue 문은 짝수일 경우에만 출력을 수행하고, 홀수일 경우 다음 반복을 진행합니다.

 

 

조건에 따른 특정 동작 반복

count = 0
while count < 3:
    print("Hello")
    count += 1

* 이 코드는 "Hello"를 세 번 출력합니다. count 변수를 사용하여 while문이 세 번 반복되도록 설정했습니다.

 

조건에 따른 특정 동작 반복

num = 5
factorial = 1
while num > 0:
    factorial *= num
    num -= 1
print("Factorial of 5 is:", factorial)

* 이 코드는 while문을 사용하여 5의 팩토리얼을 계산합니다.

 

3. 학습하며 겪었던 문제점 & 에러 

 

이해하기 어려웠으며, 반복 학습 필요

 

4. 내일 학습 할 것은 무엇인지 

 

SQL 코드카타 ,파이썬 강의 듣기

'내일배움캠프' 카테고리의 다른 글

[내일배움캠프] 12일차  (0) 2025.05.27
[내일배움캠프] 11일차 -1  (0) 2025.05.26
[내일배움캠프] 주말 공부 -2  (0) 2025.05.25
[내일배움캠프] 주말 공부 -1  (0) 2025.05.25
[내일배움캠프] 10일차  (0) 2025.05.23