> Variables
- 가장 기초적인 문법
- 데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름
- 변수 = 값 : 변수에 값을 저장한다.
- 변수는 값을 저장하는 장소
- 변수는 메모리 주소를 가지고 있고, 변수에 들어가는 값은 메모리 주소에 할당됨
Cf) 컴퓨터의 구조 - 폰 노이만 아키텍쳐
- 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행하면, 메모리에 저장하고 시작한다고 생각하자.
- 선언되는 순간 메모리 특정 영역에 물리적인 공간이 할당된다.
- 변수에 값이 할당되고, 해당 값은 메모리에 저장됨.
- A=8의 의미는 'A라는 이름을 가진 메모리 주소에 8을 저장하라'라는 말
> 변수 이름 작명법
- 알파벳, 숫자, 언더스코어(_)로 선언 가능
- 변수명은 의미 있는 단어로 표기하는 것이 좋다.
- 변수명은 대소문자가 구분된다.
- 특별한 의미가 있는 예약어는 쓰지 않는다. Ex) print, for, else 등
> Basic Operation (간단한 연산)
- 복잡한 프로그램을 작성하기 앞서 간단한 사칙연산과 문자열 처리 등의 기초적인 연산을 알아야 함
- 기본 자료형, 연산자와 피연산자, 데이터 형변환
1) 기본 자료형 (Promitive data types)
- Dynamic Typing : 코드 실행 시점에 데이터의 Type을 결정하는 방법
- 인터프리터가 알아서 데이터 타입을 판단해서 결정함
2) Operator, Operand
- +, -, /, * 같은 기호들을 연산자라고 한다.
- 연산자에 의해 계산이 되는 숫자들은 피연산자라 칭함
- 문자간의 연산(+)도 가능한데, Concatenate라고 함
- 증가 연산은 +=, 감소 연산은 -=, 곱 연산 *=, 나누기 연산 /= 도 가능함
3) 데이터 형변환
- float - int 변경 가능
- float(a), int(a) : 실수형에서 정수형으로 변환할 때는, 소숫점은 버림
- type(a)는 a의 데이터 타입이 무엇인지 알려줌
Cf) 컴퓨터가 이진수를 쓰는 이유
- 컴퓨터는 실리콘이라는 재료로 만든 반도체로 구성됨
- 반도체는 특정 자극을 줬을 때 전기를 통할 수 있게 하는 물질
- 도체와 부도체에 반해 반도체는 전류의 흐름의 제어가 가능함
- 전류가 흐를 때 1, 흐르지 않을 때 0으로만 숫자를 표현할 수 있음
- 그래서 이진수를 사용함
> List
- 100개의 자료를 100개의 변수를 정의해서 쓰는 것은 매우 비효율적이라서
- 리스트가 탄생하였다고 생각하면 좋을 것 같다.
- List 또는 Array : 시퀀스 자료형으로서, 여러 데이터들의 집합이다.
- int, float 같은 다양한 데이터 타입이 포함될 수 있다.
- 인덱싱, 슬라이싱, 리스트 연산 등 특징이 매우 많음
1) 인덱싱(Indexing) : 리스트에 있는 값들은 주소(Offset)을 가짐, 주소를 사용해 할당한 값을 호출함
- 0부터 시작하는 index
2) 슬라이싱(Slicing) : 리스트의 값들을 잘라서 쓰는 것이 슬라이싱
- 리스트 주소값을 기반으로 부분 값을 잘라서 사용하는 것 : 끝 주소 바로 앞까지만 슬라이싱
- 3번째 값이 -1이면 역으로 차례대로 슬라이싱, 2이면 2칸씩 띄엄띄엄 슬라이싱 한다고 생각하면 됨
3) Concatenation, is_in, 연산 함수들
- 리스트 + 리스트 : 리스트가 하나로 합쳐짐
- 리스트 * 3 : 리스트 3개가 반복되서 하나로 합쳐짐
- 요소 in 리스트 : 해당 요소가 리스트 안에 있는지 True or False
- append : 오른쪽 끝에 추가
- extend : 인덱스에 추가, 인덱스 없으면 오른쪽 끝에 추가
- remove, del : 요소 삭제
4) 다양한 Data Type이 하나에 List에 들어감
- 리스트, 튜플 등 모두 가능
- 데이터 타입이 여러가지여도 가능 : 하나의 리스트에 숫자, 문자, 리스트 모두 다 저장 가능
5) 정렬 : sort(), sorted()
- 리스트.sort() : 정렬된 상황이 그대로 저장됨
- sorted(리스트) : 정렬 결과만 보여주고 리스트 자체는 바뀌지 않음
6) 패킹, 언패킹
7) 리스트 안에 리스트를 만들어 행렬(Matrix) 생성
8) Deepcopy
- 리스트의 메모리 구조가 다른 자료구조와 다르기 때문에, Deepcopy 개념 알면 좋음
- import copy -> copy.deepcopy(list)로 카피해서 요소 내용을 바꿔주는 것이 좋다.
Reference
'Data Science > Boostcourse_coachingstudy' 카테고리의 다른 글
Conditionals and Loops (0) | 2022.01.14 |
---|---|
Function and Console I/O (0) | 2022.01.14 |
Python coding environment (Interpreter, Code Editor) (0) | 2022.01.14 |
Introduction to Python (0) | 2022.01.14 |
Basic computer class for newbies (0) | 2022.01.14 |
댓글