본문 바로가기

Python

파이썬 if/else문 우리는 살아가다 보면 어떤 조건이 충족되야 행동을 할 수 있는 경우가 있다. 예를들어 '100만원이 있으면 최신 GPU를 사겠다.'가 있을 수 있다. 이를 파이썬에서 표현하면 다음과 같다. money = 1e+6 # 100만원 if money >= 1e+6: print('최신 gpu를 산다.') else : print('돈을 더 번다.') 최신 gpu를 산다. 위에서 볼 수 있듯이 조건이 충족이 되면 if가 작동되고 그렇지 않은 경우 else 이하가 작동된다. 그리고 if와 else 모두 조건이 끝나면 콜론 (:)을 마지막에 넣어야 한다. 이것이 조건의 끝이 되는 부분을 명시해주기 때문이다. 다른 것으론 들여쓰기 (indentation)가 되어있는 것을 볼 수 있는데 파이썬은 if나 else에 들어갈 모.. 더보기
변수 (variable)와 카피 (copy) 변수 (variable)는 어떤 값을 저장하는 것이라고 생각하면 된다. 변수에 값이 정해지면 고유한 아이디로 컴퓨터 메모리에 저장된다. a = 'hi' id(a) # 1469665135856 b = a id(b) # 1469665135856 파이썬의 경우 새로운 변수 이름 (b)에 기존의 변수 (a)를 넣는 식으로 하면 동일한 메모리에 지정되는 특징이 있다. 그래서 메모리 아이디가 동일하게 나온다. 이것은 메모리를 효율적으로 쓰게 해주지만 거꾸로 리스트와 같은 것을 다룰 때 문제가 되기도 한다. a = [1,2,3] b = a # a[0]값 변화 a[0] = 4 a # [4,2,3] b # [4,2,3] a를 바꿨더니 b도 바뀌는 것을 볼 수 있다. 이러한 것을 막기 위해선 copy모듈을 사용해야한다. .. 더보기
불 (bool) 자료형 불 (bool) 자료형은 참 (True)과 거짓 (False)를 나타내는 자료형이며 값은 2가지만 있다. a = True b = False type(a) # type(b) # 불 자료형은 조건문에서 활용된다. 1 == 1 # True 1 > 2 # False 'a' in 'abcd' # True 'h' in 'abcd' # False 'a' in ['a','b','c','d'] # True 리스트/튜플/딕셔너리 등에 원소가 있을 경우 True이지만 없을 경우 False로 취급된다. 이는 조건문을 만들 때 유용하다 bool([]) # False bool([1,2,3]) # True bool({}) # False bool({1,2,3}) # True bool(None) # False bool('') # Fa.. 더보기
집합 (set) set은 집합에 관련된 것을 쉽게 처리하기 위한 자료형이다. a = set([1,2,3]) a # {1,2,3} b = set('hello') b # {'e','h','l','o'} set의 특징은 2가지 특징이 있다. 중복을 허용하지 않는다. 순서가 무시된다. (인덱싱/슬라이싱이 안됨) # 중복제거 a = [1,1,2,2,3,4] b = set(a) a # [1,1,2,2,3,4] b # {1,2,3,4} # 인덱싱이 안됨 a[0] # 1 b[0] # TypeError: 'set' object is not subscriptable # 인덱싱 하게 만드는 법 # 리스트나 튜플로 만들어줘야한다. c=list(b) c[0] # 1 d=tuple(b) d[0] # 1 교집합/차집합/합집합을 구하는 것은 다음과.. 더보기
딕셔너리 (dictionary) 딕셔너리는 key와 value로 구성되어 있다. R의 리스트와 비슷하다. 예를들어 지금 사용하는 컴퓨터의 구성 요소를 설명한다고 보자. 컴퓨터에는 CPU, GPU, RAM, 메인보드 등의 다양한 모델 정보가 있을 것이다. 리스트나 튜플은 단순한 나열만 가능할 것이지만 딕셔너리는 {key1:value1, key2:value2, ....}로 구성된다. # 모델명들 cpu = 'a1234' gpu = 'b1234' ram = '16gb' board = 'msi1234' # 리스트 [cpu, gpu, ram, board] # ['a1234','b1234','16gb','msi1234'] # 튜플 cpu, gpu, ram, board # ('a1234','b1234','16gb','msi1234') # 딕셔너리 .. 더보기
튜플 (tuple) 튜플은 리스트와 거의 비슷하지만 2가지 차이가 있다. 리스트는 [ ]으로 감싸지만 튜플은 ( )으로 한다. 리스트는 값을 수정할 수 있지만 튜플은 할 수 없다. a = () b = (1,) c = (1,2,3) d = 1,2,3,4 #리스트와 달리 괄호가 필요하지 않다. e = ('a','b',('abc','def')) 튜플은 리스트와 사용법이 거의 비슷하다 # 인덱싱 a = (1,2,'a','b','c') a[0] # 1 # 슬라이싱 a[:3] # (1,2,'a') # 덧셈 b = (3,4) a + b # (1,2,'a','b','c',3,4) # 곱셉 b * 3 (3,4,3,4,3,4) # 원소 위치 찾기 c = 'a','b','c','d','a' c.index('a') # 0 더보기
리스트 (list) 수정하기 리스트 값을 수정할 때는 인덱싱을 하거나 del/append를 이용해 삭제/추가할 수 있다. 또한 sort와 reverse로 정렬할 수 있다. # 인덱싱 a = [1,2,3] a[1]=4 a #[1,4,3] # del함수 a = [1,2,3] del a[2] a # [1,2] a = [1,2,3,4,5] del a[1:] a # [1] a = [1,2,3,4] a.append(5) a # [1,2,3,4,5] # 정렬 a = [1,10,9,7] a.sort() a # [1,7,9,10] # 반대로 정렬 a.reverse() a #[10,9,7,1] 또한 insert기능으로 지정된 위치에 새로운 원소를 삽입할 수도 있다. 그리고 remove를 통해 지정된 값에 해당하는 원소를 삭제할 수 있다. 단 remo.. 더보기
리스트 (list) 자료형 파이썬은 리스트 자료형이 있으며 이것은 R의 벡터와 리스트와 비슷한 성격을 띤다. 리스트는 어떤 자료들을 묶어서 사용할 때 용이하다. # 다양한 형태의 리스트 a = [] # 빈 리스트. b = list() #a와 동일하다 c = ['life','is','too','boring'] d = [1,2,'life','is'] e = [1,2,['life','is']] 파이썬은 인덱싱과 슬라이싱을 활용해 리스트 내의 원소를 추출/사용할 수 있다. 여기서 파이썬은 인덱스를 0부터 시작한다. a = [1,2,3,4] a[0] #1 a[0]+a[3] #1+4=5 만일 마지막 원소를 뽑고 싶을 때는 -1부터 시작하면 된다. -0은 0이라서 이렇게 한거로 보인다. a=[1,2,3,4] a[-1] # 4 리스트의 슬라이싱.. 더보기