Charles R. Severance (찰스 R. 세브란스)의 <모두를 위한 파이썬(PY4E)> 수강 내용
https://www.boostcourse.org/cs122/joinLectures/284901
학습목표
함수의 개념을 이해하고 내장 함수를 잘 사용할 수 있다.
핵심키워드
- 함수
- 내장 함수
함수(Function)
함수는 반복적으로 호출해야 하는 코드의 묶음을 하나의 블럭으로 만들어 이름을 붙여 재사용률을 높인 "코드의 묶음"이다.
ex) 이를 닦는다를 5살짜리 아이에게 가르친다고 생각할 때 안타깝게도 아이는 각 단계를 매일 하나하나 알려줘야 한다고 가정해보자
치약과 칫솔을 꺼낸다 → 치약을 칫솔에 1cm가량 바른다 → 물을 묻힌다 → 윗니를 닦는다 → 아랫니를 닦는다 → 물로 헹군다
만약 위와 같은 과정을 매일 반복해서 알려줘야 한다면, 귀찮고 짜증나는 일이 될 것이다.
이것을 하나의 함수로 정의한다면 아래와 같이 될 것이며, 양치질()이라는 함수의 이름만 호출하게 되면 :(콜론) 이후에 입력해 놓은 실행 코드를 순차적으로 실행하게 된다.
def 양치질():
치약과 칫솔을 꺼낸다
치약을 칫솔에 1cm가량 바른다
물을 묻힌다
윗니를 닦는다
아랫니를 닦는다
물로 헹군다
내장 함수
파이썬에는 이미 정의된 함수들이 있다. 우리가 지금까지 사용해 왔던 내장 함수들은 아래와 같다.
print("Hello World") # (괄호) 안의 내용을 출력하는 함수
input() # (괄호) 안의 사용자 입력값을 받는 함수
float() # (괄호) 안의 값을 float로 변환하는 함수
int() # (괄호) 안의 값을 int로 변환하는 함수
학습목표
함수의 개념을 이해하고 나만의 함수를 만들 수 있다.
매개변수를 사용하는 정의된 함수를 호출할 때 인자를 전달하여 원하는 결과를 볼 수 있다.
핵심키워드
- 함수
- 인자(Argument)
- 매개변수(Parameter)
우림만의 함수 만들기
함수를 만드는 과정에서 가장 중요한 것은 저장과 호출에 대한 이해이다.
앞서 살펴본 것처럼 함수를 저장하기 위해서는 def라는 예약어를 사용한다.
def greeting():
print("Hello World")
def greeting():
print("Hello World")
greeting()
# Hello World가 출력
인자(Argument)
인자란 함수를 호출할 때 전달하는 값을 말한다. 넘겨 받는 수 또는 값이라고 생각하면 쉽게 이해할 수 있을 듯하다. 앞서 사용했었던 print 함수에 들어가는 문자열도 인자다.
매개변수(Parameter)
매개변수는 함수가 정의된 곳에서 변수처럼 사용하는 것을 말한다
def greeting(lang):
print(lang)
greeting("Hello World")
# Hello World가 출력
반환값(Return Value)
종종 함수는 함수가 정의된 곳에서 매개변수를 이용해 프로그래머가 의도한 코드를 실행한 뒤, 계산 결과인 값을 변환할 수도 있다.
이와 같은 상황이라면 당연히 함수를 다른 함수의 인자로 사용할 수도 있다.
def greet():
return "Hello"
print(greet(),"Connect")
print(great(),"Python")
# Hello Connect으로 출력
# Hello Python으로 출력
Multiple 매개변수 / 인자
여러개의 매개변수를 받는 함수를 만들 수도 있다. 더하기 함수를 한번 만들어 보도록 하자.
def add(left,right)
return left + right
print(add(1,2))
# 3으로 출력
실습
Exercise 4-6
Rewrite your pay computation with time-and-a-half for overtime and create a function called computepay
which takes two parameters(hours
and rate
).
def comutepay(hours, rate) :
print("In computepay", hours, rate)
if hours > 40 :
regp = rate * hours
ovtp = (hours-40.0) * (rate * 0.5)
pay = regp + ovtp
else:
pay = hours * rate
# print("Returning", pay)
return pay
sh = input("Enter Hours: ")
sr = input("Enter Rate: ")
fh = float(sh)
fr = float(sr)
comutepay(fh,fr)
print("Pay:",up)