1. return문
- 함수 호출 부분(return call)을 return을 따르는 값으로 대체
- 현재 함수 실행 멈추고 함수 호출 끝나는 지점부터 다시 진행
2. return VS print
1) 사례 1
def print_square(x): //파라미터 제곱 출력, 리턴값 지정되어있지 않으므로 함수 리턴 값 = none print(x * x) def get_square(x): //파라미터 제곱 리턴, 출력값 X return x * x print_square(3) // print(x*x)에 의해 9 출력 print("----------") get_square(3) // return 문에 의해 9로 대체, 그러나 대체된 값을 출력하라는 명령 x -> 아무것도 출력X print("----------") print(get_square(3)) //get_square 함수의 return 문에 의해 대체된 값을 출력하는 명령 -> 9 출력 print("----------") print(print_square(3)) //print_square함수의 print(x*x)에 의해 9 출력 , 함수 호출 부분은 리턴값 대체 // 함수 리턴 값은 none -> none도 함께 | cs |
2) 사례 2
def secret_number(): print("우리의 비밀번호는 = ") return 486 print(secret_number()) >> 우리의 비밀번호는 = 486 //함수정의 건너뛰고 print문 도착 -> secret_number()라는 함수 호출 때문에, 다시 정의로 올라감 //첫번째 프린트문 출력 -> 486리턴 명령 O -> //1.함수 실행 중단 , 2. 함수 호출한 secret_number()라는 부분 486로 대체되어 출력 | cs |
3) 사례 3
//함수 내부에서 print문과 return문의 순서가 바뀌었다면? def secret_number(): return 486 print("우리의 비밀 번호는: ") >> dead code print(secret_number()) >>486만 출력됨 >>왜? 486리턴되서 함수 실행이 종료 | cs |
3. global vs local 변수
1) local 변수
-함수 안에서 사용하는 변수는 일반적으로 함수 내부에서만 유효하여 함수 밖에서는 쓸 수 없음
def x_is_one(): x = 1 x = 5 //x를 함수 바깥으로 빼면 함수 바깥에 정의된 5가 x_is_one() print(x) >>5 | cs |
2) global 변수
-함수 안의 x와 함수 밖의 x가 통일하려면
- 하나의 변수를 다른 여러 함수안에서 사용하고 싶을때, 함수 내 변수가 global 변수라고 표시해줘야함
def x_is_one(): global x x =1 x =5 x_is_one() print(x) >>1 | cs |
3) 사례 1
def next_number(): global x x = x+1 x =0 next_number() print(x) >>1 | cs |
## 여러 함수에서 통일된 global 변수를 쓰면 프로그램 전체에 영향을 줄 수도 있으니 주의!
4. 상수(global 변수의 좋은 예)
-프로그램 내내 변화하지 않는 변수 값
-처음에 값을 정의하고 나서 끝날때 까지 계속 같은 값을 갖고 있는 것
/ 꼭 대문자로 정의 / 이름만 대문자로 쓴 변수 일 뿐, 함수 안에서 다시 정의해도 오류 X
PI = 3.14 # 원주율 def calculate_area(r): return PI * r * r radius = 6 # 반지름 print("반지름이 %.2f면 원 넓이는 %.2f" % (radius, calculate_area(radius))) radius = 12 # 반지름 print("반지름이 %.2f면 원 넓이는 %.2f" % (radius, calculate_area(radius))) >>반지름이 6.00면 원 넓이는 113.04 반지름이 12.00면 원 넓이는 452.16 | cs |
5. 코드를 짤 때는 누구나 보기 쉽게 해야하는 스타일이 존재!
#이름 규칙 : 모든 변수, 함수 이름은 소문자 / 여러 단어일 경우 _로 나누기
#모든 상수 이름은 대문자/ 여러 단어일 경우 _로 나누기
#의미있는 변수 , 함수 이름
# bad a = 2 b = 3.14 print(b * a * a) # good radius = 2 pi = 3.14 print(pi * radius * radius) | cs |
#화이트 스페이스 : 적당한 띄어 쓰기, 엔터키
#적당한 추상화, 적당한 코멘트
# good(설명이 부족하거나 많지 않음) PI = 3.14 # 원주율 # 반지름이 r인 원의 둘레 계산 def calculate_circumference(r): return 2 * PI * r # 반지름이 r인 원의 넓이 계산 def calculate_area(r): return PI * r * r # 반지름이 r인 구의 부피 계산 def calculate_volume(r): return 4 / 3 * PI * r * r * r # 반지름이 4인 경우 radius = 4 # 반지름 print(calculate_circumference(radius)) print(calculate_area(radius)) print(calculate_volume(radius)) # 반지름이 8인 경우 radius = 8 # 반지름 print(calculate_circumference(radius)) print(calculate_area(radius)) print(calculate_volume(radius)) | cs |
#적당한 줄 길이 : 한 줄에 80자는 넘지 말자
##퀴즈
짝수인지 홀수인지 판단해주는 is_evenly_divisible
함수를 쓰세요. is_evenly_divisible
는 number
(수)를 파라미터로 받습니다.
짝수인 경우에는, 즉 number
가 2
로 나누어 떨어질 경우에는 True
를 리턴해줍니다.
홀수인 경우에는, 즉 number
가 2
로 나누어 떨어지지 않을 경우에는 False
를 리턴해줍니다.
함수 안에는 print
문을 사용하시면 안 되고, return
문을 사용하여야 합니다.
'불린' 개념을 사용하면, 함수 단 '한 줄'로 쓸 수 있습니다!
def is_evenly_divisible(number): return(number % 2 == 0) print(is_evenly_divisible(3)) print(is_evenly_divisible(7)) print(is_evenly_divisible(8)) | cs |
'Language Study > Python' 카테고리의 다른 글
6. 모듈 (0) | 2019.07.15 |
---|---|
5. 제어문 (0) | 2019.05.22 |
3. 추상화 (0) | 2019.04.06 |
2. 자료형 (0) | 2019.03.30 |
1. Python 시작하기 (0) | 2019.03.28 |