Presentation is loading. Please wait.

Presentation is loading. Please wait.

OSS 개발자포럼 2014. 피해갈 수 없는 자기소개 프로그램 개발을 잘 한다는 것은 무엇일까 ?

Similar presentations


Presentation on theme: "OSS 개발자포럼 2014. 피해갈 수 없는 자기소개 프로그램 개발을 잘 한다는 것은 무엇일까 ?"— Presentation transcript:

1 OSS 개발자포럼 2014

2 피해갈 수 없는 자기소개

3 프로그램 개발을 잘 한다는 것은 무엇일까 ?

4 프로그램과 요리의 관계

5 모든 프로그램의 구성 요소

6 프로그래밍은 스토리다. 학교에 있는 영화관은 표의 가격이 5.0 달러일 때 관객이 120 명 들어온다. 표의 가격은 0.10 달러씩 낮출 경우 15 명씩 증가한다. 그러나 관객의 증가는 비용을 발생하게 되어, 영화를 한번 상영 할 때마다 180 달러의 비용이 기본적으로 들어가고, 관객 1 명당 0.04 달러의 추가비용이 소요된다. 극장주는 최대의 이윤이 나는 가격을 알고 싶어 한다.

7 Python 3.4.x

8 Variable ( 변수 ) 프로그래밍에서 데이터를 선언하는 문법적인 장치 메모리 공간을 만들고 인간이 찾기 위해서 변수에 이름을 붙여준 다. 변수에는 ‘=‘ 연산자를 활용해서 원하는 데이터를 할당한다.

9 그럼 언제 변수를 선언하고 사용하지 ? 데이터가 주어지는 순간 ? 데이터가 발생하는 순간 ? 데이터를 꺼내는 순간 ?

10 Python 은 편하네 ! 다른 언어들은 변수 앞에 해당 변수가 어떤 데이터인지를 명시적 으로 표시 Strong Typed language Weak Typed language Python 은 아무 생각 없이 그냥 필요한 데이터가 있으면 선언

11 Python 은 불편해 변수의 타입이 없기 때문에 특정 변수가 문자인지, 숫자인지 알 수 없는 경우가 발생 많이 사용하는 변환 int( ), str( ), float( ) type( ) 기능을 활용하면 어떤 변수가 어떤 타입인지 쉽게파악

12 변수 정리

13 변수의 비밀 이야기 – 참조 (reference) 변수 A 변수 B 변수 C

14 연산자와 계산 원래의 연산자는 CPU 를 동작시켜 결과 데이터를 발생하는 용도 사칙연산, 비트 연산.. 등등 ‘=‘ 연산자 ( ) 연산자 and, or, not 연산자

15 내가 원하는 기능이 없을 때 남들이 개발에 필요할 꺼 같아서 만들어둔 기능들 – API 필요하면 가져다 쓰자 – import 지금 우리에게 필요한 것 – math, random

16 제어문 (Control Statement) if ~ elif ~ else 만 기억하면 됨 if  조건문의 실행 결과 True 인 경우 실행 while for

17 연산자와 제어문의 정리

18 나만의 매출 계산기 커피숍을 운영하는 A 는 항상 계산기를 이용해서 그날의 매출을 정리한다. A 는 프로그램을 이용해서 계속해서 발생한 매출이나 지출 데이 터를 입력하고 싶다. 매 금액의 입력 후에 현재까지의 금액이 화면이 출력되는 계산기 프로그램을 작성하라.

19 문제 어떤 영화관에서는 간단한 수익계산법을 이용한다. 손님들은 티 켓 값으로 5 달러씩을 지불한다. 한 번 영화를 상영할 때마다 20 달러에 관객 1 명당 50 센트의 비용이 든다. 이 때 총 수익을 계산 하는 total-profit 프로그램을 작성하라. 이 프로그램은 한 번 영화를 상영할 때 입장한 관객의 숫자를 입 력받아 총 수익을 출력한다.

