SlideShare a Scribd company logo
1 of 27
Download to read offline
파이썬 제대로 활용하기
ISL Lab Seminar
Hansol Kang
: INTERMIDEATE 01
Introduction
지금까지의 세미나
2019-08-28
2
TIME LINE
Python Seminar
2016
2018 Python Programming – J.W An
데이터형, 데이터 구조, 제어문, numpy 모듈 등
Python Trilogy – B.M Ahn
파이썬 소개(1), VS 설치 및 간단한 파이썬 문법 (2,3)
2019
파이썬 제대로 활용하기 – H.S Kang
간단한 리뷰, 함수 / 클래스, 모듈과 패키지
BEGINNER
NOVICE
INTERMIDIATE
Introduction
파이썬이란?
2019-08-28
3
Guido van Rossum
Monty Python’s Flying Circus
Python logo
1989년 12월 암스테르담에서 크리스마스를 의미 있게 보내기 위해 ‘취미용’ 프로그래밍 프로젝트
Introduction
상위 20위 언어들 (2019)*
2019-08-28
4
1 JavaScript
2 Java
3 Python
4 PHP
5 C++
5 C#
7 CSS
8 Ruby
9 C
10 TypeScript
11 Swift
12 Objective-C
13 Scala
14 Shell
15 R
16 Go
17 PowerShell
18 Perl
19 Haskell
20 Kotlin
* The RedMonk Programming Language Rankings: June 2019
Introduction
Codeeval의 가장 인기있는 프로그래밍 언어(2016)*
2019-08-28
5
* https://highcode.tistory.com/16
Introduction
파이썬의 특징
2019-08-28
6
Pyramid 예제 : Row 수를 입력 받아 피라미드를 생성하라.
Row : 3일때,
*
* * *
* * * * *
space -> * -> endl
2칸 띄움 1개 찍음 줄 바꿈
1칸 띄움 3개 찍음 줄 바꿈
0칸 띄움 5개 찍음 줄 바꿈
Introduction
파이썬의 특징
2019-08-28
7
Pyramid 예제
C++ Python
크게 2가지의 특징
1. 컴파일러 vs. 인터프리터
2. 간결한 표현
Introduction
파이썬의 특징
2019-08-28
8
“파이썬은 블록문을 구성할 때
Indentation로 구분한다”
Introduction
파이썬의 컨테이너 타입 간단 리뷰
2019-08-28
9
List(리스트)
• [] : mutable
Tuple(튜플)
• () : Immutable
Dictionary(사전)
• {a:b} : key와 value
Function
함수 정의하기
2019-08-28
10
def my_func () :
함수 예약어 함수 이름 매개변수
void my_func () { (C++Style)
Function
함수 정의하기(인자 값과 반환 값)
2019-08-28
11
void my_func (String s) {
(C++Style)
int my_func (int a, int b) {
(C++Style)
• 함수의 정의는 def 예약어로 시작.
• 콜론(:)을 통해 함수에서 수행하고자 하는 블록문을 작성.
• return 값이 없으면 None을 반환함.
Function
기본 인자 값 활용하기(Default argument value)
2019-08-28
12
int daily_sleeping_hours (int hours = 6) {
(C++Style)
Function
기본 인자 값 활용하기(Default argument value)
2019-08-28
13
• 기본적으로 함수에서 return이 없거나 반환 값 없이 return만 표기하는 경우 함수에는 None을 반환함.
Function
여러 개의 인자 값 및 키워드 인자(Keyword arguments) 활용하기
2019-08-28
14
• 함수 호출 시 반드시 대입해야 하는 필수 인자 값
• 값을 대입하지 않은 경우에는 기본 값을 할당하는 옵션 인자 값
Positional(위치 인자 값) : 인자 값을 집어 넣는 순서가 중요한 필수 인자 값
Keyword(키워드 인자 값) : 기본 값을 가지고 있는 옵션 인자 값
Function
여러 개의 인자 값 및 키워드 인자(Keyword arguments) 활용하기
2019-08-28
15
• 위치에 따라 결정되는 인자 값.
• 키워드에 따라 결정되는 인자 값.(순서 상관 x)
익숙한 형태
익숙한 형태
def introduce_my_pet(name, age=1, type = 'cat'):
print('내 반려동물의 이름은', name, '이며, 나이는 ', age, '이고, 종류는 ',type, '이다.')
Function
잘못된 호출 사례
2019-08-28
16
• 필수 인자 값 누락
• 키워드 인자 값 뒤에 키워드 없는 인자 값 사용 불가.
• 동일 매개 변수에 중복 인자 값 대입
• 알지 못하는 키워드(매개 변수명 존재하지 않음)
Function
가변 인자 리스트 활용하기(Arbitrary argument lists)
2019-08-28
17
“만약 하나의 변수에 여러 개의 값을 넣고 싶으면?”
C++ : 배열, 벡터
Python : 튜플, 딕셔너리 리스트는 사용 x (튜플 : immutable)
def introduce_my_family(name, *family_names, **family_info):
• Asterisk 한 개 (*) 는 튜플형 데이터
• Asterisk 두 개 (**) 는 딕셔너리형 데이터
Function
가변 인자 리스트 활용하기(Arbitrary argument lists)
2019-08-28
18
name family_names (Tuple) family_info (Dictionary)
“인자 값의 개수나 키워드 없이도 나열한 값들이 알아서 패킹되어 대입됨.”
var-positional
일반적으로 가변 인자 값들은 함수 선언 시 가장 뒤쪽에 배치함.
만약 앞쪽에 배치한 경우에는 뒤쪽에 배치된 일반 인자 값은 반드시 키워드 인자 값으로 사용함.
keyword-only
Function
가변 인자 리스트 활용하기(Arbitrary argument lists)
2019-08-28
19
1) args라는 튜플형 인자를 받음
2) sep은 “/”를 기본으로 가짐
3) join함수는 구분자를 포함하여 문자열로 변환함. (<->split 함수는 문자열을 구분자를 기준으로 나누어 리스트로 변환함.)
“일반 인자가 뒤쪽에 배치되었음으로 반드시 키워드 인자 값 형태로 호출 해야함.”
Function
언패킹 인자 리스트 활용하기(unpacking argument lists)
2019-08-28
20
열거형 데이터를 넣으면 패킹되어 하나의 변수로 대입되는 것을 확인
이번엔 반대로 열거형 데이터를 함수 내에서 언패킹하는 방법
• 함수를 선언할 때 Asterisk(*)는 열거형 데이터를 의미
• 함수를 호출 할 때 인자 값 앞에서의 Asterisk(*)는 열거형 데이터를 언패킹하라는 의미
Function
언패킹 인자 리스트 활용하기(unpacking argument lists)
2019-08-28
21
Function
변수의 유효 범위(Scope)
2019-08-28
22
할당하는 위치와 상관 없이 무조건 지역 변수로 인식함!
UnboundLocalError: local variable 'param'
referenced before assignment
Function
변수의 유효 범위(Scope)
2019-08-28
23
전역 변수의 값을 변경하여 출력하기 위해서? : global 예약어를 사용
• 파이썬도 전역 변수와 지역 변수로 나눔.
• 지역 변수명이 전역 변수명이 동일하다면 해당 함수만을 위한 지
역 변수를 새로 생성함.
• 만약 함수 내에서 전역 변수를 호출하고 싶다면, global 예약어를
활용한다.
Function
문서화를 위한 문자열 활용하기(Documentation Strings : dostring)
2019-08-28
24
Summary
요약
2019-08-28
25
➢ 파이썬을 활용하여 간단히 함수를 구성하는 방법에 대해서 학습함.
➢ 파이썬에서 함수를 선언할 때는 def 예약어를 사용함.
➢ 파이썬에서 asterisk는 패킹/언패킹 여부를 결정함.
➢ 함수 내에서 전역 변수의 값을 변경하고자 한다면, global 예약어를 사용함.
➢ 추후 세미나에서는 클래스와 모듈에 대해 소개하려고 함.
Summary
Future works
2019-08-28
26
GAN Research
Vanilla GAN
DCGAN
InfoGAN
LSGAN
SRGAN
Development tools & Language
Tips(Document & Programming)
PyTorch
C++ Coding Standard
Modern C++
Python Intermediate 01
Mathematical Theory
Linear algebra
Probability & Information theory
Other research
Level Processor
Ice Crack Propagation
Python Intermediate 02
Python executable & UI
Style Transfer
cGAN
wGAN
BEGAN
BigGAN
Cycle GAN
Style GAN
3D reconstruction
DONE
TO
DO
&
2019-08-28 27

More Related Content

Similar to 파이썬 제대로 활용하기

Java8 & Lambda
Java8 & LambdaJava8 & Lambda
Java8 & Lambda기현 황
 
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)r-kor
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차Seong Bong Ji
 
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자SesangCho
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)Sung-hoon Ma
 
