Python Programming [Day 1_1]

 Published On

Python 4일만에 뽀개기 - Day 1_1

1. 스크립트 언어 
   : 소스코드를 컴파일하지 않고 인터프리터로 소스코드를 한줄 한줄 읽어 실행
   : 컴파일 과정 없이 바로 실행, 결과 확인
   : 배우기 쉽고 빠른 속도로 코딩
   : 스크립트 엔진이 포팅되어 모든 운영체제에서 실행 가능
   : 컴파일 언어보다 보통 실행 속도 느림
   : Unix Shell script, Python, Javascript, Perl, Ruby, PHP, JSP

2. 파이썬
   : Guido가 개발
   : 인터프리터 언어
   : 객체지향 프로그래밍 언어
   : 동적 데이터 타입 지원
   : 간단하고 쉬운 문법 - 들여쓰기 중요
   : 내장 객체 자료형 제공
   : 메모리 자동 관리
   : 방대한 라이브러리 지원(머신 러닝, 데이터 분석)
   : 플랫폼 독립적인 언어

3. 프로그래밍 스타일
   : 프로그램을 작성하는 방식과 관련된 규칙/규약
   : 가독성을 높임
   : 다른 사람들이 짠 코드를 읽고 이해하기 쉬움

4. 프로그래밍 오류
   : 문법 오류(Syntax error)
   : 실행 시간 오류(Runtime error) - 실행 불가능한 연산 존재
   : 논리적 오류(Logic error)

5. 식별자
   : 변수와 함수 등의 항목들을 서로 구별할 수 있도록 해주는 이름
   : 식별자는 키워드(예약어)가 될 수 없다
   : 대문자와 소문자를 구분한다
   : 길이 제한 없다
   : 카멜 표기법

6. 변수, 할당문
   : 변수 - 메모리에 저장된 값을 참조하는 이름
   : 할당문 - 어떤 값을 1개의 변수에 할당하는 명령문

7. 이름 상수
   : 영구적인 데이터
   : 대문자로 사용한다
   : 반복을 피할 수 있다
   : 상수 값을 변경해야 하는 경우, 한 번만 변경하면 된다
   : 서술 이름을 사용하여 읽기 쉬움

8. 확장 할당 연산자(+= 와 같은 연산자)

9. 소프트웨어 개발 과정
   : 요구 명세 - 사용자와 개발자와의 밀접한 상호작용
   : 시스템 분석 - 시스템의 입출력을 확인하는 단계
   : 시스템 설계 - 입출력을 얻기 위한 프로세스를 설계하는 단계
     -> 시스템 분석/시스템 설계 ==> 입력, 처리, 출력
   : 구현 - 시스템 설계를 프로그램으로 전환하는 단계
   : 테스팅 - 코드가 요구 명세와 일치하는지, 버그가 제거되었는지 확인하는 단계
   : 배포 - 소프트웨어를 사용 가능하도록 만들어 주는 단계 
   : 유지보수 - 소프트웨어 업데이트, 기능 개선

10. 파이썬 내장 함수
   : 예약어와는 조금 다름(import, print ...)
   : max, min, abs, round, pow

11. math 모듈
   : fabs(x) - x의 절대값을 실수로 반환
   : ceil(x) - x의 가장 가까운 정수로 올림하여 반환
   : floor(x) - x의 가장 가까운 정수로 버림하여 반환
 
12. 문자열 
   : 연속된 문자
   : 문자에 대한 별도의 데이터 타입이 없음
   : 작은따옴표나 큰따옴표

13. 아스키코드와 유니코드
   : 아스키코드(대문자, 소문자, 숫자, 구두기호, 제어문자)
   : 유니코드(전 세계 문자)

14. 줄 바꿈 없이 출력
   : print("문자열", end = '\n') -> 기본적으로 \n 포함
     -> \n를 지우면 줄 바꿈 없이 출력

15. 서식 정렬
   : 기본 오른쪽 정렬
   : < 기호 -> 왼쪽 정렬

16. 정수 서식
   : d(10), x(16), o(8), b(2)

17. 문자열 서식 정렬
   : 기본 왼쪽 정렬
   : > 기호 -> 오른쪽 정렬

