함수(function - oop method)¶
- 전처리를 하기위한 용도
- 코드의 재활용을 위해서
- 변수 타입으로 사용될 수 있다
In [1]:
lst = [2,5,2,7,4,9]
print('누적값 확인 - ')
print(' sum - ', sum(lst))
print()
total = 0
for data in lst :
total += data
print(total)
누적값 확인 - sum - 29 29
In [151]:
print('working - ')
def sumCalc() :
print('function call')
working -
In [152]:
print('caller - ')
print('result - ', sumCalc())
caller - function call result - None
In [6]:
def sayEcho(msg) :
return msg
In [7]:
result = sayEcho('hi')
print('result - ', result)
result - hi
In [13]:
def oddEvenFunc(start : int, end : int) :
evenSum = oddSum = 0
for data in range(start, end+1) :
if data%2 == 0 :
evenSum += data
else :
oddSum += data
return (oddSum, evenSum)
In [14]:
oddSum , evenSum = oddEvenFunc(100,1000)
print('짝수의 합', evenSum)
print('홀수의 합', oddSum)
짝수의 합 248050 홀수의 합 247500
In [19]:
def oddEvenFunc(start : int, end : int) :
lst = []
dct = {}
evenSum = oddSum = 0
for data in range(start, end+1) :
if data%2 == 0 :
evenSum += data
else :
oddSum += data
lst.append(oddSum)
lst.append(evenSum)
dct['odd'] = oddSum
dct['even'] = evenSum
return dct
In [20]:
oddEvenLst = oddEvenFunc(100,1000)
print('type - ', type(oddEvenLst))
print('짝수의 합', evenSum)
print('홀수의 합', oddSum)
type - <class 'dict'> 짝수의 합 248050 홀수의 합 247500
In [33]:
def isSsn(jumin : str) :
print(jumin,type(jumin))
if jumin.split('-')[1][0] in ['1','3'] :
return '남자'
else :
return '여자'
pass
In [35]:
gender = isSsn('xxxxxx-2xxxxx')
print('당신의 성별은 {} 입니다.'.format(gender))
xxxxxx-2xxxxx <class 'str'> 당신의 성별은 여자 입니다.
In [36]:
companyName = 'naver'
print('http://www.'+companyName+'.com')
http://www.naver.com
In [37]:
nameLst = ['naver', 'google', 'samsumg', 'sk', 'lg' ]
In [65]:
def makeUrl(lst : list) :
print('debug >>>> ', type(lst))
result = [] #리스트 컴프레션 : result = ['http://www.'+name+'.com' for name in lst]
for name in lst :
result.append('http://www.'+name+'.com')
return result
In [68]:
urls = makeUrl(nameLst)
print('url -', urls)
debug >>>> <class 'list'> url - ['http://www.naver.com', 'http://www.google.com', 'http://www.samsumg.com', 'http://www.sk.com', 'http://www.lg.com']
In [61]:
numLst = [4,2,93,49,394,103,22,111]
In [69]:
# 짝수만 추출하여 리스트로 반환
def pickEven(lst : list) :
result = [num for num in lst if num%2 == 0]
return result
In [ ]:
results = pickEven(numLst)
print('result - ', results)
In [75]:
def myColor(name , color, isFlag) :
if isFlag :
print('{}님은 {}색을 좋아합니다'.format(name, color))
else :
print('{}님은 {}색을 싫어합니다'.format(name, color))
In [76]:
print('caller -')
print('세번째 인자를 가지고 좋고싫고')
print('출력예시 ) XXX님은 XXX색을 좋아(싫어)합니다')
myColor('김채아','빨강',False)
myColor('오세헌','파랑',True)
myColor('손충모','보라',False)
myColor('박영빈','검정',True)
caller - 세번째 인자를 가지고 좋고싫고 출력예시 ) XXX님은 XXX색을 좋아(싫어)합니다 김채아님은 빨강색을 싫어합니다 오세헌님은 파랑색을 좋아합니다 손충모님은 보라색을 싫어합니다 박영빈님은 검정색을 좋아합니다
In [112]:
lst = [
{'name' : '김채아', 'color':'빨강', 'flag' : False},
{'name' : '오세헌', 'color':'파랑', 'flag' : True},
{'name' : '손충모', 'color':'보라', 'flag' : False},
{'name' : '박영빈', 'color':'검정', 'flag' : True}
]
myColor(lst)
김채아님은 빨강색을 싫어합니다 오세헌님은 파랑색을 좋아합니다 손충모님은 보라색을 싫어합니다 박영빈님은 검정색을 좋아합니다
In [110]:
print('동일결과가 나오도록 구현 - ')
def myColor(lst) :
for data in lst :
if data['flag'] :
print('{}님은 {}색을 좋아합니다'.format(data['name'],data['color']))
else :
print('{}님은 {}색을 싫어합니다'.format(data['name'],data['color']))
동일결과가 나오도록 구현 -
In [119]:
#변수의 스코프(Variable scope)
#전역(global), 지역(local)
data = [1,2,3,4] #global scope
def userFunc() :
localVar = 100 ; #local scope
print(data)
In [116]:
userFunc()
[1, 2, 3, 4]
In [120]:
print('* 튜플')
def avgFunc(*scores) :
pass
In [123]:
avgFunc()
avgFunc(100)
avgFunc(100,200)
avgFunc(([1,2,3,4], [1,2,3,4]))
In [126]:
print('** 딕셔너리')
def avgFunc(**kwargs) :
print(type(kwargs))
** 딕셔너리
In [128]:
#avgFunc()
avgFunc(name ='jslim' )
avgFunc(name ='jslim' , age = 20)
<class 'dict'> <class 'dict'>
In [129]:
def mixTypeFunc(args01, args02, *args03, **args04) :
pass
In [130]:
mixTypeFunc('str', True, 1,'2',3, age=20, gender = 'f')
In [136]:
def closingMent() :
msg = '한 주 동안 즐거웠습니다. 주말 잘보내시고 다음주에 웃는 모습으로 뵐게요'
lst = []
for char in msg :
lst.append(char)
return lst
In [138]:
result = closingMent()
print(result)
['한', ' ', '주', ' ', '동', '안', ' ', '즐', '거', '웠', '습', '니', '다', '.', ' ', '주', '말', ' ', '잘', '보', '내', '시', '고', ' ', '다', '음', '주', '에', ' ', '웃', '는', ' ', '모', '습', '으', '로', ' ', '뵐', '게', '요']
In [139]:
msg = closingMent
print(type(msg))
<class 'function'>
In [142]:
print(msg())
['한', ' ', '주', ' ', '동', '안', ' ', '즐', '거', '웠', '습', '니', '다', '.', ' ', '주', '말', ' ', '잘', '보', '내', '시', '고', ' ', '다', '음', '주', '에', ' ', '웃', '는', ' ', '모', '습', '으', '로', ' ', '뵐', '게', '요']
In [143]:
print('lambda function -')
print('lambda 형식) : lambda 인자 : 실행문 ')
def hap(x,y) :
return x + y
lambda function - lambda 형식) : lambda 인자 : 실행문
In [148]:
result = hap(10,20)
print(result)
result = (lambda x, y : x + y )(10,20)
print(result)
lambdaFunc = lambda x, y : x + y
print(lambdaFunc(10,20))
30 30 30
In [149]:
print('함수의 중첩 - ')
def outerFunc(num) :
result = 0
def innerFunc(num) :
print(result + num)
함수의 중첩 -
'Language > Python' 카테고리의 다른 글
sw교육_python 8일차 (0) | 2023.09.14 |
---|---|
sw교육_python 7일차 (0) | 2023.09.14 |
sw교육_python 5일차 (0) | 2023.09.14 |
sw교육_python 4일차 (0) | 2023.09.14 |
sw교육_python 3일차 (0) | 2023.09.14 |