20 문제 sum-coins 라는 프로그램을 작성하라. 사용자는 10 원짜리, 50 원, 100 원, 500 원 동전의 숫자를 차례로 입력한다. 프로그램은 모든 동전의 입력이 끝나면 금액을 계산해서 출력해 준다.

21 함수 - 변수처럼 로직도 재사용하자

22 함수의 진짜 의미 실행할 코드를 묶어둔 장치 모든 함수는 입력과 출력이 존재 Stack 구조에서 실행 실제로는 메모리를 차지해서 변수처럼 사용

23

24 함수의 파라미터의 특별함 없으면 기본값을 지정해서 편하게 사용할 수 있음 실제로 동작 방식은 변수의 ‘=‘ 과 동일하게 동작

25 문제 ! number-wizard 프로그램을 작성하라. 프로그램은 사용자가 생각하는 1 에서 100 사이의 숫자를 최단 횟 수로 찾는 프로그램이다. 처음 시작하면 50 이라는 숫자를 제시하고 사용자는 ‘H’ 혹은 ‘L’ 을 입력해 주면 알아서 더 높은 수나 작은 수를 제시한다. 숫자가 맞으면 사용자가 ‘C’ 를 입력해서 정답을 인정한다.

26 함수 지향 프로그래밍 단위 기능을 함수로 제작 제작된 함수들을 조합해서 문제를 해결하는 방식 함수 설계의 어려움

27 함수 설계 가이드 하나의 단위 기능에 집중한다. 로직의 처리와 결과의 출력은 분리해 두는 것이 재사용에 유리 파이썬의 경우 파라미터의 유연함을 사용 파이썬에서는 함수 자체도 파라미터로 전달 가능

28 ‘*’, ‘**’ Variable arguments Non-keyworded keyworded

29 function is 1 st class Object

30

31 파이썬의 강력한 list 여러 개의 데이터를 하나의 변수로 접근하는 구조 ( 자료 구조 ) 파이썬은 다른 언어들과 달리 사용하기 편한 리스트를 기본적으 로 제공 타입이 없으므로 다양한 데이터를 리스트에 추가

32 키보드에서 숫자 입력 받아서 리스트에

33 리스트의 접근 –’[ ]’

34

35 리스트의 단점

36 강력하지만 제약 있는 tuple 동시에 여러 개의 데이터를 하나로 묶는 장치 불변 (immutable) 함수의 리턴 타입으로 tuple 을 사용 가능 ( 상당히 유용함 ) 데이터의 접근 시에는 인덱스 번호 이용

37 키 (key) 와 값 (value) 의 dictionary ‘{ }’ 를 이용한 표기 여러 종류의 데이터를 하나의 구조에 묶어두는 구조 객체개념과 연관시켜서 알아둘 것

38

39 객체지향 개념의 등장 데이터와 이를 사용하는 로직을 하나의 메모리로 구성

40 객체지향 패러다임 모든 현상은 객체들의 상호작용으로 이루어진다는 생각 객체는 개별적으로 데이터를 보관하며, 기능을 가진다는 생각 모든 객체는 책임과 역할을 가지며, 이를 연결해서 문제를 해결

41 클래스 ? 객체 ? 인스턴스 ? 클래스는 인스턴스 생성의 모델의 역할 인스턴스는 클래스 기반 언어에서 객체를 칭하는 용도로 사용 객체는 보다 광범위한 용도로 사용

42 파이썬의 클래스와 객체

43 객체들의 공통 속성 만들기

44 method( 기능 ) 추가하기

45 실습 로또 자판기 계산기 가까운 음식점 찾기

46 문제 국어영어수학과학선택 74658279 이공계 83776564 인문계 93929189 이공계 91565165 인문계 89866454 이공계 90765356 인문계


Download ppt "OSS 개발자포럼 2014. 피해갈 수 없는 자기소개 프로그램 개발을 잘 한다는 것은 무엇일까 ?"

Similar presentations


Ads by Google