[2011 04 30]python-3장
[2011 04 30]python-3장[2011 04 30]python-3장
[2011 04 30]python-3장Jong Pil Won
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기 Yong Joon Moon
 
RNC C++ lecture_5 Array
RNC C++ lecture_5 ArrayRNC C++ lecture_5 Array
RNC C++ lecture_5 Arrayitlockit
 
자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3Jin-Hyun Park
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) Tae Young Lee
 

Similar to 파이썬 제대로 활용하기 (20)

6 function
6 function6 function
6 function
 
Java8 & Lambda
Java8 & LambdaJava8 & Lambda
Java8 & Lambda
 
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)
RUCK 2017 R로 API 서버를 만드는 4가지 방법(은 삽질기)
 
C++에서 Objective-C까지
C++에서 Objective-C까지C++에서 Objective-C까지
C++에서 Objective-C까지
 
C++ api design 품질
C++ api design 품질C++ api design 품질
C++ api design 품질
 
Java8 람다
Java8 람다Java8 람다
Java8 람다
 
Hacosa js study 2주차
Hacosa js study 2주차Hacosa js study 2주차
Hacosa js study 2주차
 
파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
강의자료4
강의자료4강의자료4
강의자료4
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
[2011 04 30]python-3장
[2011 04 30]python-3장[2011 04 30]python-3장
[2011 04 30]python-3장
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 
RNC C++ lecture_5 Array
RNC C++ lecture_5 ArrayRNC C++ lecture_5 Array
RNC C++ lecture_5 Array
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3자바카페 스터디- INSIDE JS 1-3
자바카페 스터디- INSIDE JS 1-3
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
 