18. 객체와 메소드
   : 파이썬에서 모든 데이터는 객체이다 
   : 각 객체는 id와 type을 갖는다
   : id - 자동으로 할당되는 중복되지 않는 정수값, 객체의 id는 변하지 않음, 
          프로그램이 실행될 때마다 다른 id값을 할당할 수 있음
   : type - 객체의 값에 따라 결정
            클래스에 의해 정의됨
          - str, int, float
   : 메소드 lower() - 소문자, upper() - 대문자, strip() - 공백 삭제

19. bool타입
   : 0이외의 모두 True, 0만이 False

20. randint(a,b) => a <= x <= b
    randrange(a,b) => a <= x < b
    random() => 0 <= x < 1.0 (실수)

21. 연산자 결합
    : 2진 연산자는 왼쪽 결합
    : 할당 연산자는 오른쪽 결합

22. 감시값
    : 반복의 끝을 의미하는 입력값 
    : 감시_제어 루프

23. range(a,b) => a <= x < b
    range(a) => 0 <= x < a
    range(a,b,step) => step > 0; a에서 step만큼 증가 < b
                       step < 0; a에서 step만큼 감소 > b

24. 함수
    : 형식 매개변수 - 함수 헤더 내의 변수
    : 실매개변수(인자) - 함수가 호출될 때 매개변수로 전달되는 값
    : 재사용, 정보 은닉, 복잡도 감소
    : 값을 반환하지 않으며 기본 None 반환
 
25. 위치 인자와 키워드 인자
    : 위치 인자 - 위치에 따른 인자 전달
    : 키워드 인자 - name = value 형태로 인자 전달
    : 혼용 가능 - 위치 인자는 키워드 인자가 나온 이후 사용 불가

26. 참조값에 의한 인자 전달
    : 함수가 호출될 때 인자의 값(객체의 참조값)이 매개변수로 전달
    : 객체에 대한 변수는 실제로 그 객체에 대한 참조값을 가지고 있음
    : 인자가 숫자나 문자열이면 내부의 매개변수가 수정되어도 인자의 값 영향 없음

27. 코드 모듈화
    : 코드 중복 줄이고 코드 재사용
    : 관리 및 디버깅 용이
    : 파이썬 모듈 - random, math, time
      -> 재사용을 위해 프로그램 내부로 import 할 수 있음
      -> 하나의 모듈에 하나 이상의 함수를 가질 수 있으며, 
         모듈 내부 함수는 서로 다른 이름을 가져야한다
    : from 모듈 import 클래스 or 함수
      import 모듈 -> 모듈.함수() 이런식으로 작성

28. 변수 스코프
    : 스코프 - 변수가 참조될 수 있는 프로그램의 영역
    : 지역변수 - 함수 내부에서 생성된 변수, 함수 내부에서만 접근 가능
    : 전역변수 - 모든 함수의 외부에서 생성, 모든 함수에서 접근 가능

29. 다중값 반환하기
    : 동시 할당으로 전달해야함 -> 아니면 튜플이 생김

30. 객체
    : 유일한 식별자, 상태 ,행동을 포함
    : 객체의 상태(data field) = 인스턴스 변수
    : 객체의 행동(method) = 인스턴스 메소드

31. 클래스
    : 클래스 내부에는 인스턴스 변수와 메소드 정의 -> 클래스의 멤버
    : 인스턴스 변수 생성 - self.변수
    : self - 객체 자신을 가리키는 변수, 
             클래스 정의에 포함된 객체의 멤버에 접근 가능
             생성자, 변수, 함수 모두 다 써주자

32. 생성자
    : 객체가 생성될 때 객체를 기본값으로 초기화하는 특수한 메소드 
    : __init__()
    : 파이썬에서 인스턴스 변수가 생성되는 곳
    : 객체가 생성될 때 생성자가 자동 호출
    : 파이썬에서는 클래스 당 하나의 생성자만 허용
    : 기본 인자값을 사용하는 매개변수를 이용할 수 있음

Tags: Language

Comments:

comments powered by Disqus

© 2021 - MH.Ji. All rights reserved
Built using Jekyll