공부하는가비
22.01.015 AI기본 2주차 강의 --python 기초(함수) 본문
함수(function) 선언
def 함수명(매개변수1, 매개변수2, 매개변수N) :
실행문
실행문
return 반환값
함수명 -> 코드의 기능을 알 수 있도록 작성
매개변수 -> 기능구현에 필요한 재료로 파라미터라 함
반환값 -> 기능 구현 후 결과문, 존재하지 않을 수도 있음
# -*- coding : utf-8 -*-
# 사용자 정의 함수 실습 (1) ----------------------------------------
# 기능 : 숫자를 두개 입력받아 더하기
# 이름 : twoAdd
# 재료 : 정수 2개 num1,num2
# 반환결과 : 더하기 값
def twoAdd(num1,num2):
result = num1+num2
return result
# 함수호출 => 함수 실행하기
value = twoAdd(1,5);
print(f'twoAdd(1,5) : {value}')
# 기능 : 2개 정수의 나머지 값을 구하기
# 이름 : getNamugi
# 재료 : 정수 2개 num1,num2
# 반환결과 : 나머지 값
def getNamugi(num1,num2):
result = num1%num2
return result
# 함수호출 => 함수 실행하기
value = getNamugi(5,3);
print(f'getNamugi(5,3) : {value}')
# 기능 : 점수에 대한 평균을 구하는 함수
# 이름 : getAvg
# 재료 : jumsu=[80,93,40,100]
# 반환결과 : 평균
def getAvg(jumsu):
total=0
for num in jumsu :
total += num
result = total / len(jumsu)
return result
value = getAvg(jumsu=[80,93,40,100]);
print(f'getAvg(jumsu=[80,93,40,100]) : {value}')
# 사용자 정의 함수 실습 (2) ----------------------------------------
# 기능 : 이름과 주소를 받아 출력
# 이름 : displayUser
# 재료 : name, address
# 결과 : 안 함
def displayUser(name,address):
print(f'{address}에 계시는 {name}님 반갑습니다! ')
# 함수실행 => 함수호출
displayUser("진아","대구")
# 사용자 정의 함수 실습 (3) ----------------------------------------
# 기능 : 이름과 주소를 입력 받아 알려주기
# 이름 : getUserInfo
# 재료 : 없음
# 결과 : 이름과 주소
def getUserInfo():
data = input('이름과 주소를 입력해 주세요')
return data
# 함수실행 => 함수호출
getUserInfo();
# 사용자 정의 함수 실습 (4) ----------------------------------------
# 기능 : 안내메세지 출력기능
# 이름 : autoAnswer
# 재료 : 없음
# 결과 : 없음
def autoAnswer():
print('지금은 상담 시간이 아닙니다.')
# 함수실행 => 함수호출
autoAnswer()
# -*- coding : utf-8 -*-
# 다양한 기능의 함수들 ---------------------------------
# 기능 : 키와 몸무게에 대한 비만도 알림
# 이름 : getBMI
# 재료 : height, weight
# 결과 : 비만, 정상, 저체중
# BMI 지수 = 몸무게 / (신장 * 신장)
def getBMI(height, weight):
height = height * 0.01
bmi = round(weight / (height * height),1)
if(bmi>=30):
return '고도비만'
elif(bmi>=25):
return '비만'
elif(bmi >23):
return '과체중'
elif(bmi>18.5):
return '정상체중'
else:
return '저체중'
print(f'당신은 {getBMI(160,60)}입니다')
# 기능 : 2개의 정수와 사용자가 선택한 연산방법(+,-,*,/)에 대한 결과 출력하기
# 이름 : selectCalc
# 재료 : num1,num2,op
# 결과 : 계산결과
def selectCalc():
num1 = int(input('번호를 입력해 주세요'))
op = input('연산자를 입력해 주세요')
num2 = int(input('번호를 입력해 주세요'))
if op == '+':
print(f'{num1} + {num2} = {num1+num2}')
elif op =='-':
print(f'{num1} - {num2} = {num1-num2}')
elif op == '/':
print(f'{num1} / {num2} = {num1/num2}')
elif op == '*':
print(f'{num1} * {num2} = {num1*num2}')
else:
print('잘못된 연산자 입니다.')
selectCalc()
# -*- coding : utf-8 -*-
# 사용자 정의 함수 실습 (5) -----------------------------------------
# 여러개의 결과 반환하기
# 기능 : 숫자들 중에서 가장 큰 값, 가장 작은 값을 돌려주기
# 이름 : getMaxMin
# 재료 : 숫자 리스트
# 결과 : 가장 큰 값, 가장 작은 값
def getMaxMin(nums):
maxV=max(nums)
minV=min(nums)
return maxV,minV
print(getMaxMin(nums=[1,2,3,4,5,6,7,8,9,10]))
# 기능 : 2개 정수에 대한 4칙연산(+,-,*ㅡ/)결과 반환
# 이름 : fourCalc
# 재료 : num1,num2
# 결과 : 덧셈, 뺄셈, 곱셈, 나눗셈 결과 반환
def fourCalc(num1,num2):
return num1+num2,num1-num2,num1*num2,num1/num2 if num2 !=0 else None
print(fourCalc(71,0))
def 함수명(*매개변수) :
실행문
실행문
return 반환값
# -*- coding : utf-8 -*-
# 사용자 정의 함수 실습 (7)--------------------------------
# 재료 갯수를 가젼 즉 유동적인 함수 => 가변인자 함수
# 기능 : 입력 받은 숫자의 합계 구하기
# 이름 : getSum
# 재료 : 0개~N개 *nums
# 결과 : 합계 값
def getSum(*nums):
# 리스트 자료형의 nums
# 내장함수 => sum
# result=0
# for num in nums:
# result += num
return sum(nums)
print(getSum(1,2,3,4,5,6,7,8,9))
# 기능 : 회원가입 시 정보 입력받아서 출력하는 함수
# 이름 : join
# 재료 : 의미를 가진 값, 갯수는 유동적 **data
# 결과 : 없음
def join(**data):
print(data)
for k,v in data.items():
print(k,v)
join(name='hone',age=3,gender='F')
join()
join(email='nana@gmail.com')
join(phone='010-2222-1212',id='AAA',birth='201010')
변수에 함수 담기
함수도 class'function' 타입
lambda(람다) 이름없는 한 줄 함수, 즉 '익명함수'
lambda 인수1,인수2, ... : 실행코드
변수명 = lambda 인수1, 인수2, ...: 실행코드
# -*- coding : utf-8 -*-
# 람다함수 또는 익명함수-----------------------------
# 한줄로 만들어지는 함수
# def, 이름없음
def add(a):
return a+a
print(add(10))
# -----------------------------------------------------
ret=(lambda a: print(f'hello {a}'))('Jina') # hello Jina
print(f'ret => {ret}') # None
ret=(lambda a,b:{a+b})(10,2)
print(f'ret => {ret}') # {12}
# 변수에 저장하기
add=lambda x,y:x+y
print(add(1,2))
# 리스트에 저장하기
cal=[lambda x,y:x+y, lambda x,y:x-y, lambda x,y:x/y]
print(cal[0](1,5))
print(cal[1](10,20))
print(cal[2](1,2))
# 람다함수가 활용되는 내장함수 -------------------------------
# map(함수명,여러개 데이터를 가진 자료형)
numberStr=['1','2','3','4']
numberStr[0]=int(numberStr[0]) # 1 <= int('1')
numberStr[1]=int(numberStr[1])
numberStr[2]=int(numberStr[2])
numberStr[3]=int(numberStr[3])
index=0
for num in numberStr:
numberStr[index] = int(num)
index += 1
print(numberStr) # [1, 2, 3, 4]
# map() 내장함수 사용
value=list(map(int,numberStr))
print(f'value => {value}') # value => [1, 2, 3, 4]
data=[1,2,3,4,5,6,7,8,9,10]
value=list(map(lambda x:x*x,data))
print(f'value => {value}') # value => [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# filter() 함수 ---------------------------------------
# 조건에 맞는 것만 걸러내기
# filter object => 타입 변환
value=list(filter(lambda x : x%2 ==0, data)) # value => [2, 4, 6, 8, 10]
print(f'value => {value}')
value=list(filter(lambda x : x>5, data)) # value => [6, 7, 8, 9, 10]
print(f'value => {value}')
value=list(filter(lambda x : not x>5,data)) # value => [1, 2, 3, 4, 5]
print(f'value => {value}')
'낰낰 > 인공지능' 카테고리의 다른 글
22.01.016 AI기본 2주차 강의 --python 기초(클래스) (0) | 2022.01.16 |
---|---|
[22년 1기] 인공지능 기본과정(대구)(주말 전일) 커리큘럼 (0) | 2022.01.16 |
22.01.09 AI기본 2주차 강의 --python 기초(조건문IF) (0) | 2022.01.09 |
22.01.09 AI기본 2 주차 강의 --python 기초(자료형) (0) | 2022.01.09 |
3주차 인공지능의 기초-1 (0) | 2021.12.28 |
Comments