함수의 설명을 작성하는 것!
help()
함수로 docstring을 출력할 수 있다!
📝로또출력기를 설명해주자
def display_lotto(count, start=1, end=45):
'''
This function is a lotto output.
paramters
-----------------------
count : int : Lotto number count
start : int : Random start number
end : int : Random end number
return
-----------------------
list : Lotto numbers
'''
lotto = []
while 1:
num = random.randint(start,end)
lotto.append(num)
lotto = list(set(lotto))
if len(lotto)==6:
lotto.sort()
return lotto
간단하게 설명한.. 나의 소중한 로또 생성기... 💙
ctrl
+space
함수 밖 : 전역영역 - global
함수 안 : 지역영역 - local
data = 10
def change():
data = 20
change()
print(data)
정답은 10이다
풀이를 해보자면
1. change 함수 밖에 data=10 이미 선언되어있음
2. change 함수를 실행 > 하지만 함수안에서만 data=20이 되고 함수를 빠져나오게 되면 다시 data=10이 됨.
3. 따라서 출력값이 10이됨
data = 10
def change():
global data
data = 20
change()
print(data)
global data
라고 선언해주기!
🙃무슨 말?🙃
함수 안에 사용되는 변수가 없는데 사용되어야 한다면 함수 밖의 데이터를 가져와 사용한다는 것!
📝예제
data = 10
def change():
print(data)
change()
이러면 출력값이 10이 나온다는 말!
return 값으로 data를 받아서
data를 함수로 받아오면 됨!
1회성 함수로 간단한 함수(파라미터, 리턴)를 함수 선언 없이 사용 가능하다!
- 메모리 절약, 가독성 증대
아까 만든 로또 생성기의 데이터 타입을 확인해보면
type(display_lotto)
=> fuction
📝 n1과 n2를 받아 덧셈하는 간단한 함수
fun_sum = lambda n1,n2 : n1+n2
fun_sum(1,2) #3
📝 함수가 두~개
def plus(n1,n2):
return n1+n2
def calc(func,n1,n2):
return func(n1,n2)
result = calc(plus,1,2)
📝 함수가 한~개
def calc(func,n1,n2):
return func(n1,n2)
result = calc(lambda n1,n2:n1+n2, ,1,2)
결과는 같지만 저장공간이 줄어들 수 있는 방법!
간단한 함수일 때 가능하지만 한눈에 함수를 파악하기도 좋고 저장공간도 줄어들어서 많이 사용함!
- 간단한 반복문, 조건문을 사용해서 리스트 데이터를 만들 때 사용하는 문법
- 주로 리스트 데이터를 필터링하거나 데이터를 변경할 때 사용
어제 내가 풀었던 문제에서 다른사람의 코드에서 위의 내용이 발견되었다.
즉 간단한 반복문과 조건문에서 결과값을 리스트로 받을 때 사용
n값의 약수를 구할 때
n + sum([i for i in range(1,n//2+1) if n%i==0])
iterable한 데이터의 모든 value에 특정 함수를 적용한 결과를 리스트로 출력
백준 문제에서 가져와볼게요
문제 설명
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
첫째 줄에 A+B를 출력한다.
이런 간단한 문제에서
a,b=map(int, input().split(' '))
print(a+b)
즉, map()
함수는
map(함수, 리스트)
로
리스트를 함수로 실행해 나온 값을 리스트로 받아줌