250312 TIL

수이·2025년 3월 12일
1

🟡 TIL

목록 보기
26/41

개인스터디

Python 개인과제

  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)
  1. 가장 낮은 기온과 가장 높은 기온을 활용하여 일교차를 함수로 작성

풀이

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)
  1. 가장 많이 판매된 제품의 이름과 수량을 반환하는 함수를 작성
def find_top_seller(sales_data):
    top_product = max(sales_data, key = sales_data.get) # key
    max_sales = sales_data[top_product] #value 
    return top_product, max_sales

# 테스트
sales_data = {"apple": 50, "orange": 2, "banana" : 30}
print("가장 많이 판매된 제품과 수량 :", find_top_seller(sales_data))
# 출력 : 가장 많이 판매된 제품과 수량 : ('apple', 50)
  1. 사칙연산을 수행할 수 있는 프로그램 구현

풀이

def simple_calculator(num1, num2, operator):
    if operator == '+':
        return num1 + num2
    elif operator == '-':
        return num1 - num2
    elif operator == '*':
        return num1 * num2
    elif operator == '/':
        if num2 == 0:
            return 'Cannot divide by zero'
        return num1 / num2
    else :
        return "계산불가"

# 테스트
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'
  1. 이메일 주소가 올바른 형식을 갖추고 있는지 판단하는 프로그램 구현

풀이

def validate_emails(email_list):
    for email in email_list:
        if '@' not in email:
            print(f"{email} 유효하지 않은 이메일 주소입니다.")
            continue

        id, domain = email.split('@')
        if len(id) == 0:
            print(f"{email} 유효하지 않은 이메일 주소입니다.")
        elif '.' not in domain:
            print(f"{email} 유효하지 않은 이메일 주소입니다.")
        else:
            print(f"{email} 유효한 이메일 주소입니다.")

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

# 이메일 유효성 검사 실행
validate_emails(email_list)
  1. 각 문자가 등장하는 빈도를 함께 출력하는 프로그램 구현

풀이

def remove_duplicates_and_count(s):
    result_with_frequency = [] 
    
    for character in sorted(set(s)): #정렬은 됨 ㅠ 숫자가 먼저 나옴 
        # set을 안쓰고 푸는 방법을 찾아야해 처음 등장한 순서대로니까 
        count = s.count(character)
        result_with_frequency.append((character, count)) 
        
    return result_with_frequency

# 예시 문자열
input_string = "abracadabra123321"

# 중복 문자 제거 및 빈도수 계산 실행
result = remove_duplicates_and_count(input_string)
print(result)

#실행 결과
[('a', 5), ('b', 2), ('r', 2), ('c', 1), ('d', 1), ('1', 2), ('2', 2), ('3', 2)]

여기까지 ... 했는데 막혔어요 ... 😭
동진님이 문제 8번까지 다 푸셨다고 하셔서 여쭤봤는데 딕셔너리 활용해서 푸는 방법으로 생각해보라고 했다

내일 다시 생각해봐야지

데일리퀘스트

SQL - 평균 일일 대여 요금 구하기
SQL - 조건에 맞는 사용자와 총 거래금액 조회하기
SQL - 가격대 별 상품 개수 구하기
Python - 하샤드 수
Python - 두 정수 사이의 합
Python - 코딩 기초 트레이닝 Day 1-2

일기

  • SQL 코드카타 42-44✅
  • Python 코드카타 21-22✅ 종합반 3주차 복습✅ 라이브세션 참석✅ 기초트레이닝 Day1-2✅

과제 해보다가 목표한 건 거의 못 하고 거기에만 매달렸는데 결국 다 풀지도 못했다😭
인생이 쉽지 않다 쉽지 않아

라이브세션도 들었는데 뭔 말인지 하나도 모르겠음 솔직히
그래서 내일 복습도 다시 해야됨 아!@#$%@#!@#%#%!$@

내일 발제도 있고 세션도 있어서 일정 바쁠 것 같은데 어떡하지 나 어떡하냐고

다솜님이 추천해주신 기초트레이닝이 머리 식히기 좋은 것 같아서 일정 끝나고 남아서 다같이 풀었다! 좋은 것 같아서 내일부터 나도 하나씩 풀기로 함

0개의 댓글

관련 채용 정보