More from Hansol Kang

ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )
ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )
ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )Hansol Kang
 
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)Hansol Kang
 
알아두면 쓸모있는 깃허브 2
알아두면 쓸모있는 깃허브 2알아두면 쓸모있는 깃허브 2
알아두면 쓸모있는 깃허브 2Hansol Kang
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1Hansol Kang
 
basic of deep learning
basic of deep learningbasic of deep learning
basic of deep learningHansol Kang
 
모던 C++ 정리
모던 C++ 정리모던 C++ 정리
모던 C++ 정리Hansol Kang
 
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Hansol Kang
 
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)Hansol Kang
 
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...Hansol Kang
 
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)Hansol Kang
 
PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)Hansol Kang
 
Deep Convolutional GANs - meaning of latent space
Deep Convolutional GANs - meaning of latent spaceDeep Convolutional GANs - meaning of latent space
Deep Convolutional GANs - meaning of latent spaceHansol Kang
 
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)Hansol Kang
 
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)Hansol Kang
 
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)Hansol Kang
 
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법Hansol Kang
 
QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)Hansol Kang
 
Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)Hansol Kang
 

More from Hansol Kang (20)

ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )
ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )
ROS 시작하기(Getting Started with ROS:: Your First Steps in Robot Programming )
 
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)
관측 임무스케줄링 (Selecting and scheduling observations of agile satellites)
 
알아두면 쓸모있는 깃허브 2
알아두면 쓸모있는 깃허브 2알아두면 쓸모있는 깃허브 2
알아두면 쓸모있는 깃허브 2
 
알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1알아두면 쓸모있는 깃허브 1
알아두면 쓸모있는 깃허브 1
 
FPN 리뷰
FPN 리뷰FPN 리뷰
FPN 리뷰
 
R-FCN 리뷰
R-FCN 리뷰R-FCN 리뷰
R-FCN 리뷰
 
basic of deep learning
basic of deep learningbasic of deep learning
basic of deep learning
 
모던 C++ 정리
모던 C++ 정리모던 C++ 정리
모던 C++ 정리
 
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
 
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
 
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...
InfoGAN : Interpretable Representation Learning by Information Maximizing Gen...
 
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
딥러닝 중급 - AlexNet과 VggNet (Basic of DCNN : AlexNet and VggNet)
 
PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)PyTorch 튜토리얼 (Touch to PyTorch)
PyTorch 튜토리얼 (Touch to PyTorch)
 
Deep Convolutional GANs - meaning of latent space
Deep Convolutional GANs - meaning of latent spaceDeep Convolutional GANs - meaning of latent space
Deep Convolutional GANs - meaning of latent space
 
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
 
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)
문서와 개발에 필요한 간단한 팁들(Too easy, but important things - document, development)
 
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)
신뢰 전파 기법을 이용한 스테레오 정합(Stereo matching using belief propagation algorithm)
 
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법
HSV 컬러 공간에서의 레티넥스와 채도 보정을 이용한 화질 개선 기법
 
QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)
 
Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)Continuously Adaptive Mean Shift(CAMSHIFT)
Continuously Adaptive Mean Shift(CAMSHIFT)
 

Recently uploaded

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 

Recently uploaded (8)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

파이썬 제대로 활용하기

  • 1. 파이썬 제대로 활용하기 ISL Lab Seminar Hansol Kang : INTERMIDEATE 01
  • 2. Introduction 지금까지의 세미나 2019-08-28 2 TIME LINE Python Seminar 2016 2018 Python Programming – J.W An 데이터형, 데이터 구조, 제어문, numpy 모듈 등 Python Trilogy – B.M Ahn 파이썬 소개(1), VS 설치 및 간단한 파이썬 문법 (2,3) 2019 파이썬 제대로 활용하기 – H.S Kang 간단한 리뷰, 함수 / 클래스, 모듈과 패키지 BEGINNER NOVICE INTERMIDIATE
  • 3. Introduction 파이썬이란? 2019-08-28 3 Guido van Rossum Monty Python’s Flying Circus Python logo 1989년 12월 암스테르담에서 크리스마스를 의미 있게 보내기 위해 ‘취미용’ 프로그래밍 프로젝트
  • 4. Introduction 상위 20위 언어들 (2019)* 2019-08-28 4 1 JavaScript 2 Java 3 Python 4 PHP 5 C++ 5 C# 7 CSS 8 Ruby 9 C 10 TypeScript 11 Swift 12 Objective-C 13 Scala 14 Shell 15 R 16 Go 17 PowerShell 18 Perl 19 Haskell 20 Kotlin * The RedMonk Programming Language Rankings: June 2019
  • 5. Introduction Codeeval의 가장 인기있는 프로그래밍 언어(2016)* 2019-08-28 5 * https://highcode.tistory.com/16
  • 6. Introduction 파이썬의 특징 2019-08-28 6 Pyramid 예제 : Row 수를 입력 받아 피라미드를 생성하라. Row : 3일때, * * * * * * * * * space -> * -> endl 2칸 띄움 1개 찍음 줄 바꿈 1칸 띄움 3개 찍음 줄 바꿈 0칸 띄움 5개 찍음 줄 바꿈
  • 7. Introduction 파이썬의 특징 2019-08-28 7 Pyramid 예제 C++ Python 크게 2가지의 특징 1. 컴파일러 vs. 인터프리터 2. 간결한 표현
  • 9. Introduction 파이썬의 컨테이너 타입 간단 리뷰 2019-08-28 9 List(리스트) • [] : mutable Tuple(튜플) • () : Immutable Dictionary(사전) • {a:b} : key와 value
  • 10. Function 함수 정의하기 2019-08-28 10 def my_func () : 함수 예약어 함수 이름 매개변수 void my_func () { (C++Style)
  • 11. Function 함수 정의하기(인자 값과 반환 값) 2019-08-28 11 void my_func (String s) { (C++Style) int my_func (int a, int b) { (C++Style) • 함수의 정의는 def 예약어로 시작. • 콜론(:)을 통해 함수에서 수행하고자 하는 블록문을 작성. • return 값이 없으면 None을 반환함.
  • 12. Function 기본 인자 값 활용하기(Default argument value) 2019-08-28 12 int daily_sleeping_hours (int hours = 6) { (C++Style)
  • 13. Function 기본 인자 값 활용하기(Default argument value) 2019-08-28 13 • 기본적으로 함수에서 return이 없거나 반환 값 없이 return만 표기하는 경우 함수에는 None을 반환함.
  • 14. Function 여러 개의 인자 값 및 키워드 인자(Keyword arguments) 활용하기 2019-08-28 14 • 함수 호출 시 반드시 대입해야 하는 필수 인자 값 • 값을 대입하지 않은 경우에는 기본 값을 할당하는 옵션 인자 값 Positional(위치 인자 값) : 인자 값을 집어 넣는 순서가 중요한 필수 인자 값 Keyword(키워드 인자 값) : 기본 값을 가지고 있는 옵션 인자 값
  • 15. Function 여러 개의 인자 값 및 키워드 인자(Keyword arguments) 활용하기 2019-08-28 15 • 위치에 따라 결정되는 인자 값. • 키워드에 따라 결정되는 인자 값.(순서 상관 x) 익숙한 형태 익숙한 형태 def introduce_my_pet(name, age=1, type = 'cat'): print('내 반려동물의 이름은', name, '이며, 나이는 ', age, '이고, 종류는 ',type, '이다.')
  • 16. Function 잘못된 호출 사례 2019-08-28 16 • 필수 인자 값 누락 • 키워드 인자 값 뒤에 키워드 없는 인자 값 사용 불가. • 동일 매개 변수에 중복 인자 값 대입 • 알지 못하는 키워드(매개 변수명 존재하지 않음)
  • 17. Function 가변 인자 리스트 활용하기(Arbitrary argument lists) 2019-08-28 17 “만약 하나의 변수에 여러 개의 값을 넣고 싶으면?” C++ : 배열, 벡터 Python : 튜플, 딕셔너리 리스트는 사용 x (튜플 : immutable) def introduce_my_family(name, *family_names, **family_info): • Asterisk 한 개 (*) 는 튜플형 데이터 • Asterisk 두 개 (**) 는 딕셔너리형 데이터
  • 18. Function 가변 인자 리스트 활용하기(Arbitrary argument lists) 2019-08-28 18 name family_names (Tuple) family_info (Dictionary) “인자 값의 개수나 키워드 없이도 나열한 값들이 알아서 패킹되어 대입됨.” var-positional 일반적으로 가변 인자 값들은 함수 선언 시 가장 뒤쪽에 배치함. 만약 앞쪽에 배치한 경우에는 뒤쪽에 배치된 일반 인자 값은 반드시 키워드 인자 값으로 사용함. keyword-only
  • 19. Function 가변 인자 리스트 활용하기(Arbitrary argument lists) 2019-08-28 19 1) args라는 튜플형 인자를 받음 2) sep은 “/”를 기본으로 가짐 3) join함수는 구분자를 포함하여 문자열로 변환함. (<->split 함수는 문자열을 구분자를 기준으로 나누어 리스트로 변환함.) “일반 인자가 뒤쪽에 배치되었음으로 반드시 키워드 인자 값 형태로 호출 해야함.”
  • 20. Function 언패킹 인자 리스트 활용하기(unpacking argument lists) 2019-08-28 20 열거형 데이터를 넣으면 패킹되어 하나의 변수로 대입되는 것을 확인 이번엔 반대로 열거형 데이터를 함수 내에서 언패킹하는 방법 • 함수를 선언할 때 Asterisk(*)는 열거형 데이터를 의미 • 함수를 호출 할 때 인자 값 앞에서의 Asterisk(*)는 열거형 데이터를 언패킹하라는 의미
  • 21. Function 언패킹 인자 리스트 활용하기(unpacking argument lists) 2019-08-28 21
  • 22. Function 변수의 유효 범위(Scope) 2019-08-28 22 할당하는 위치와 상관 없이 무조건 지역 변수로 인식함! UnboundLocalError: local variable 'param' referenced before assignment
  • 23. Function 변수의 유효 범위(Scope) 2019-08-28 23 전역 변수의 값을 변경하여 출력하기 위해서? : global 예약어를 사용 • 파이썬도 전역 변수와 지역 변수로 나눔. • 지역 변수명이 전역 변수명이 동일하다면 해당 함수만을 위한 지 역 변수를 새로 생성함. • 만약 함수 내에서 전역 변수를 호출하고 싶다면, global 예약어를 활용한다.
  • 24. Function 문서화를 위한 문자열 활용하기(Documentation Strings : dostring) 2019-08-28 24
  • 25. Summary 요약 2019-08-28 25 ➢ 파이썬을 활용하여 간단히 함수를 구성하는 방법에 대해서 학습함. ➢ 파이썬에서 함수를 선언할 때는 def 예약어를 사용함. ➢ 파이썬에서 asterisk는 패킹/언패킹 여부를 결정함. ➢ 함수 내에서 전역 변수의 값을 변경하고자 한다면, global 예약어를 사용함. ➢ 추후 세미나에서는 클래스와 모듈에 대해 소개하려고 함.
  • 26. Summary Future works 2019-08-28 26 GAN Research Vanilla GAN DCGAN InfoGAN LSGAN SRGAN Development tools & Language Tips(Document & Programming) PyTorch C++ Coding Standard Modern C++ Python Intermediate 01 Mathematical Theory Linear algebra Probability & Information theory Other research Level Processor Ice Crack Propagation Python Intermediate 02 Python executable & UI Style Transfer cGAN wGAN BEGAN BigGAN Cycle GAN Style GAN 3D reconstruction DONE TO DO