파이썬에서 함수는 반복적인 작업을 할 때 매우 유용합니다.
지난 글에서는 함수 만드는 방법과 매개변수(parameter)에 대해 살펴보았고,
return사용법과 예제도 살펴보았습니다.
파이썬 기초 - 함수 리턴(return) 사용법과 예제
이번 글에서는 함수의 다양한 예제를 살펴보겠습니다.
목차
1. 짝수 홀수 판별 함수
사용자가 숫자를 입력하면, 짝수인지 홀수인지 판별하는 함수를 만들어보겠습니다.
함수 안에 input()함수를 넣어서 사용자에게 숫자를 입력받을 것이기 때문에
함수 자체의 파라미터는 만들지 않았습니다.
이처럼 파라미터가 필요하지 않을 때에는 그냥 ()만 작성하면 됩니다.
먼저 num이라는 변수를 만들어 숫자를 입력받은 뒤,
num을 2로나눈 나머지 값으로 만듭니다.
이제 num을 2로 나눈 나머지값이 0인지 0이 아닌지만 판별하면 되겠죠!
이때는 return을 사용합니다. 만약 짝수면 '짝수네요.' 라고 return 값을 정하고
만약 홀수면 '홀수네요' 라고 return 값을 정합니다.
def odd_or_even():
num = int(input("숫자를 입력하세요: "))
num = num % 2
if num == 0:
return "짝수네요"
else:
return "홀수네요"
odd_or_even()
결과를 살펴볼까요?
함수를 호출하면? 숫자를 입력하게 되고 짝수인지 홀수인지 판별하게 됩니다.
2. 나이를 입력받아 나이에 따른 문구 출력하기
이번에는 나이를 입력받고
120세 초과, 80세 이상, 그 이외의 나이에 추천할 문구를 출력하는 함수를 만들어보겠습니다.
이번에는 check_age(age)라는 이름의 함수를 만들고 매개변수도 넣었습니다.
이제 함수를 호출할 때 age 자리에 숫자나 변수를 넣어주어야겠죠!
함수의 내용은 간단합니다.
조건문을 넣어서 각 조건에 맞는 값을 리턴해주면 되죠.
그리고 사용자에게 나이를 입력받기 위해서
my_age라는 변수를 만들었습니다. my_age는 나이를 입력받도록 input()함수를 사용했습니다.
def check_age(age):
if age > 120:
return '와 19세기에 태어나셨군요!'
elif age >= 80:
return '인생은 여든부터죠!'
else:
return '젊으시군요. 장래희망이 무엇인가요?'
my_age = int(input("나이를 입력하세요: "))
check_age(my_age)
이제 함수를 호출한 결과를 확인해보겠습니다.
사용자는 나이를 입력하게 되고, 이에 맞는 문구가 나옵니다.
3. meter to feet 길이 단위 바꾸기 함수
이번 예제에서는 길이 단위 바꾸기 함수를 만들어 보겠습니다.
미터에서 피트로 바꾸는 MtoF()함수, 피트에서 미터로 바꾸는 FtoM()함수를 만들어보고
사용자가 어떤 단위로 측정했는지 미터, 피트를 입력받고
미터이면 MtoF()함수 호출
피트이면 FtoM()함수를 호출하겠습니다.
이번에는 함수 자체에 print
def MtoF():
meter = float(input("측정한 값을 입력하세요.(m): "))
feet = meter * 3.28
print('측정한 값은 {:.2f}ft입니다.'.format(feet))
def FtoM():
feet = float(input("측정한 값을 입력하세요.(ft): "))
meter = feet / 3.28
print('측정한 값은 {:.2f}m 입니다.'.format(meter))
question = str(input('어떤 단위로 측정하셨나요?(미터, 피트)'))
if question == '미터':
MtoF()
else:
FtoM()
그럼 함수 호출 결과를 확인해보겠습니다.
4. 주민등록 번호 뒷자리 *로 바꾸기
이번 예제는 주민등록번호의 뒷자리 6자리를 지우는 예제입니다.
우선 사용자에게 주민등록번호를 입력받습니다.사용자에게 입력받은 주민등록번호는 문자열로 입력받습니다. 왜냐하면 사용자가 001021-1234567 이렇게 - 를 넣어서 입력할 수도 있고, 그냥 숫자만 입력할 수도 있기 때문에 전체를 다 문자로 입력받는 것이 좋습니다.
이제 문자열에서 맨 뒤 6자리 항목들을 *로 바꾸어 보겠습니다.
원래 문자열은 수정이 불가능합니다.
하지만 문자열과 유사한 리스트는 수정이 가능하죠!
그러면 문자열 number를 리스트로 변환한 후, 마지막 여섯 개의 원소를 '*'로 바꿔 주면 됩니다.
그리고 나서 그 리스트를 다시 하나의 문자열로 합치면 되겠죠?
여기서 제일 중요한 것은
맨 뒤 6자리 숫자 요소를 *로 바꾸어주는 것입니다.
마지막 여섯개의 요소,
즉 인덱스 len(num_list) - 6부터 인덱스 len(num_list) - 1의 값들을 *로 바꿔주면 됩니다.
for 반복문에서 range를 이렇게 작성해주면 되죠!
마지막으로 이 리스트를 이제 다시 문자열로 만들어서 리턴시켜 주어야합니다.
리스트의 각 요소를 하나씩 빈 문자열을 시작으로 연결해주면 기존 문자열로 만들 수 있을 것입니다.
그럼 이 연결을 어떻게 해줄 수 있을까요?
리스트와 문자열 정리에서 배운 덧셈 연산을 이용하면 됩니다.
def mask_num():
number = str(input("주민등록번호: "))
#사용자에게 입력받은 문자열을 리스트로 바꾸기
# list(문자열)
num_list = list(number)
#리스트에서 뒤에서 6번째부터 맨 뒤의 항목까지를 for 반복문으로 불러옴
#불러온 항목을 '*'로 바꾸어 주기
#리스트[i] = '*'
for i in range(len(num_list)-6, len(num_list)):
num_list[i] = '*'
#그 리스트를 새로운 문자열로 바꿈
#for반복문을 씀!
new_number = ''
for i in range(len(num_list)):
new_number += num_list[i]
return new_number
print(mask_num())
그럼 함수를 호출해보겠습니다!
함수는 한 번 만들어두면 다양한 곳에서 아주 유용하게 사용할 수 있습니다.
함수를 자유롭게 사용하려면
다양한 함수 예제를 직접 만들어 연습해보는 것이 필요하겠죠!
'프로그래밍 > 파이썬기초' 카테고리의 다른 글
파이썬 딕셔너리(dictionary) 사용법: key값 출력하기, key와 value값 출력하기, key와 vlaue 값 뒤집기 (0) | 2023.11.06 |
---|---|
파이썬 딕셔너리(dictionary) 사용법: 딕셔너리 만들기, 딕셔너리 데이터 추가하기, value값 출력하기 (2) | 2023.11.03 |
파이썬 기초 - 함수 리턴(return) 사용법과 예제 (0) | 2023.10.16 |
파이썬 함수 만드는 방법 (0) | 2023.10.12 |
파이썬 while반복문 사용법과 예제 (3) | 2023.10.11 |