본문 바로가기

Python

[데이터 처리] 다양한 형태로 리스트 변환 [데이터 처리] 다양한 형태로 리스트 변환 분 리스트를 초 리스트로 변환 >>> mins=[1,2,3] >>> secs=[m*60 for m in mins] # 분 값에 60을 곱해주면 초 값이 나옵니다. >>> secs [60, 120, 180] 미터를 피트로 변환 >>> meters=[1,10,3] >>> feet=[m*3.281 for m in meters] >>> feet [3.281, 32.81, 9.843] 소문자를 대문자로 변환 >>> lower=["I", "don't", "like", "spam"] >>> upper=[s.upper() for s in lower] # upper() 메서드를 사용합니다. >>> upper ['I', "DON'T", 'LIKE', 'SPAM'] sanitize.. 더보기
[데이터 처리] 지능형 리스트 [데이터 처리] 지능형 리스트 리스트를 다른 리스트로 변환 할 때 4단계를 따릅니다. 1, 변환된 데이터를 보관할 리스트를 새로 만듭니다. 2. 원래 리스트의 모든 데이터 항목을 나열합니다. 3. 나열하면서 각 데이터 항목을 변환합니다. 4. 변환된 데이터를 새 리스트에 추가합니다. >>> clean_sarah =[] # 새 리스트 만듬 >>> for each_t in sarah: # 원래 리스트 'sarah' 나열 clean_sarah.append(sanitize(each_t)) # 함수를 사용해 데이터 항목 변환(함수를 만들어 적용해 보세요.) 리스트를 지능화 해보겠습니다. 한 줄이면 됩니다. >>> clean_sarah=[sanitize(each_t) for each_t in sarah] 지능형 리.. 더보기
[데이터 처리] 정렬 파이썬에서 데이터는 원본정렬(In-place sorting)과 사본정렬(Copied sorting) 이 두 가지 방법으로 정렬할 수 있습니다. 원본 정렬은 데이터를 가져와서 지정한 순서대로 정렬하고, 원래의 데이터를 정렬된 버전으로 변경합니다. 원래의 데이터를 정렬된 버전으로 변경하는 것입니다. 리스트의 sort() 메서드가 원본 정렬을 합니다. 사본 정렬은 데이터를 가져와서 지정한 순서대로 정렬하고, 정렬된 버전을 반환 합니다. 즉, 원래 데이터는 그대로 남아있고 사본만 정렬 됩니다. sorted() 내장 함수가 사본 정렬을 지원 합니다. >>> data=[9, 6, 3, 5, 7, 1, 4, 2, 8] # 정렬되지 않은 리스트 변수에 대입 >>>data [9, 6, 3, 5, 7, 1, 4, 2, 8.. 더보기
[파일에 데이터 저장하기] 핵심정리 [파일에 데이터 저장하기] 핵심정리 strip() 문자열에서 불필요한 앞뒤 공백 제거 print() 내장함수 file 인자 : 데이터를 출력할 장치 지정 예외 객체 except 스위트에 전달, as 키워드로 선언한 식별자에 대입 str() 문자열로 변환할 수 있는 어떠한 데이터 객체라도 문자열 형태로 변환. in 연산자 데이터가 집합 객체 안에 포함되어 있는지 확인 with 문 예외가 발생하더라도 열려 있는 모든 파일을 자동으로 닫아 줌 as 키워드와도 사용가능 피클링 영구 저장소에서 데이터 객체를 저장하는 처리 언피클링 영구 저장소에 저장된 데이터 객체를 읽어 오는 처리 pickle 모듈 모든 파이썬 데이처 객체를 파일에 쉽고 효과적으로 쓰고 읽게 함 pickle.dump() 데이터를 파일에 저장 pi.. 더보기
[파일에 데이터 저장하기] 피클링(pickling) [파일에 데이터 저장하기] 피클링 파이썬은 피클(pickle)이라는 표준 라이브러리를 제공합니다. 데이터를 파일에 피클링하면, 데이터는 영구적으로 존재하게 되고, 나중에 다른 프로그램이 읽을 수도 있습니다. 피클링은 필요한 모듈을 임포트하고, dump()로 저장하고 load()로 읽습니다. ※ 피클 파일로 작업할 때는 파일을 이진 접근 모드로 열어야 합니다. 형태는 다음과 같습니다. import pickle # 피클 모듈 임포트 . . . with open('mydata.pickle', 'wb') as mysavedata: # wb의 b는 파이썬이 데이터를 이진모드로 열도록 합니다. pickle.dump([1, 2, 'three'], mysavedata) # dump()를 사용해서 데이터를 저장합니다... 더보기
[파일에 데이터 저장하기] 디스크에 저장하기 [파일에 데이터 저장하기] 디스크에 저장하기 '데이터 처리와 출력' 편에서 분리한 Man과 Other Man의 대사를 man_data.txt, other_data.txt로 각각 디스크에 저장해볼 것 입니다. 먼저 알아야 하는 것이 있습니다. 디스크 파일을 사용하기 위해 open() 내장함수를 사용합니다. open() 내장함수 사용시 파일에 대한 접근 모드를 지정할 수 있는데 읽기모드(r)는 파일에 대한 접근 모드 지정 필요가 없습니다. 쓰기 를 위해 열 때에는 w모드를 사용합니다. 데이터 파일 객체 = open(" 쓸파일 이름 ", "사용할 접근 모드") print() 내장함수는 표준 출력 장치(화면)를 사용해서 데이터를 출력합니다. 이 때 file 인자에 데이터 파일 객체를 지정해야 합니다. print.. 더보기
[파일에 데이터 저장하기] 데이터 처리와 출력 [파일에 데이터 저장하기] 데이터 처리와 출력 데이터를 저장하기 전에 데이터를 먼저 처리 합니다. 대사가 들어있는 txt파일에서 누가 무슨 대사인지 구분하는 처리를 해보겠습니다. >>> man=[] # 빈 리스트를 man과 other에 대입 >>> other=[] >>> try: data=open('hellow.txt') for each_line in data: try: (role, line_spoken)=each_line.split(':',1) line_spoken=line_spoken.strip() # 앞뒤 공백을 제거한 문자열을 다시 자신에게 대입 if role=='Man': # 누구의 대사인지에 따라 해당 리스트에 추가 man.append(line_spoken) elif role=='Other M.. 더보기
[파일과 예외] 특정 예외만 처리 [파일과 예외] 특정예외만 처리 프로그램을 개발할 때 실제로 일어나는 에러는 IOError와 ValueError 두 종류입니다. 만약 예외 처리 코드가 특정한 에러만을 고려하여 처리하도록 되어 있다면 except 문에 에러종류를 지정합니다. 에러 종류를 지정하면 예외 처리 코드가 범용적이지 않고 특정형이 됩니다. >>> try: data=open('hellow.txt') for each_line in data: try: (role, line_spoken)=each_line.split(':',1) print(role) print('said:') print(line_spoken) except ValueError: # 처리하고 있는 런타임 에러를 지정 pass data.close() except IOError.. 더보기
[파일과 예외] 파일이 없어진 경우 예외 처리 #2 [파일과 예외] 파일이 없어진 경우 예외 처리 처리 1 hellow.txt 파일을 삭제하고 아래의 코드를 실행해보세요. >>>import os >>> if os.path.exists('hellow.txt'): #파일이 존재하는지 확인 data=open('hellow.txt') for each_line in data: if not each_line.find(':')==-1: (role, line_spoken)=each_line.split(':',1) print(role) print('said:') print(line_spoken) data.close() else: print('The data file is missing!') #파일이 없을 시 출력됨 The data file is missing! 이 코는 .. 더보기
[파일과 예외] try/except [파일과 예외] try/except 코드가 잘못될 경우 파이썬 인터프리터가 다음과 같은 traceback이라는 메세지를 출력하는 것을 본 경우가 있을 것입니다. 역추적(traceback) : 발생한 런타임 에러에 대한 상세한 설명 예외는 런타임 에러에 의해 발생하며, 역추적하게 만듭니다. 예외 처리 메커니즘은 일단 에러가 발생하도록 놔두고, 에러가 발생하면 발견해서 복구할 수 있도록 합니다. 코드를 수행하다가 문제가 발생하면 예외적으로 실행되는 복구 코드가 작동하고, 계속 정상 처리할 수 있도록 합니다. 이때 try/except 메커니즘을 사용합니다. >>>try: 런타임 에러를 발생시킬 수도 있는 코드 except: 여러분이 정의한 에러 복구 코드 >>> data=open('hellow.txt') >>.. 더보기
[파일과 예외] 데이터 가져오기 - find() 메서드 [파일과 예외] 데이터 가져오기 - find() 메서드 find() : 어떤 문자열 안에 다른 하위 문자열리 들어 있는지 확인할 수 있는 메서드 하위 문자를 찾지 못할 시 -1 값을 반환 하위 문자를 찾았을 시 문자열 안에 있는 하위 문자열이 시작하는 색인값을 반환 each_line 변수에 콜론을 갖지 않은 문자열을 대입한 수 find() 메서드를 사용해서 콜론의 위치 찾아보겠습니다. 문자열에 콜론(:)이 없어서 -1이 출력 됩니다. 하위문자(콜론)를 찾지 못 해서 -1 값이 반환된 것 입니다. 하지만 문자열에 콜론을 추가 해서 find()메서드를 사용하니 11이 출력됩니다. 11번째에서 콜론이 시작되므로 11이 출력 된 것 입니다. 더보기
[파일과 예외] 데이터 가져오기 [파일과 예외] 데이터 가져오기 데이터 처리 : 입력 - 처리 - 출력 데이터를 읽으려면 open() 함수를 사용합니다. open() 내장함수를 사용해서 파일에 있는 데이터를 접근할 때는 나열자(iterator)가 만들어져서 파일에서 코드를 한 번에 한 라인씩 데이터를 보내줍니다. 표준적인 열기 - 처리- 닫기 코드입니다. the_file=open('hellow.txt') # Do something with the data # in "the_file". the_file.close() IDLE을 사용해서 파이썬의 파일 입력 메커니즘을 사용해 보겠습니다. 데이터를 가져왔습니다. 이 데이터는 대부분 '사람>>콜론>>대사'형식의 데이터를 가지고 있습니다. Man : Is this the right room fo.. 더보기
[코드공유하기] 함수 모듈 #2 함수 모듈 #2 모듈을 공유하기 위해서 배포를 합니다. 배포 : 유틸리티는 파이썬에서 모듈을 빌드하고, 패키지를 만들고, 배포할 수 있게 해 주는 일련의 파일들 배포 준비 1. nester라는 이름의 폴더명을 만들어 nester.py 모듈 파일을 복사합니다. 2. 새로 만든 폴더에 아래 코드가 입력된 setup.py라는 파일을 만듭니다. from distutils.core import setup setup( name = 'nester', version = '1.0.0', py_modules = ['nester'], author = ' ', author_email = ' ', url = ' ', description = ' ', ) 빈칸은 헤드 퍼스트 랩의 메타데이터입니다. 알맞게 입력하세요. 3.배포 패.. 더보기
[코드공유하기] 함수 모듈 #1 함수 모듈 #1 이번엔 다른 사람들과 공유할 수 있는 모듈을 만들어 보겠습니다. 모듈은 파이썬 코드가 들어 있는 텍스트 파일을 .py확장자로 저장한 것입니다. 리스트 단원에서 배웠던 아래의 함수 코드를 nester.py로 저장해보세요. def print_lol(the_list): for each_item in the_list: if isinstance(each_item, list): print_lol(each_item) else: print(each_item) 모듈을 공유하기 위해 작업한 내용을 설명하는 주석을 추가합니다. 주석은 """ 주석내용 """ 으로 큰따옴표 3개를 연달아 써주면 됩니다. 위의 함수를 아래처럼 주석문으로 설명한다면 사용자가 함수를 이해하는데 더 쉬울 것 입니다. """이 파일은 .. 더보기
[파이썬의 시작] 리스트 #5 - 리스트 안에 리스트 출력 ◐ 파이썬의 시작 - 리스트 #5 리스트 안에 리스트 출력 if 문과 isinstance() 내장 함수를 사용해서 하위 리스트를 출력할 것 입니다. 먼저 isinstance() 사용법을 설명하겠습니다. isinstance() 내장 함수는 식별자가 특정 형의 데이터를 갖고 있는지 확인하는 함수입니다. names가 list 형인지 물어봅니다. True가 출력된 것을 보니 names가 리스트 인것을 확인할 수 있습니다. 하지만 num_names는 len() 결과 2의 값을 가지고 있으므로 리스트가 아니라 False가 출력되네요. >>> names=["Michael", "Terry"] >>> isinstance(names, list) True >>> num_names=len(names) >>> isinstanc.. 더보기
[파이썬의 시작] 리스트 #4 - 리스트 안에 리스트 저장 ◐ 파이썬의 시작 - 리스트 #4 리스트 안에 리스트 저장 리스트 안에는 다른 리스트도 포함할 수 있습니다. 대괄호([])안에 항목들을 입력해 추가해 주면 됩니다. 모든 리스트는 리스트 메서드를 사용해서 변경할 수 있으며, 대괄호를 사용해서 리스트 항목에 접근할 수 있습니다. 가장 상위의 리스트가 시작되고 두 번째 단계의 리스트는 movie[4]에서 시작합니다. 세 번째 단계의 리스트는 movie[4][1]에서 시작합니다. 그 결과 Eric Idle이 출력됩니다. >>> movie=[ "The Holy Grail", 1975, "Terry Jones & Gilliam", 91, ["Graham Chanpman", ["Michael Palin", "John Cleese", "Terry Gilliam", ".. 더보기
[파이썬의 시작] 리스트 #3 - 리스트 처리하기 ◐ 파이썬의 시작 - 리스트 #3 리스트 처리하기 리스트에 데이터를 insert하거나 delet해서 데이터가 변경 되었을 경우 리스트를 새로 나열하면서 각 항목에 특정 작업을 수행해야 합니다. 리스트를 나열하는 방법은 간단합니다. for 루프를 사용하면 됩니다. 리스트 항목들이 나열됬습니다. >>> color=["red", "orange", "green", "blue", "white", "black"] >>> for each_color in color: print(each_color) red orange green blue white black 더보기
[파이썬의 시작] 리스트 #2 - 리스트 메서드 적용 ◐ 파이썬의 시작 - 리스트 #2 리스트 메서드 적용 'color' 리스트에 몇 가지 리스트 메서드를 적용해 보겠습니다. 먼저 리스트를 지정하고 print() 내장 함수를 사용해서 화면에 출력합니다. 그리고 len() 내장 함수로 리스트 안에 몇 개의 항목이 들어있는지 확인합니다. 4개의 항목이 들어 있는 것을 len() 내장 함수로 확인했습니다. >>> color=["red", "orange", "blue", "green"] >>> print(color) ['red', 'orange', 'blue', 'green'] >>> print(len(color)) 4 append() 리스트 메서드를 이용하면 리스트 맨 뒤에 데이터 항목을 하나 추가할 수 있습니다. pop() 메서드는 제일 끝 항목을 삭제하고, .. 더보기
[파이썬의 시작 ] 리스트 #1 - 간단한 리스트 만들기 ◐ 파이썬의 시작 - 리스트 모든 프로그램은 궁극적으로 데이터를 처리합니다. 대부분의 데이터는 매우 복잡하게 이루어져 있죠. 이런 복잡한 데이터를 효과적으로 다루기 위해 데이터를 종종 리스트로 만듭니다. The Holy Grail, 1975, Terry Jones, Terry Gilliam, 91 mins Graham Chapman Michael Palin, John Cleese, Terry Gilliam, Erie Idle, Terry Jones The Life of Braian, 1979, Terry Jones, 94 mins Graham Chapman Michael Palin, John Cleese, Terry Gilliam, Erie Idle, Terry Jones The Meaning of Li.. 더보기
[파이썬의 시작] - IDLE IDLE을 사용하여 파이썬을 먼저 익히도록 하겠습니다. IDLE은 파이썬 셸로 코드를 실험할 수 있을 뿐만아니라, 제대로 된 코드 편집기로 코드를 작성할 수 있습니다. IDLE을 시작하면 가장 먼저 보이는 것이 꺽쇠 괄호(>>>) 프롬프트 입니다. 여기에 코드를 입력하여 실행하고, 결과를 화면에 출력합니다. IDLE은 또한 코드를 색으로 강조합니다. 기본적으로 내장 함수는 보라색, 문자열은 녹색, 언어 키워드는 주황색으로 표시하고 출력 결과는 파란색으로 나타납니다. 사용자가 직접 색을 지정해 변경할 수 도 있으므로 색이 맘에 들지 않는다면 자신만의 방식으로 색을 바꿔서 사용해도 좋을 듯 합니다. IDLE은 또한 파이썬의 들여쓰기 구문에 대해서도 모두 알고있으므로 파이썬 들여쓰기 규칙에 따르도록 도와줍니다.. 더보기