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__()
: 파이썬에서 인스턴스 변수가 생성되는 곳
: 객체가 생성될 때 생성자가 자동 호출
: 파이썬에서는 클래스 당 하나의 생성자만 허용
: 기본 인자값을 사용하는 매개변수를 이용할 수 있음