안녕하세요.
26년차 진로탐색꾼 조녁입니다!
오늘로 평일의 반이 지났습니다!
각자의 자리에서 학업이든, 취업준비든, 직장인이든, 혹은 가정의 지킴이든
자리를 지켜내고 있는 모두 너무 멋지십니다 ㅎㅎ(진심)
오늘은 <AI와 ML을 위해 배워야할 개발언어 : 파이썬(Python)> 기초 강의의 마지막! 3일차였어요.
지난 이야기가 궁금하시다면 아래 주소 참고해주세요!
어제 조건문과 자료구조의 종류(tuple, list, dictionary, set)에 대해 배웠다면
오늘은 마지막 정리와 이해도 테스트가 있었습니다!
3일차 내용
1) 함수 (오.. 드디어!)
2) 객체지향 프로그래밍
1) 함수란?
: 이름이 붙여진 코드의 블록, 즉! 입력(파라미터)을 해주면 출력(리턴 값)을 해주는 놈입니다!
이로 인해 우리는 특정한 task를 반복해서 수행할 수 있게 된 것이죠!!
ㄱ. 함수 생성 및 호출 : 우선 def라는 키워드를 통해 아래와 같이 함수를 지정 해 줍니다. -> 그 다음 함수를 부르면? 짜잔!
-위와 같이 쉬운 과정이라도 제가 print("Hello!")를 굳이 3번 입력하지 않아도
greet_uesr() 함수를 생성하므로 한번에 task를 수행할 수 있게 되었죠!
ㄴ. 인수(argument)와 매개변수(parameter)
: 인수와 함수를 호출하면 인수의 값이 함수내에서 해당하는 매개변수에 복사됨
매개변수(parameter) | 인수(argument) |
함수 등에서 사용되는 전달된 값을 받는 변수 | 값, 변수, 참조 등 전달되는 값 |
예시)
def user_description(age, name):
return f'{name}은 {age}살 입니다' #파이썬 3.6 이상에서 제공하는 문자열 포맷 방법
print(user_description(10, 'Junwoo'))
print(user_description(26, 'Jonhyuk'))
위와 같은 예시에서 첫줄에 age , name 과 같은 것이 매개변수이고 ,
print 하는 10, 26 , Junwoo,Jonhyuk 과 같은 것이 각각 age, name에 해당되는 인수 값이다.
ㄷ. 인수의 종류 ( 위치인수, 키워드인수, 가변인수 *args)
: 우리누나는 인수초등학교 , 나는 우이초등학교를 나왔다.
-위치인수 예시
def menu(morning, afternoon, dinner):
print(f' 아침은 {morning} \n, 점심은 {afternoon} \n, 저녁은 {dinner} \n')
menu('rice', 'banana' , 'pasta') #위치에 맞게 순서대로 제시되는 것이 위치인수
-키워드인수 예시
def menu(morning, afternoon, dinner):
print(f' 아침은 {morning} \n, 점심은 {afternoon} \n, 저녁은 {dinner} \n')
menu(morning='rice', afternoon='banana' , dinner='pasta')
menu(morning='rice', dinner='pasta', afternoon='banana') #매개변수에 상응하는 이름을 인수에 지정이 가능하다 _ 고로 순서 지정 가능
-가변인수 *args 예시
def menu(morning, afternoon, dinner, *args):
print(f' 아침은 {morning} \n, 점심은 {afternoon} \n, 저녁은 {dinner} \n' + f'간식은 {*args}')
menu('rice', 'banana', 'pasta', 'salad', 'milk') #*args는 인수를 튜플로 묶는 역할 , 순서는 항상 위치인수 다음에 온다.
이해를 돕기 위한 처음이자 마지막 예제
*N개 과목의 평균을 계산하는 함수를 작성하시오.
-인자 개수 제한 없음 -> 함수이름 avg -> 인자로 받은 모든 과목의 점수에 대한 평균 계산
-> 평균 점수 리턴 -> 호출 후 평균 출력 -> avg(84,69,75) 출력 & avg(87,90,89,95) 출력
해답)
def avg(*scores) : # 우선 함수를 생성해준다.
score_avg = sum(scores) / len(scores) #평균을 구하는 ( ) 생성
return score_avg #평균을 구하는 ( ) 리턴
print(avg(84,69,75)) #*scores 매개변수에 해당되는 인자 (84,69,75) ??
print(avg(87,90,89,95)) #*scores 매개변수에 해당되는 인자 (87,90,89,95) ??
2)객체지향 프로그래밍
: 쉽게 말해 파이썬은 모든 걸 객체로 봅니다! 그걸 담는 그릇이 class 이므로
변수도 , 함수도 , type()을 통해 확인했을 때 앞에 class가 오는 것을 볼 수 있습니다!
(메모)
: class : 클래스 선언 키워드 , 속성 : 클래스 내부 변수 , 메소드 : 클래스의 함수
: 속성(변수)는 인스턴스 마다 ! / 코드(class)는 단독 메모리 할당 cf) 인스턴스 : 클래스로부터 만들어진 객체
나머지 내용은 제가 교육이 다 마무리 된 후에 꼭 추가하도록 할게요!! ㅠㅠ
오늘도 다들 평안한 밤 되세요~! (제발)
P.s 제가 3일간 블로그 글을 아주 작게나마 적으면서 느낀 점은, 매일 꾸준히 무언가를 남긴다는 것이 참 대단한 일이었구나 .. (게을러서 제송) 싶으면서 또 이렇게라도 하니 참 보람을 느껴요! 오늘도 읽어주셔서 감사합니다.
'프로그래밍 공부 > 코드프레소 교육' 카테고리의 다른 글
[코드프레소XAI양재허브]AI/ML 기초교육 5일차 (1) (0) | 2020.12.07 |
---|---|
[코드프레소XAI양재허브]AI/ML 기초교육 4일차 (2) (2) | 2020.12.04 |
[코드프레소XAI양재허브]AI/ML 기초교육 4일차 (1) (2) | 2020.12.03 |
[코드프레소XAI양재허브] AI/ML 기초교육 2일차 (2) | 2020.11.25 |
[코드프레소 X AI 양재허브] AI/ML 기초교육 1일차 (2) | 2020.11.24 |