카테고리 없음

인공지능과 미래사회(함수 정리)

20308박동진 2023. 6. 6. 22:57
함수(function)란?

- 코드의 반복을 줄이거나 어떠한 용도를 위해 특정 코드를 모아둔 것.

- 대부분 def 예약어를 사용해 함수를 정의하고, 수행할 문장을 작성함.

- return은 결과값을 반환하는 예약어이다, 결과값이 필요없다면 사용하지 않아도 무방하며, 결과값 없이 함수의 종료 목적으로만 사용 가능

def twice(a):      # twice 함수 생성
    return a*2

print(twice(3))    # twice 함수 호출하여 3입력

-->
6

def add(a,b):
    result = a+b
    return result

print(add(1,2))

-->
3
매개변수(parameter)란?

- 함수에 전달하는 데이터 자체는 '인자(argument)'(함수를 호출할 때 전달하는 입력값)라 부르며, 전달된 데이터를 함수 속에서 부를 이름(변수)를 '매개변수(parameter)'(함수에 입력으로 전달된 값을 받는 변수를 의미)라고 부름

- 함수를 호출할 때, 인자와 매개변수의 개수 및 순서가 같아야함.

  • 매개변수 - 함수에 전달된 값을 저장하는 변수
  • 인수 - 함수에 전달하는 값
def say():
    return 'hi'

a = say()   # 입력값은 없지만 결과값으로 'hi'를 반환해 a에 대입해준다.
print(a)
-->
hi

- 매개변수에 (*매개변수)형태로 입력받을 수 있으며, 이 경우 여러가지 함수를 입력 받을 수 있다. C언어의 포인터처럼.

- 매개변수에 (**매개변수)형태로 입력받을 수 있으며, 이를 '키워드 매개변수'라고 하며, key:value의 형태로 저장된다.

-

def calculator(a, b) :
    sum = a + b
    sub = a - b
    mul = a * b
    div = a / b
    return sum, sub, mul, div

res1, res2, res3, res4 = calculator(10, 2)
print(res1, res2, res3, res4)
-->
12 8 20 5.0

def calculator(a, b) :
    sum = a + b
    sub = a - b
    mul = a * b
    div = a / b
    return [sum, sub, mul, div]

reslist = calculator(10, 2)
print(reslist)
-->
[12, 8, 20, 5.0]

- 처럼 list의 형태로 return 하면 한 번에 list의 형태로 출력할 수 있습니다.(반환값은 항상 하나이므로)

- 여러개의 return 값잉 존재할 경우 첫 번째 return 값으로 값을 저장합니다.

 

전역변수와 지역변수

- 전역변수는 코드 전역에서 사용할 수 있는 변수이며, 지역변수정해진 범위에서만 사용 가능한 변수

def plusNum(n) :
    return n + num

num = 3
print(plusNum(17))
print(n) #n은 지역변수이기 때문에 에러 발생

.

기능 전역변수 지역변수
함수 안에서 읽기/수정 가능 가능
함수 안에서 '='을 사용한 대입 global 사용 이외 불가능 가능
함수 밖에서 읽기/수정 가능 불가능
함수 밖에서 '='을 사용한 대입 가능 불가능