본문 바로가기
python

python - function 함수란 무엇인가?

by orangecode 2022. 4. 27.
728x90

 

function 함수란?

함수란 반복되는 부분이 있을 경우, 반복을 한 데 묶어주는 것이다.

 

프로그램을 함수화하면 프로그램의 흐름을 일목요연하게 파악 가능하고, 오류의 파악도 빠르게 가능하다.

 

함수를 잘 짜면 입력한 값이 여러 함수를 거치며 원하는 결과값을 도출할 수 있다.

 

코드의 양을 줄이는 것
- 수정하기 쉬운 코드
- 이해하기 쉬운 코드
- 재활용하기 좋은 코드

 

함수의 구조
def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
### 함수
# function
# 일반 코드
result = len('aaa')
print(result)

# 기본 함수와 return 값
def a3(): # 함수 정의
    print('aaa') # 함수 본문

a3() # 함수 호출

 

매개변수(parameter)와 인수(arguments)

매개변수 parameter

: 함수에 입력으로 전달된 값을 받는 변수

 

인수 arguments

함수를 호출할 때 전달하는 입력 값

 

 

함수의 return

함수의 return : return을 통한 출력값(return 값)우리가 만든 함수를 더 좋은 부품으로 만들 수 있게끔 함

 1) 함수의 결과값

 2) return을 만나는 즉시 함수를 종료함

# 표현식, Expression
# return : 함수의 결과값, return을 만나는 즉시 함수를 종료함
def a3():
    return 'aaa' # return

def a3():
    a = 'aaa'
    return a # return

위 2개의 a3() 함수의 결과값은 같다.

def a3():
    print('before')
    return 'aaa' # return : 
    print('after') # return 다음에 나오는 구문은 실행되지 않음

a3() 함수 내부에서 print('before')을 출력하고 aaa를 return 한다.

 

return 값 다음에 적힌 print('after')는

 

return 값이 입력되어 함수를 끝냈기 때문에, 실행되지 않는다.

 

# a3 : 범용적으로 사용이 가능
def a3():
    return 'aaa' # return


# a3 : a()함수를 호출하고 'aaa'print해주는 경우에만 호출 가능
def a3():
    print('aaa')

a3()

return만 존재하는 a3는 범용적으로 이용이 가능하다.

 

반면에 내부에 print('aaa')를 가지고 있는 a3() 는 함수 호출, 'aaa'를 print할 경우에만 사용할 수 있다.

 

함수의 input(입력값)
## 함수의 입력값 input

# 중복의 문제
# a3, a4 언제나 같은 결과만 출력함
def a3():
    print('aaa')

def a4():
    print('aaaa')

print(a4())

# 입력값에 따라 결과가 달라짐
def a(num): # num = 변수값으로 설정
    return 'a' * num

print(a(10))

def a3():

    print('aaa)는

 

aaa라는 같은 결과만 출력한다.

 

def a(num):

    return 'a' * num

 

print(a(10))  # num값 자유롭게 부여

 

함수의 입력값에 따라 다른 결과를 출력한다.

 

여러개의 입력값을 받는 함수
def make_string(str, num):
    return str * num

print(make_string('abc' , 5))

 

로그인 애플리케이션
input_id = input("아이디를 입력해주세요. \n") # id 값을 입력한다.
def login (_id):
    members = ['kim', 'gong', 'lee'] #members 리스트 설정
    for member in members:
        if member == _id:
            return True  # member == _id가 일치하면 True를 반환한다.
    return False  # for 문이 끝났을 때, 일치하지 않는다면 False 값을 반환한다.

if login(input_id):
    print('Hello, ' + input_id)
else:
    print('Who are you?')

함수 login

    members = ['kim', 'gong', 'lee'] 라는 members list를 가지고 있다.

    for member in members:  # members의 member를 반복한다.

 

        if member == _id # 멤버와 입력 id가 같다면

            return True # True 값을 리턴한다.

    return False  # for ~ in 반복문이 다 돌때까지 True 값이 없다면 False를 반환한다.

 

함수 login 사용

if login(input_id):  # login id를 입력한다.

    print('Hello, ' + input_id  # input_id가 members 리스트와 일치하면, 'Hello,' id를 내보낸다.

else :

    print('Who are you?)  # input_id가 members 리스트와 일치하지않으면, 'who are you?'를 내보낸다.

 

 

실행결과

반응형

댓글