IT/Python 15

[Python] 얕은복사, 깊은복사

1.1 얕은 복사와 깊은 복사 파이썬의 모든 변수는 해당 객체의 주소를 가지고 있다. a = 1 이라고 한다면 a라는 변수에 1이라는 값이 들어가는 것이 아니라, 1 이라는 객체를 생성한 후, a 는 1이란 객체의 주소를 저장하게 되는 것이다. (실제로도 1은 일반적으로 객체가 생성되어 있으며, 선언 시점에 객체가 생성되는 것은 아니라고 한다.) 일단 다음 그림을 보자. [ 그림 1-1 ]을 보면 알겠지만 변수 a 에 리스트 객체가 생성되고 두 번째 라인에서 b에 a 객체가 복사되는 것으로 생각할 수 있지만, 사실은 a 가 가르키고 있는 [1, 2, 3] 의 주소를 b 에 동일한 주소가 복사되는 것이다. (중요) 따라서 a 와 b는 동일한 리스트 객체를 공유하게 되는 것이다. 다음 그림을 보자. [ 그림..

IT/Python 2021.03.31

[Python] 사전

3.1 사전 사전(Dictionary)은 강력하고도, 편리한 자료구조이다. 키와 값의 쌍으로 구성되어 있으며, 아래와 같이 정의 가능하다. dict() 생성자를 사용하지 않고도 사전을 생성가능하다. 키 값을 이용하여 값을 가져올 수 있고, 인덱스는 지원하지 않으며, 없는 키를 사용하면 에러가 발생한다. 3.2 값 추가하기 사전에 새로운 값을 넣어보자. 아래와 같이 새로운 키와 값을 할당하면 되고, 변경도 같은 방법으로 하면 된다. 3.2 값 가져오기 사전의 값을 가져오기 위해 아래와 같이 items(), keys(), values() 메서드를 사용하면 된다. items() 는 사전의 모든 키와 값을 튜플로 묶어서 반환하며, keys() 는 키만을, values() 는 값만 반환한다. 원래 파이썬 2.x ..

IT/Python 2021.03.29

[Python] 튜플

2.1 튜플 튜플(tuple)은 리스트와 비슷하나 [ ] 대신 ( )로 묶어서 표현하며, 읽기 전용이다. 읽기 전용인 만큼 적용되는 함수도 리스트에 비해 적지만(count(), index()), 속도는 빠르다. 보이지는 않지만 튜플은 항상 같이 있다(?). 다음 그림과 같이 파이썬 내부에서는 알게 모르게 튜플이 사용된다. 여러 값을 다중 할당하는 것에도 튜플이 생략되어 있다고 생각하면 된다. 2.2 튜플에서 swap C 프로그래밍에서는 swap 을 하기 위해 임시 변수를 하나 더 선언하여 수행하지만 파이썬에서는 간단하게 해결할 수 있다. 위에서 공부했던 리스트, 세트, 튜플은 아래와 같이 list(), set(), tuple() 을 이용하여 언제든지 변환이 가능하다. 방금 나왔던 자료형들은 in 연산자를..

IT/Python 2021.03.28

[Python] 리스트

1.1 리스트 리스트는 좀 전(?)의 포스트에서 잠깐 나온적이 있지만, 이번에는 조금 더 들어가 보도록 하자. 여담으로 지금 보는 책이 500페이지가 넘는데 그 때까지 계속 하나하나 올릴 수 있을지도 걱정이다... 나 역시 조금씩 보면서 포스팅 하고 있는 중이라. 혹시라도 빠르게 배우고 싶은 신 분이 계신다면 다음 사이트를 추천합니다. 왕초보를 위한 Python 2.7 - http://wikidocs.net/read/book/136 다시 본론으로~ 리스트는 값이 나열이다. 배열처럼 순서가 있으며, 여러 종류를 담을 수 있다. 또한 0부터 시작하는 인덱스 기능이 있으며, 슬라이싱도 가능하다. 암튼 일단 그냥 해보자. [ 그림 1-1 ] 처럼 리스트를 하나 만들어 보았다. 허전하다... 추가 쫌! 해보자. ..

IT/Python 2021.03.26

[Python] 유니코드

1.1 유니코드 지금까지 문자열을 다루면서 영문과 한글 모두 사용하여 출력되는 것을 확인하였다. 그러나 다른 사람의 컴퓨터, 즉 다른 언어권이나 다른 운영체제에서도 동일하게 출력된다는 보장은 없다. 그 이유는 각 문자열을 표현하는 방식이 다양하기 때문인데, 이와같이 다양한 문자열 표현 방식을 인코딩(endoding) 이라고 한다. 세계의 모든 문자 코드를 일관된 방식으로 표현할 수 있는 체계를 만들자는 취지로 시작된 것이 바로 유니코드(unicode) 라고 한다. - 유니코드에 대해 자세히 알아보고 싶다면 홈페이지(http://www.unicode.org/) 를 방문하길. 대충 뭔소리냐 하면 다음 그림(?)을 보자. 자주 들어가는 구글이다. 익스플로러에서 '메뉴 -> 보기 -> 인코딩' 에서 일본어를 선..

IT/Python 2021.03.25

[Python] 변수 / 수치

1.1 변수명 파이썬에서 변수는 문자, 숫자, 밑줄(_)을 포함할 수 있다. 단! 숫자가 맨 앞에 와서는 안된다. 또한 대소문자를 구분하기 때문에 주의해야겠다. [그림 1-1]는 예약어로 변수명으로 사용할 수 없다. 아래와 같이 에러가 발생한다. str() 함수는 인자값을 문자열로 변환해주는 기능이 있는데 str을 변수로써 사용하면 다시 str() 함수의 기능을 사용할 수가 없다. 프로그래밍 경험이 있는 사람이라면 그냥 넘어갈 수 있는 치환연산자(=)는 일반적으로 "변수 = 값"의 형태로 사용되는데 다음과 같이 다른 형태로도 사용이 가능하다. 굳이 설명을 할 필요가 없을 듯 하다. 맨처음 ()을 튜플 이라 하고 []는 리스트라 한다. 리스트와 튜플은 파이썬의 자료형식 중 하나로 모든 자료형을 넣을 수가 ..

IT/Python 2021.01.24

[Python] 주석처리 / 숫자 계산

1.1 주석처리하기 파이썬 프로그램에서는 주석을 달 때 #을 사용한다. 즉, # 이후의 코드는 실행하지 않는다. 굳이 길게 설명하지 않도록 한다. #(샵)은 주석말고도 여러 가지가 있는데, 아래 [표 1-1] 처럼 실행 파일과 소스코드 인코딩을 명시하는 데 사용할 수 있다. #!/usr/bin/python # coding: latin-1 [표 1-1] [표 1-1]은 리눅스 환경에서 실행 파일 경로와 인코딩을 명시한 예이다. 소스 인코딩의 경우 두 번째 줄처럼 coding 지시자를 이용해 지정할 수 있고, 지정되어 있지 않은 경우에는 아스키가 기본 소스코드 인코딩으로 설정된다. 아래 [표 1-2] 와 같이 소스코드 인코딩은 -*-을 이용해서도 지정할 수 있다. # -*- coding: utf-8 -*- ..

IT/Python 2021.01.23
반응형