[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) 심화 문제풀이

2025. 3. 13. 23:40·Python

📌 Python 함수 포맷 정리


✅ 1. 사용자 입력 함수 (greet_user)

def greet_user():
    name = input("이름을 입력하세요: ")
    age = input("나이를 입력하세요: ")

    if age.isdigit():
        age = int(age)
        if age <= 0:
            print("나이는 1살 이상으로 입력해 주세요!")
        else:
            print(f"안녕하세요, {name}님! 당신은 {age}살입니다.")
    else:
        print("나이는 숫자(양수)로 입력해 주세요!")

greet_user()

✅ 2. 가변 매개변수로 합계 반환 (sum_numbers)

def sum_numbers(*numbers):
    return sum(numbers)

print(sum_numbers(1, 3, 5, 7))

✅ 3. 기본값을 가진 이름 출력 함수 (print_name)

def print_name(name="익명"):
    print(name)

print_name()
print_name("이상인")

✅ 4. 키워드 전용 매개변수로 정보 출력 (print_info)

def print_info(*, name: str, age: int, gender: str) -> None:
    print(f"이름: {name}")
    print(f"나이: {age}살")
    print(f"성별: {gender}")

print_info(name="상빈", age=25, gender="남성")

✅ 5. 타입 어노테이션을 사용한 합계 함수 (add)

def add(a: int, b: int) -> int:
    return a + b

result = add(10, 20)
print("합계:", result)

✅ 6. 홀수만 생성하는 제너레이터 (odd_numbers)

def odd_numbers(n: int):
    for i in range(n + 1):
        if i % 2 != 0:
            yield i

for number in odd_numbers(10):
    print(number)

✅ 7. 람다 함수를 이용한 덧셈

add = lambda a, b: a + b
result = add(10, 20)
print("두 수의 합:", result)

✅ 8. 최소값과 최대값을 출력하는 함수 (min_max)

def min_max() -> None:
    try:
        num1 = int(input("첫 번째 숫자를 입력하세요: "))
        num2 = int(input("두 번째 숫자를 입력하세요: "))
        num3 = int(input("세 번째 숫자를 입력하세요: "))

        numbers = (num1, num2, num3)

        print("입력한 숫자:", numbers)
        print("최소값:", min(numbers))
        print("최대값:", max(numbers))

    except ValueError:
        print("숫자만 입력해 주세요!")

min_max()

✅ 9. 짝수인지 확인하는 함수 (is_even)

def is_even(number: int) -> bool:
    return number % 2 == 0

print(is_even(4))   # True
print(is_even(7))   # False

✅ 10. 재귀로 팩토리얼 계산 (factorial)

def factorial(n: int) -> int:
    if n == 0 or n == 1:
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # 120
print(factorial(3))  # 6

✅ 11. 문자열 리스트의 길이 출력 (print_lengths)

def print_lengths(strings):
    for s in strings:
        print(f'"{s}"의 길이: {len(s)}')

words = ["사과", "바나나", "체리", "키위"]
print_lengths(words)

✅ 12. 긴 문자열을 반환하는 함수 (longer_string)

def longer_string(str1: str, str2: str) -> str:
    if len(str1) >= len(str2):
        return str1
    else:
        return str2

print(longer_string("apple", "banana"))    # banana
print(longer_string("cherry", "grape"))     # cherry

🚀 Tip!

  • 타입 어노테이션과 예외 처리를 함께 사용하면, 더 안정적이고 가독성 높은 코드를 작성할 수 있어요!
  • *args, **kwargs와 같은 가변 매개변수도 적극 활용해 보세요! 😊

'Python' 카테고리의 다른 글

PYTHON - 예외처리와 모듈 (Chapter 7-1. 오류 종류와 기본 예외 처리)  (0) 2025.03.14
프로젝트: 간단한 주소록 관리 시스템  (0) 2025.03.14
📌 Python 학습 과정 – 이해와 반복의 중요성  (0) 2025.03.13
✅ 개발자로서 실력을 향상시키는 방법 (함수와 내장 함수 활용)  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • PYTHON - 예외처리와 모듈 (Chapter 7-1. 오류 종류와 기본 예외 처리)
  • 프로젝트: 간단한 주소록 관리 시스템
  • 📌 Python 학습 과정 – 이해와 반복의 중요성
  • ✅ 개발자로서 실력을 향상시키는 방법 (함수와 내장 함수 활용)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (657) N
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11) N
      • 특강 (34) N
      • 기술블로그 (36) N
      • 기술블로그-Fastapi편 (20) N
      • 기술블로그-Django편 (152) N
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) 심화 문제풀이
상단으로

티스토리툴바