본문 바로가기
Data Science/Boostcourse_coachingstudy

Variable & List

by 루크 Luke 2022. 1. 14.
반응형

> 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

댓글