Variable¶
가장 기초적인 프로그래밍 문법 개념
데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름
- 프로그래밍에서는 변수는 값을 저장하는 장소
- 변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨
메모리와 변수¶
- 변수: 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간
- 선언 되는 순간 메모리 특정영역에 물리적인 공간이 할당됨
- 변수에는 값이 할당되고 해당 값은 메모리에 저장됭
- A=8의 의미는 "A는 8이다"가 아닌 A라는 이름을 가진 메모리 주소에 8을 저장하라
기본 자료형¶
In [1]:
# integer로 선언
a=1
b=1
print(a,b)
print(type(a))
print(type(b))
In [2]:
# float형
a=1.5
b=3.0
print(type(a),type(b))
In [3]:
# string형
a='first'
b='second'
print(type(a),type(b))
In [4]:
# boolean형
a=True
b=False
print(type(a),type(b))
- 파이썬에서는 타입을 적어주지않아도 알아서 타입을 인식.
- 코드 실행시점에 데이터의 Type을 결정하는 방법(Dynamic Typing)
연산자(Operator)와 피연산자(operand)¶
In [5]:
# 제곱 연산
a=5
a**3
Out[5]:
In [6]:
# 나머지 연산
10%3
Out[6]:
In [7]:
# 증가연산
a=2
a=a+1
print(a)
a+= 1
print(a)
데이터 형 변환¶
In [8]:
a=10
print(int(a))
print(float(a))
print(str(a))
In [9]:
a=10.7
b=10.3
# 정수형으로 변환
a=int(a)
b=int(b)
print(a)
print(b)
- 실수형에서 정수형으로 형 변환시 소수점 이하 내림
In [10]:
a='76.3' # a에문자열76.3을할당, ''은문자열을의미
b=float(a) # a를실수형으로형변환후b에할당
print(a)
print(b)
In [11]:
print(a+b) # 문자열과 숫자열의 덧셈이 불가능하여 에러 발생
type()¶
In [12]:
a=int(10.3) # a는정수형으로10.3을할당
b=float(10.3) # b는실수형으로10.3을할당
c=str(10.3) # c는문자열으로10.3을할당
# 타입확인은 type함수 사용
print(type(a))
print(type(b))
print(type(c))
인덱싱(Indexing)¶
- list에 있는 값들은 주소(offset)를 가짐
- 주소를 사용해 할당된 값을 호출
In [13]:
colors =['red','blue','green']
print(colors[0])# red
print(colors[2])# green
print(len(colors))# len은list의길이를반환
슬라이싱(Slicing)¶
- list의 값들을 잘라서 쓰는 것이 슬라이싱
- list의 주소 값을기반으로 부분 값을 반환
In [14]:
cities =['서울','부산','인천','대구','대전','광주','울산','수원']
print(cities[0:6]," AND ",cities[-9:])# a 번수의0부터5까지, -9부터끝까지
print(cities[:])# a변수의처음부터끝까지
print(cities[-50:50])# 범위를넘어갈경우자동으로최대범위를지정
print(cities[::2]," AND ",cities[::-1])# 2칸단위로, 역으로슬라이싱
In [15]:
color =['red','blue','green']
color2 =['orange','black','white']
print(color +color2)# 두리스트합치기
print(len(color))# 리스트길이
color[0]='yellow'# 0번째리스트의값을변경
print(color *2)# color 리스트2회반복
In [16]:
'blue' in color2# 문자열‘blue‘가color2 존재여부반환
Out[16]:
In [17]:
total_color=color +color2
total_color
Out[17]:
append, extend, insert, remove, del 등활용¶
In [18]:
color.append("white") # 리스트에“white” 추가
color
Out[18]:
In [19]:
color.extend(["black","purple"])# 리스트에새로운리스트추가
color
Out[19]:
In [20]:
color.insert(1,"orange")# 1번째주소에“orange” 추가
color
Out[20]:
In [21]:
color.remove("white")# 리스트에“white” 삭제
color
Out[21]:
In [22]:
del color[0]# 0번째주소리스트객체삭제
print(color)
리스트 메모리 저장 방식¶
- 파이썬은 해당 리스트 변수에는 리스트 주소값이 저장됨
In [23]:
a=[5,4,3,2,1]
b =[1,2,3,4,5]
b =a
print(b)
In [24]:
a.sort()
print(b)
In [25]:
b =[6,7,8,9,10]
print(a,b)
In [26]:
b=a[:]
a[2]=999
print(a,b)
- 만약 복사를 하고 싶으면 전체 슬라이싱을 통해서 복사 가능.
패킹과 언패킹¶
- 패킹: 한 변수에 여러 개의 데이터를 넣는 것
- 언패킹: 한 변수의 데이터를 각각의 변수로 반환
In [27]:
t =[1,2,3] #1,2,3을변수t에패킹
a ,b ,c =t #t에있는값1, 2, 3 을변수a, b, c에언패킹
print(t,a,b,c) # [1, 2, 3] 1 2 3
이차원 리스트¶
- 리스트 안에 리스트를 만들어 행렬(Matrix) 생성
In [28]:
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)
print(midterm_score[0][2])
이차원 리스트를 복사하는 방법?¶
In [29]:
midterm_copy=midterm_score[:]
midterm_copy
Out[29]:
In [30]:
# 여기서 안에 있는 값을 바꾸게 되면
midterm_score[0][1]=99999
print(midterm_score)
print(midterm_copy)
- 복사된 값도 바꾼것을 확인 할 수 있다.
이 문제를 해결하려면?¶
In [31]:
import copy
In [32]:
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]
In [33]:
midterm_copy=copy.deepcopy(midterm_score)
In [34]:
midterm_score[0][0]=9999
print(midterm_score)
print(midterm_copy)
'AI > 이론' 카테고리의 다른 글
Numpy part II (0) | 2021.01.25 |
---|---|
Numpy part I (0) | 2021.01.25 |
Python data handling (0) | 2021.01.22 |
File & Exception & Log Handling (0) | 2021.01.22 |
Module and Project (0) | 2021.01.21 |
Python Object Oriented Programming (0) | 2021.01.21 |
pythonic code (0) | 2021.01.20 |
python data structure (0) | 2021.01.20 |