파이썬의 변수..
이미 알고 있는 내용이라 넘어갈까 고민중..

간단한 계산이다

정확히는 L value와 R value를 알아야 하긴 하는데 기초니까..
프로그래밍에서 변수는 값을 저장하는 장소
변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨
컴퓨터는 기본적으로 폰 노이만 아키텍처를 가지고 있다
폰 노이만 아키텍처에서는 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우 그 정보를 먼저 메모리에 저장시키고 CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값전달


기본 자료형 (primitive data types)


이건 Integer로 선언된 변수다
해당변수의 타입을 알아 보려면
type(a)

이렇게 나온다
캐스트 연산자도 가능하다

형변환이 되었다.
하지만, 이것은 반환만 하는 캐스트 연산자(함수)이므로 실제 a의 데이터 타입은 int이다

형변환 상태로 넣고싶으면 그냥 대입 하자
실수형에서 정수형으로 형변환을 하면 소숫점 아래 자리는 다 버린다고 생각하자 (내림)

인덱싱
슬라이싱
리스트 연산
추가 삭제
메모리 저장 방식
패킹과 언패킹
이차원 리스트
list에 있는 값들은 주소(offset)을 가짐
-> 주소를 사용해 할단돈 값을 호출
list의 값들을 잘라서 쓰는 것이 슬라이싱
list의 주소 값을 기반으로 부분 값을 반환
cities = ['서울', '부산', '인천', '대구', '대전', '광주', '울산', '수원']
print(cities[0:6], " AND ", a[-9:1]) # a 변수의 0부터 5까지, -9부터 끝까지
print(cities[:]) # a 변수의 처음부터 끝까지
print(cities[-50:50]) # 범위를 넘어갈 경우 자동으로 최대 범위를 지정
print(cities[::2], " AND ", a[::-1]) # 2칸 단위로, 역으로 슬라이싱
color = ['red', 'blue', 'green']
color2 = ['orange', 'black', 'white']
print(color + color2) # 두 리스트 합치기
len(color) # 리스트 길이
color[0] = 'yellow' # 0번째 리스트의 값을 변경
print(color * 2) # color 리스트 2회 반복
'blue' in color2 # 문자열 'blue'가 color2 존재 여부 반환
total_color = color + color2
color.append("white")
를 하게 되면 해당 리스트에 "white"가 추가되고,
color.extend(["black", "puple"])
는 배열을 추가한다.
다양한 Data Type이 하나에 List에 들어감
a = ["color", 1, 0.2]
color = ['yellow', 'blue', 'green', 'black', 'purple']
a[0] = color # 리스트 안에 리스트도 입력 가능
print(a)
[['yellow', 'blue', 'green', 'black', 'purple'], 1, 0.2]
a =[1, 2, 3, 4, 5]
b = [2, 3, 4, 5, 6]
b = a;
이렇게 하면 b는 a와 같은 메모리 주소를 갖게 된다.
그래서 a를 변화시키면 b도 같이 변화 되고 b를 변화 시키면 a도 변화 시킨다
이게 내키지 않으면
[['yellow', 'blue', 'green', 'black', 'purple'], 1, 0.2]
a =[1, 2, 3, 4, 5]
b = [2, 3, 4, 5, 6]
b = a[:];
이렇게 하면 a안에 값들이 복사가 된다
kor_score = [49, 79, 20, 100, 80]
math_score = [43, 59, 85, 30, 90]
eng_score = [49, 79, 48, 60, 100]
midterm_score = [kor_score, math_score, eng_score]
print(midterm_score[0][2])
midterm_copy = midterm_score[:]
이렇게 복사를 하여도 one demention은 복사가 되지만 two demention은 복사가 안된고 주소를 같이 공유하게 된다
모든 차원을 카피 하고 싶으면
import copy
kor_score = [49, 79, 20, 100, 80]
math_score = [43, 59, 85, 30, 90]
eng_score = [49, 79, 48, 60, 100]
midterm_score = [kor_score, math_score, eng_score]
print(midterm_score[0][2])
midterm_copy = copy.deepcopy(midterm_score)
이렇게 라이브러리 호출과 함께 해당 함수를 쓰면 된다