과제, 프로젝트

Python 개인 과제 Level 2.

Wat_zy 2025. 9. 19. 17:07

문제 1

# 예시 데이터
numbers = [10, 20, 30, 40, 50]

def calculate_avg(numbers):
    total = sum(numbers)
    total_avg = sum(numbers) / len(numbers)
    return total_avg

total_avg = calculate_avg(numbers)
print("숫자들의 평균:", total_avg)

평균을 구하기 위해서는 numbers의 합 / numbers의 객체 개수를 하면 나타난다. 

return 값이 total_avg로 주어져 있었기에 total_avg 변수에 sum(numbers) / len(numbers)를 사용하여 숫자의 평균을 구하는 코드를 작성할 수 있다.

문제 2

# 예시 데이터
numbers = [10, 20, 30, 40, 50]

def calculate_diff_temperature(numbers):
    diff_temp = max(numbers) - min(numbers)
    return diff_temp

diff_temp= calculate_diff_temperature(numbers)
print("온도차:", diff_temp)

리스트에서 최댓값과 최솟값을 구하는 함수를 알게 되었기에 문제에서 최댓값과 최솟값의 차이를 구하는 문제이기에 max와 min함수를 이용하여 numbers에서의 max, min를 구하여 최고 온도와 최저 온도의 차이를 구하는 코드를 작성할 수 있다.

 

문제 3

def calculate_range_total(production_counts, min_value):
    return sum(count for count in production_counts if count >= min_value)

# 예시 데이터
production_counts = [100, 150, 120, 130, 110, 180, 140]

range_total = calculate_range_total(production_counts, 110)
print("특정 수량 이상 생산한 날의 생산 수량 합:", range_total)

# 실행 결과
# 특정 수량 이상 생산한 날의 생산 수량 합: 830

 

 

문장을 읽어보았을 때 한 문장으로 코드 수정이 가능할 것이라는 생각이 들어 리스트 컴프리헨션을 통해 for/in/if를 통하여 조건에 해당되는 것들만 sum하여 생산 수량의 합을 구하는 코드를 작성할 수 있다.

문제 4

def find_top_seller(sales_data):
    top_product = None
    max_sales = 0
    for key, value in sales_data.items():
        if value > max_sales:
            top_product = key
            max_sales = value
    return top_product, max_sales

# 예시 데이터
sales_data = {
    "Motherboard": 50,
    "SSD": 2,
    "Graphics Card": 30
}

print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))

# 실행 결과
# 가장 많이 판매된 제품과 수량 : ('Motherboard', 50)

이 문제에서는 막힘이 조금 있었다. 가장 많이 판매된 수량을 찾는 방법의 코드를 작성하는 것은 원활했으나, 반복문에서 sales_data.values()가 아닌 sales_data로 작성되면 정확한 value 값을 찾을 수 없다는 것을 print(sales_data.values())를 사용한 결과 알게 되어 수정을 하게 되었다. 또한, key를 불러오고 해당 key에 부합하는 value 값을 찾는 함수도 기억이 나지 않아 key 반복문에서 막힘이 있었다. 코드를 구현하는 것은 어느 정도 알겠지만 정확히 필요한 코드를 찾는 것은 아직 연습이 필요하다.
또한, items()를 활용하여 반복문에서 key와 value를 한 번에 가져오면 최댓값을 먼저 찾은 후 그에 해당하는 key 값을 찾는 복잡한 코드가 아닌 바로 최댓값과 해당되는 key를 한 번에 찾아낼 수 있기에 더욱 간결한 코드를 완성할 수 있었다.

문제 5

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = [
    num               # 리스트에 담을 요소
    for num in numbers
    if num % 2 == 0   # 짝수 조건
]

print(even_numbers)

 

리스트 컴프리헨션을 활용하여 짧은 코드로 numbers 리스트에서 짝수만을 담은 even_numbers 리스트를 제작할 수 있었다. 하지만, 정확히 어떻게 작성해야 할지 리스트 컴프리헨션을 이번에 처음 문제로 접해봐서 여러 번의 오답을 겪고 결과를 만들어낼 수 있었다.

'과제, 프로젝트' 카테고리의 다른 글

Library 개인 과제 Level 3.  (0) 2025.10.23
Library 개인 과제 Level 2.  (0) 2025.10.23
Library 개인 과제 Level 1.  (0) 2025.09.26
Python 개인 과제 Level 3.  (0) 2025.09.19
Python 개인 과제 Level 1.  (0) 2025.09.19