반응형
조건문과 반복문 다음에는 이것들을 활용한 함수를 만들어본다
데이터 EDA할 때 동일한 코드를 여러 번 사용하게 되는데, 이때 함수가 굉장히 필수적이라고 느꼈다!
처음에는 스스로 함수를 만든다는 것 자체에 덜컥 겁내했는데 알고 보면 별 거 아닌 놈
그치만,, 기초부터 탄탄히 ㅎ
사용자 함수 만들기
※ 사용자 함수
# 온도에 따른 커피추천 함수 만들기
def coffee(temp):
if temp>0:
print('아이스 아메리카노')
else:
print('따뜻한 아메리카노')
# 함수활용
print(coffee(30))
print(coffee(-10))
c = coffee(30)
print('추천 커피는 {}입니다.'.format(c))
# 점수를 5점씩 더해주는 함수 만들기
def update_scores(scores):
new_scores = []
for s in scores:
new = s + 5
new_scores.append(new)
return new_scores
# 함수활용
scores = [80,90,70,65,85,90,80,75,80]
new = update_scores(scores)
print(new)
# 문장의 특정 단어의 개수 카운트하는 함수 만들기
def get_char_count(lyric, char):
count = 0
for i in lyric:
if(i==char):
count = count+1
return count
# 함수활용
lyric = "산토끼 토끼야. 어디를 가느냐. 깡총깡총 뛰면서. 어디를 가느냐. 산 고개 고개를. 나혼자 넘어서. 토실토실 알밤을. 주워올테야."
print(get_char_count(lyric,'토'))
# 입력된 문장을 대문자, 소문자로 출력하는 함수 만들기
def change_word_case(word):
upperCase = word.upper()
lowerCase = word.lower()
retrun upperCase, lowerCase
# 함수활용
change_word_case('i love cat')
upper, lower = change_word_case('i love cat')
print('대문자는 {0}이고, 소문자는 {1}이다. 나는 대문자 {0}문구가 적힌 상자를 살거다'.format(upper,lower))
# 연산 함수 만들기
def calculator(operator, num1, num2):
if (operator == '+')
return num1 + num2
elif (operator == '-')
return num1 - num2
elif (operator == '*')
return num1 * num2
elif (operator == '/'):
if (num2 != 0):
return num1/num2
else:
print('{}는 연산이 불가능합니다.'.format(operator))
# 함수활용
print(calculator('+', 200,300))
print(calculator('*', 50,7))
print(calculator('?',20,30))
# 키와 성별에 따른 권장 체중값 출력하는 함수 만들기
def print_weight(height, man=True):
weight = 0
if (man):
weight = (height - 100)
else:
weight = (height - 100) * 0.9
print('권장 체중은 {}kg입니다.'.format(weight))
# 함수활용
print(print_weight(170))
print(print_weight(170,False))
man = True와 같이 default인자를 설정하는 경우, 다른 인자를 먼저 입력한 후 가장 뒤에 입력해야 한다
# 입력된 여러 값 더하는 함수 만들기
def sum(*args):
result = 0
for num in args:
result = result+num
return result
# 함수활용
print(sum(1,2,3))
print(sum(2,3,4,5,6,6))
*args 는 여러 개의 인자를 튜플 형태로 전달받아 내부 함수에서 처리한다
람다 활용
람다 구문은 함수를 한 줄로 간결하게 표현하는 방식이다
복잡한 연산이 포함된 함수를 억지로 람다로 작성할 필요는 없지만, 위의 사용자 함수처럼 간단한 연산을 처리하는 경우에는 def보다 lambda를 사용하여 연산 결과를 받는 것이 편리하다
# 권장 체중 출력
weight = lambda height : (height - 100) * 0.9
print(weight(170))
# 만일 함수를 한 번만 사용한다면 변수에 넣어줄 필요는 없다 ( 선언과 함께 인자값 넘기기 )
(lambda height : (height - 100) * 0.9)(170)
# if를 포함한 lambda 구문
weight2 = lambda man, height : (height-100) * 0.9 if (man) else (height-100)
weight2(False, 170)
반응형
'python > 파이썬 기초' 카테고리의 다른 글
[python] 공공 데이터 포털 API 불러오기 (0) | 2022.01.24 |
---|---|
[python 쌩기초] Numpy (0) | 2021.12.19 |
[python 쌩기초] 조건문 / 반복문 (0) | 2021.12.17 |