내배캠(개인과제)/Python

[라이브세션] 파이썬 기초 3회차

신짜린 2024. 7. 11. 16:08

내배캠_Data_3기_신채린_Python_라이브세션과제.html
0.57MB

 

문제 1

 전자 상거래 플랫폼에서 고객의 평균 주문을 계산해야 합니다. 이를 위해 숫자 리스트의 평균을 계산하는 방법을 연습합니다. 주어진 숫자 리스트의 평균을 계산하는 함수를 작성하세요.

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

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

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

 

문제 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)

 

문제 3

 한 소매점에서는 다양한 제품을 판매하고 있습니다. 매월 판매된 제품들의 목록과 각 제품의 판매 수량이 기록됩니다. 이 데이터를 분석하여 가장 많이 판매된 제품을 찾아내려고 합니다. 제품 명과 판매 수량이 담긴 목록을 받아, 가장 많이 판매된 제품의 이름과 수량을 반환하는 함수를 작성하세요.

def find_top_seller(sales_data):
    top_product = max(sales_data, key = sales_data.get)
    return top_product

# 테스트
sales_data = {"apple": 50, "orange": 2, "banana": 30}
print(find_top_seller(sales_data))

 

문제 4

 컴퓨터 과학 수업에서 학생들은 기본적인 프로그래밍 원리를 익히고, 실제 생활에 적용할 수 있는 간단한 프로그램을 만드는 연습을 합니다. 간단한 계산기를 만들어서 사칙연산을 수행할 수 있는 프로그램을 구현하는 것은 기본적인 프로그래밍 실습에 적합합니다. 두 숫자와 연산자를 입력받아, 해당 연산을 수행하고 결과를 반환하는 함수를 작성하세요.

def simple_calculator(num1, num2, operator):
    try:
        if operator == '+':
            return num1 + num2
        elif operator == '-':
            return num1 - num2
        elif operator == '*':
            return num1 * num2
        elif operator == '/':
            return num1 / num2
    except ZeroDivisionError:
        print('Cannot divide by zero')
        
# 테스트
print(simple_calculator(10, 5, '+'))  # 출력: 15
print(simple_calculator(10, 5, '-'))  # 출력: 5
print(simple_calculator(10, 5, '*'))  # 출력: 50
print(simple_calculator(10, 0, '/'))  # 출력: 'Cannot divide by zero'

 

문제 5

 당신은 회사의 고객 데이터베이스를 관리하고 있습니다. 데이터베이스에 저장된 고객의 이메일 주소가 유효한 형식을 갖추고 있는지 검증하는 작업이 필요합니다. 문자열 형태의 이메일 주소 목록을 분석하여, 각 이메일 주소가 올바른 형식을 갖추고 있는지 판단하는 프로그램을 작성하세요.

 요구사항 

 ▷ 각 이메일 주소가 올바른 형식을 갖추고 있는지 검사합니다. (문자열 메소드 사용)

 ▷ 올바른 형식의 이메일 주소인 경우, "유효한 이메일 주소입니다."를 출력합니다.

 ▷ 올바르지 않은 형식의 경우, "유효하지 않은 이메일 주소입니다."를 출력합니다.

def validate_emails(email_list):
    for email in email_list:
        if "@" in email:
            s, z = email.split("@", 1)
            if s and "." in z:
                print(f"{email} 유효한 이메일 주소입니다.")
            else:
                print(f"{email} 유효하지 않은 이메일 주소입니다.")
        else:
            print(f"{email} 유효하지 않은 이메일 주소입니다.")

# 이메일 주소 목록 예시
email_list = [
    "example@example.com",
    "wrongemail@com",
    "anotherexample.com",
    "correct@email.co.uk"
]

# 함수 실행
validate_emails(email_list)

 

문제 6

 당신은 대규모 텍스트 데이터를 분석하는 프로젝트를 진행하고 있습니다. 텍스트 데이터에서 특정 패턴을 찾아내는 작업을 수행해야 합니다. 이번 작업에서는 중복된 문자를 제거하고 각 문자가 한 번씩만 나타나게 하는 프로그램을 작성하는 것이 목표입니다. 하지만 각 문자는 처음 등장한 순서를 유지해야 하며, 추가적으로 각 문자가 등장하는 빈도를 함께 계산해야 합니다.

 요구사항

 ▷ 주어진 문자열에서 중복된 문자를 제거합니다.

 ▷ 각 문자가 처음 등장한 순서를 유지합니다.

 ▷ 각 문자가 등장하는 빈도를 함께 출력합니다.

 ▷ 결과는 (문자, 빈도수) 형태의 튜플 리스트로 반환합니다.

# 예시 문자열
input_string = "abracadabra123321"
count = {}
for a in input_string:
    try: count[a] += 1
    except: count[a] = 1
result = list(zip(count.keys(), count.values()))
print(result)

 

문제 7

 선수들의 위치 데이터가 주어졌을 때, 해당 데이터를 분석하여 경기 동안 각 선수가 이동한 총 누적 거리를 계산하는 프로그램을 작성하세요. 위치 데이터는 선수의 이름과 그에 따른 위치 좌표의 리스트를 포함하는 딕셔너리 형태로 제공됩니다. 각 좌표는 (x, y) 튜플로 표현됩니다. 선수는 경기 동안 여러 번 위치가 변경될 수 있으며, 각 위치는 이전 위치에서의 이동 거리를 기록합니다.

 요구사항

 ▷ 유클리드 거리 공식을 사용하여 각 위치 변경 시 이동 거리를 계산합니다.

 ▷ 각 선수별로 경기 동안 이동한 총 누적 거리를 출력합니다.