PYTHON - 함수 (문제풀이 6일차)

2025. 3. 17. 15:07·과제

 

📚 Python 함수 예제와 프로세스 흐름 정리

1️⃣ 사용자 입력과 예외 처리 - greet_user

✅ 핵심 키워드

  • input(): 사용자로부터 입력 받기
  • isdigit(): 문자열이 숫자인지 확인
  • 조건문: 입력된 값의 유효성 검사
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()

📋 출력 예시

이름을 입력하세요: 이상인
나이를 입력하세요: 39
안녕하세요, 이상인님! 당신은 39살입니다.

2️⃣ 가변 매개변수 - sum_numbers

✅ 핵심 키워드

  • *args: 가변 인자 받기
def sum_numbers(*numbers):
    return sum(numbers)

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

📋 출력 예시

16

3️⃣ 기본값 매개변수 - print_name

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

print_name()
print_name("이상인")

📋 출력 예시

익명
이상인

4️⃣ 가변 키워드 매개변수 - print_info

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="이상인", age=39, gender="남성")

📋 출력 예시

name: 이상인
age: 39
gender: 남성

5️⃣ 타입 어노테이션 - add

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

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

📋 출력 예시

합계: 30

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)

📋 출력 예시

1
3
5
7
9

7️⃣ 람다 함수 - add

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

📋 출력 예시

합계: 30

8️⃣ 튜플과 최소, 최대값 - min_max

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

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

min_max()

📋 출력 예시

첫 번째 숫자를 입력하세요: 3
두 번째 숫자를 입력하세요: 7
세 번째 숫자를 입력하세요: 1
입력한 숫자: (3, 7, 1)
최소값: 1
최대값: 7

9️⃣ 조기 리턴 - is_even

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

print(is_even(4))
print(is_even(7))

📋 출력 예시

True
False

⚡ 포인트

  • return을 빠르게 사용해 조건을 만족할 때 바로 반환하도록 설계

🔟 재귀 함수 - factorial

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

print(factorial(5))
print(factorial(1))
print(factorial(0))

📋 출력 예시

120
1
1

⚡ 포인트

  • Base Case: n == 0 또는 n == 1일 때 재귀 종료
  • Recursive Case: n * factorial(n-1)

1️⃣1️⃣ 문자열 길이 출력 - print_lengths

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

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

📋 출력 예시

"사과"의 길이: 2
"바나나"의 길이: 3
"체리"의 길이: 2
"키위"의 길이: 2

1️⃣2️⃣ 문자열 길이 비교 - longer_string

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

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

📋 출력 예시

banana
cherry

⚡ 포인트

  • if-else 표현식을 활용하여 코드 간결화

'과제' 카테고리의 다른 글

PYTHON - 자료형과 연산자 (문제풀이 2일차)  (0) 2025.03.17
PYTHON - 시퀀스 자료형 (문제풀이 3일차)  (0) 2025.03.17
PYTHON - 조건문과 반복문 (문제풀이 4일차)  (0) 2025.03.17
PYTHON - 함수와 클래스 (문제풀이 5일차)  (0) 2025.03.17
PYTHON - 예외처리와 모듈 (문제풀이)  (0) 2025.03.17
'과제' 카테고리의 다른 글
  • PYTHON - 시퀀스 자료형 (문제풀이 3일차)
  • PYTHON - 조건문과 반복문 (문제풀이 4일차)
  • PYTHON - 함수와 클래스 (문제풀이 5일차)
  • PYTHON - 예외처리와 모듈 (문제풀이)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (777) N
      • Python (32)
      • 프로젝트 (101) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    bts
    trumpmuskclash
    homebartrend
    youngprofessionals
    newpoliticalparty
    뷔
    btscomeback
    RM
    smartphonedurability
    basalcellcarcinoma
    urbantrends
    life reflection
    americaparty
    btsjungkook
    lawsuitculture
    college reunions
    americanlaw
    travel ban
    chinanightlife
    remittance
    livebroadcast
    self-growth
    classaction
    btsdischarge
    btsreunion
    hotcoffeecase
    gpterror
    global politics
    chatgpterror
    titaniumcase
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
PYTHON - 함수 (문제풀이 6일차)
상단으로

티스토리툴바