티스토리 뷰
[Python] 함수
함수란?
코드를 작성하다 보면 똑같은 내용의 코드를 반복해서 작성해야 하는 순간이 발생됩니다.
이럴 때 함수 정의한 후 사용하면 반복적인 코드 작성을 줄일 수 있으며 코드의 흐름을 일목요연하게 처리할 수 있습니다.
함수의 기본문법
코드 --------------------------------함수 정의----------------------------------------------------- def sum(a,b): # sum이라는 이름의 함수 및 인자값 정의 return a + b # a와 b를 더하여 return값을 통해 sum 함수를 호출한 객체에게 결과값을 돌려줌 ---------------------------------------------------------------------------------------------- num1 = 1 num2 = 2 c = sum(num1,num2) # c라는 변수는 sum 함수를 호출하고 sum 함수의 인자값 num1,num2을 대입합니다. print(c) # sum 함수에 인자 값이 대입되어 a에는 num1 값이, b에는 num2 값이 대입된 후 산술처리를 합니다. # 처리가 완료된 산술값은 return을 통해서 sum 함수를 호출한 c변수에 산술값이 대입됩니다. 결과 3 |
정의한 sum 함수의 작동방법
" 인자 값 → 함수 → 결과 값"으로 함수가 작동됩니다.
함수의 종류
인자 값이 없는 함수
함수는 인자 값 없이 생성할 수 있습니다. welcome 함수를 호출할 경우 인자 값은 없지만 return값이 있으므로 함수를 호출한 객체에 대입됩니다.
코드 ----함수 정의---- def welcome(): # 인자 값 없이 welcome 함수 정의 return '안녕하세요.' ---------------- print(welcome()) # welcome 함수의 return 값이 대입되어 출력 결과 안녕하세요. |
결과 값이 없는 함수
함수는 결과 값 없이 생성할 수 있습니다.
함수의 결과 값은 Return을 통해서만 전달됩니다. sum 함수에 a와 b인자 값에 숫자는 정상적으로 대입되어 산술처리는 되지만
결과를 Return할 수 없으므로 결과 값이 출력되지 않습니다.
코드 ----함수 정의---- def sum(a,b): print('%d, %d의 합은 %d입니다.' % (a, b, a+b)) ---------------- print(sum(4,5)) # 4와 5는 sum함수의 a,b 인자 값에 각각 대입되어 함수가 실행됩니다. 결과 # 결과 값 없음. |
인자 값도 결과 값도 없는 함수
코드 ----함수 정의---- def aa(): print('hi') ---------------- aa() # aa함수를 호출할 경우 함수안에 있는 print가 실행되어 hi를 출력할 수 있습니다. # 이때 출력된 'hi'는 결과 값이 아님을 참고합니다. print(aa()) # print를 사용하여 함수 aa를 출력 할 경우 'None'을 반환합니다. 'None'은 거짓이나 값이 없는 것을 나타냅니다. 결과 hi None |
여러 개의 인자 값을 받는 함수 - 1
코드 ----함수 정의---- def sum_attack(*attacks): # 인자 값 변수명 앞에 '*'를 붙여서 변수를 만들면 인자 값을 모두 튜플로 만들어 줍니다. sum = 0 for i in attacks: # for 반복문으로 i 변수에 attacks 변수에 대입되어 있는 튜플 형태의 인자 값을 대입합니다. sum = sum + i # sum 변수에 i 값을 더합니다. return sum ---------------- atk = sum_attack(1,3,5) print(atk) 결과 9 |
여러 개의 인자 값을 받는 함수 - 2
코드 ----함수 정의---- def cal(choice, *num): # 인자 값 choice와 *num 인자 값 변수 생성 result = 0 if choice == '더하기': # Choice 인자 값이 '더하기'일 경우 아래 코드 실행 for i in num: result = result + i elif choice == '곱셈': # Choice 인자 값이 '곱셈' 일 경우 아래 코드 실행 result = 1 for i in num: result = result * i return result ---------------- print(cal('더하기',1,2,3,4,5,6,7,8,9,10)) 결과 55 |
함수의 결과 값(return)은 항상 하나 입니다.
함수의 결과 값(return)은 항상 하나입니다.
즉, return을 여러개 넣는다고 해도 return은 한번만 동작하게 됩니다. 그 이유는 함수 내에서 return이 실행되고 난 후 함수를 종료하기 때문입니다.
코드 ----함수 정의---- def sum_attack(attack1,attack2): # sum_attack 함수에 인자 값 attack1, attack2를 대입 return attack1 + attack2 # 함수를 호출한 객체에 return 값으로 attack1 + attack2를 전달 return attack1 * attack2 # return이 실행되면 함수를 종료하므로 attack1 * taatack2 산술이 실행되지않음 ---------------- print(sum_attack(1,2)) 결과 3 |
함수의 결과 값(return)을 여러개 하고자 할 경우 아래와 같이 튜플로 return하여 사용할 수 있습니다.
코드 ----함수 정의---- def sum_attack(attack1,attack2): return attack1 + attack2, attack1 * attack2 # attack1 + attack2와 attack1 * attack2의 산술 결과 값을 튜플로 return 합니다. ---------------- print(sum_attack(1,2)) 결과 (3, 2) |
튜플로 받은 함수의 결과 값을 슬라이싱하여 사용할 수 있습니다.
코드 ----함수 정의---- def sum_attack(attack1,attack2): return attack1 + attack2, attack1 * attack2 ---------------- sum, mul = sum_attack(1,2) # sum, mul 변수에 sum_attack return 튜플 값을 슬라이싱하여 각각 대입 print(sum) print(mul) 결과 3 2 |
'[Dev] > Python' 카테고리의 다른 글
[Python] 클래스 (0) | 2017.12.22 |
---|---|
[Python] 파일 쓰기 / 읽기 / 추가 (0) | 2017.12.21 |
[Python] WHILE 반복문 (0) | 2017.12.20 |
[Python] FOR 반복문 (0) | 2017.12.05 |
[Python] IF 제어문 (0) | 2017.12.05 |
Comments
최근에 올라온 글