반응형

Python 29

[파이썬 기초] 파이썬 문자열(1) -문자열 생성

문자열은 파이썬에서 아주 중요한 위치를 차지한다. 문자열을 생성하는것 부터 차근차근 살펴보자. 문자열 생성 : 단일인용부호('), 이중인용부호("), 단일인용부호 세개('''), 이중인용부호 세개(""") 로 앞뒤를 감싸준다. >>> 'abc' 'abc' >>> "abc" 'abc' >>> '''abc''' 'abc' >>> """abc""" 'abc' 네개 중 어떤것을 사용해서 만들어도 인터프리터는 같게 인식한다. 출력이 'abc'로 동일하다. 이제 'abc'는 'abc'라는 문자열로 생을 마감할 것이다. 한번 만들어진 문자열은 불변하기 때문이다. 단일인용부호나 이중인용부호 중 하나를 선택하면 될텐데, 왜 둘다 되게 했을까? 그건 문자열 중간에 단일인용부호가 들어가면 이중인용부호로 감싸주고, 반대의 경..

IT 2018.11.23

[파이썬 기초] 스택과 큐의 기능을 한번에 deque

deque는 스택과 큐의 기능을 모두 가진 객체로 출입구를 양쪽에 가지고 있다. 스택처럼써도 되고, 큐처럼 써도 된다. 여러가지 메서드를 이용해서 이런 기능을 구현한다. 먼저 deque를 만들어보자 >>> from collections import deque >>> dq = deque('love') >>> dq deque(['l', 'o', 'v', 'e']) 문자열을 이용해 deque를 만들면 각 문자가 요소로 된 리스트 형태의 deque가 만들어진다. 1. 스택 구현 : append(), pop() 스택은 마지막(오른쪽끝)에서 입출력한다. 입력시에는 append() 메서드를 이용하고, 출력시에는 pop()을 이용한다. >>> dq.append('m') # 오른쪽 끝에 항목추가 >>> dq deque(..

IT 2018.11.23

[파이썬 기초] 순서지정된 딕셔너리 OrderedDict()

파이썬 딕셔너리는 순서를 관리하지 않는다. 내가 a, b, c 순으로 키를 입력했다고해서, 출력 시 a, b, c로 출력되지 않는다는 말이다. 진짜 그런지 딕셔너리를 생성해 보았다. >>> random_dict = dict() >>> random_dict['a'] = 1 >>> random_dict['b'] = 2 >>> random_dict['c'] = 3 >>> random_dict {'a': 1, 'b': 2, 'c': 3} 순서대로 출력된다. 조금만 더 넣어보자. >>> random_dict['pros'] = 4 >>> random_dict['cons'] = 5 >>> random_dict {'a': 1, 'b': 2, 'c': 3, 'pros': 4, 'cons': 5} 계속 순서대로 출력된다...

IT 2018.11.22

[파이썬 기초] Counter를 이용한 항목 계산

파이썬에서 항목의 개수를 셀때 사용하는 클래스로 Counter라는게 있다. 리스트나 셋을 인자로 넘기면 각 항목을 키로 해서 개수를 알려준다. 기본사용법은 이렇다. >>> from collections import Counter >>> letters = 'bbibbi' >>> c = Counter(letters) >>> c Counter({'b': 4, 'i': 2}) 깔끔하지 아니한가? 항목의 수를 세기 위해 키값을 초기화하고, 키가 있으면 1증가시키고, 루프돌고... 그런거 없이 Counter만 쓰면 답이 딱 나온다. 출력순서도 값이 큰것부터 내림차순으로 나온다. >>> Counter('abbcccdddd') Counter({'d': 4, 'c': 3, 'b': 2, 'a': 1}) >>> Count..

IT 2018.11.22

[파이썬 기초] 딕셔너리 값 가져오기 get(), setdefault()

파이썬 딕셔너리에서 키에 해당하는 값을 가져오려고 하면 주로 아래와 같이 사용한다. >>> week_dict = dict() >>> week_dict['Mon'] = '맑음' >>> week_dict['Tue'] = '구름' >>> week_dict['Sun'] = '비' >>> week_dict {'Mon': '맑음', 'Tue': '구름', 'Sun': '비'} >>> >>> weather = week_dict['Sun'] >>> weather '비' week_dict['Sun'] 을 실행하면 'Sun' 키에 대한 값 '비'를 가져온다. 그런데 딕셔너리에 없는 값을 지정하면 어떻게될까? 아래와 같이 예외가 발생한다. >>> week_dict['Fri'] Traceback (most recent cal..

IT 2018.11.21

[파이썬 기초] print() 함수에서 % 와 format()를 사용하여 서식에 맞게 출력(1)

%와 format()함수는 문자열을 형식에 맞게 출력할 수 있는 방법입니다. print() 함수와 같이 사용을 많이 하기 때문에 print()함수 출력법에서 자주 설명되고 있습니다. 예전에는 %를 사용했으나, format()을 사용하는것이 더 직관적이기 때문에 format()을 더 권장하고 있습니다. 예제를 살펴보면서 둘을 비교해 보겠습니다. 1. 순서대로 출력 문자열 'first'와 'second'를 출력하는 상황입니다. 인자로 ("first", "second")를 주면 순서대로 %와 {}에 매칭되어 출력됩니다. 2. 출력순서 조정 위 예제에서 인자는 ("first", "second")를 주고, 'second first'로 출력하고 싶으면 어떻게 해야 할까요? 아쉽게도 %를 이용해서는 이 문제를 해결할..

IT 2018.11.02

[파이썬 기초] print() 함수

파이썬 print() 함수에 대해 알아보겠습니다. 여기서는 파이썬 3를 기준으로 설명하겠습니다. print() 함수는 가장많이 접하게 되는 함수입니다. 파이썬 개발환경을 셋팅하고 가장먼저 사용하는것도 print() 함수를 이용해 'hello world'를 출력하는 것이죠. 오늘 알아볼 내용은 다음과 같습니다. 1. 문자열 출력 2. 여러개의 문자열 출력 3. % 서식을 이용한 출력 1. 문자열 출력 print() 함수에 인자로 문자열을 주면 문자열을 출력합니다. 문자열은 쌍따옴표(") 나 홑따옴표(')를 사용하면 됩니다. 파이썬에서는 쌍따옴표와 홀따옴표를 동일하게 처리합니다. 중간에 홑따옴표를 넣어야 되는 상황이면 쌍따옴표로 감싸주고, 반대의 경우에는 반대로 하시면 됩니다. 위 예에서 쌍따옴표안에 다시 ..

IT 2018.11.02

[파이썬 기초] 파일 입출력(open(), write(), read())

1. 이론 파이썬을 공부하면서 가장 마음에 들었던게, 텍스트 파일을 정말 쉽게 처리한다는 것이었습니다. 파일생성, 읽기, 쓰기 작업이 단 몇줄만에 처리가 되는게 신기했었죠. 간단하게 예제를 보도록 하겠습니다. 먼저 'dongdongfather' 라는 문자열이 저장된 'letters.txt' 파일을 만들어보겠습니다. f = open('letters.txt','w') f.write('dongdongfather') f.close() 정말 간단하죠? f = open('letters.txt','w') 이 문장이 실행되면 현재 디렉토리에 'letters.txt'파일이 있는지 살펴보고, 있으면 파일을 열고 없으면 'letters.txt' 파일을 만듭니다. 두번째 인자인 'w'는 쓰기모드로 열겠다는 의미입니다. 모드 ..

IT 2018.10.29

[파이썬] 맥에서 파이썬 오라클 연동 오류(cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded)

빨리보기 1. oracle instant client 설치 2. oracle instant client 폴더 안에 있는 라이브러리를 ~/lib 폴더나 /usr/local/lib 폴더로 복사 3. 파이썬 프로그램 재실행 상세보기 파이썬의 PyQt5 패키지를 이용해서 윈도우 프로그램을 만들어보고 있습니다. PyQt5의 튜토리얼을 참고하면서 그럭저럭 잘 진행이 돼 왔는데, 오라클 데이터베이스와 연동하는 부분에서 문제가 발생했습니다. cx_Oracle 패키지를 이용해서 연결을 하는데, 아래와 같은 에러가 계속 발생하더라구요 별로 어려운 문장도 아닌데, 64bit라는 것만 눈에 뙇 들어오더라구요. 그래서 아키텍처가 안맞나 싶어서 확인을 해봤습니다. python, anaconda, oracle instant cli..

IT 2018.09.21
반응형