변수란?
프로그래밍에서 변수는 값을 저장하는 장소이고 메모리 주소를 가지고 변수에 들어가는 값은 메모리 주소에 할당된다.
이것은 폰 노이만(John von Neumann) 아키텍처를 기반한다.
폰 노이만 아키텍처에서는 사용자가 컴퓨터에 값을 입력했을 때 그 값을 먼저 메모리에 저장시키고 CPU가 순차적으로 해석하고 계산하여 사용자에게 결과값을 전달하는 순서이다.
조금 더 이해하기 쉽게 다음과 같이 시각화할 수 있다.
다시 말하면 메모리에 값이 들어가고 주소가 할당되며 해당 주소에 변수 값이 지정된다고 할 수 있다.
변수 이름의 작명법은 다음과 같은 내용이 있다.
1. 알파벳, 숫자, 언더스코어(_)로 선언 가능
2. 변수명은 의미 있는 단어로 표기하는 것이 좋음
3. 변수명은 대소문자가 구분
4. 특별한 의미가 있는(for, if, else) 예약어는 쓰지 않음
기본 자료형
파이썬의 데이터 유형은 다음과 같이 구성할 수 있다.
Dynamic Typing
예를 들어 Java나 C언어와 같은 경우 다음과 같이 변수에 자료형을 지정해주어야한다.
Integer firstInteger = 100;
하지만 python은 자료형을 지정해주지않아도 dynamic하게, 다시 말해 자동으로 지정해준다.
first_integer = 100
연산자
연산자의 종류로는 간단히 다음 링크에서 확인해 볼 수 있다.
https://docs.python.org/ko/3.7/library/operator.html#mapping-operators-to-functions
데이터 형 변환
1. int()를 사용하여 정수형으로 변환
2. float()를 사용하여 실수형으로 변환
3. str()을 사용하여 문자형으로 변환
4. bool()을 사용하여 boolean값으로 변환
여기서 데이터 형에 따라 정수형 - 실수형 간의 연산은 안되고 숫자 - 문자간의 연산도 안되지만 문자 - 문자간의 연산은 가능하다.
데이터 형을 확인하기 위해서는 type() 함수를 사용하면 된다.
리스트(List)
리스트는 다양한 데이터 타입을 가지는 값들의 집합이다.
colors = [‘red’, ‘blue’, ‘green’]
위와 같이 표현할 수 있으며 인덱싱, 슬라이싱, 리스트 연산, 추가, 삭제가 가능하다.
# 인덱싱
a = ['a', 'b', 'c']
print(a[0]
# 슬라이싱
b = [1, 2, 3, 4, 5, 6]
print(b[0:6]) #0부터 5까지 슬라이싱
print(b[:]) #처음부터 끝까지
print(b[-50:50]) #범위를 넘어가면 자동으로 최대 범위를 지정
print(b[::-1]) #거꾸로 반전시킨 것과 동일
#리스트 연산
print(a + b)
len(b) #리스트 길이
print(b * 2) #리스트 b를 2회 반복
1 in b #숫자 1이 b에 존재하는지 여부 확인
# 추가와 삭제
b.append(10) #숫자 10 추가
b.extend([1, 3]) #새로운 리스트 추가
b.insert(0, 'add') #0번째 주소에 'add'추가
또한 리스트는 변수 값을 하나의 값으로서 가질 수 있으며 메모리에 저장할 때 리스트 변수에 주소값이 할당된다.
리스트는 패킹과 언패킹을 할 수가 있는데 패킹은 리스트와 같이 한 변수에 여러 개의 데이터를 넣는 것을 말하고 언패킹은 다음과 같이 한 변수의 데이터들을 각각의 변수로 반환하는 것을 말한다.
a = [1, 2, 3]
a, b, c = t
또한 다음과 같이 리스트 두 개를 중첩하여 사용하면 행렬(Matrix)를 생성할 수 있다.
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
c = [9, 10, 11, 12]
matrix = [a, b, c]
'Boostcamp AI Tech' 카테고리의 다른 글
[Boostcamp Day-2] AI Math - 확률론 (0) | 2021.08.03 |
---|---|
[Boostcamp Day-2] AI Math - 딥러닝 학습방법 (0) | 2021.08.03 |
[Boostcamp Day -1] Python - 코딩 환경 (0) | 2021.08.02 |
[Boostcamp Day-1] AI Math - 경사하강법 (0) | 2021.08.02 |
[Boostcamp Day-1] AI Math - 행렬이 뭐에요? (0) | 2021.08.02 |