📚 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 |