본문 바로가기

분류 전체보기199

Python - 파일[파일 입출력] - 파일 쓰기, 파일 읽기, 입출력 위치, 내용 추가, 파일 예외 처리, with ~ as 문, pickle 모듈 Chap.14 파일[파일 입출력] - 파일 쓰기, 파일 읽기, 입출력 위치, 내용 추가, 파일 예외 처리, with ~ as 문, pickle 모듈 파일 입출력 파일 쓰기, 파일 읽기, 입출력 위치, 내용 추가, 파일 예외 처리, with ~ as 문, pickle 모듈 파일 쓰기 open(파일경로, 모드) 모드 - r : 읽기, 파일이 없는 경우 예외 발생 - w : 쓰기, 파일이 없으면 새로 생김 - a : 추가 - x : 쓰기용으로 여나 기존 파일이 있는 경우 실패 - t : text 모드로 열기 (디폴트) - b : binary 모드로 열기 try에 open, finally에 close 해주자. PyCharm은 UTF-8을 사용한다. windows는 window-949를 사용(이걸로 열면 잘보인다.. 2020. 7. 27.
Python - 표준모듈[예제] - 고스톱 패 섞기 및 패 분배 Chap.12 표준모듈[예제] - 고스톱 패 섞기 및 패 분배 예제 고스톱 패 섞기 및 패 분배 고스톱 패 섞기 및 패 분배 패의 수 : 48 게임 인원수: 3 deck = [] users = [ [], #사용자 1의 패 [], #사용자 2의 패 [] #사용자 3의 패 ] 최종 출력: 각 사용자의 패, 남은패를 출력하세요. 내 풀이 import random def print_result(deck, users): for n in range(len(users)): print(n+1,"번째 사용자 : ", users[n]) print("남은 패(", len(deck), "장)", sep = "") print(sorted(deck)) def assign(deck, users): for n in range(len.. 2020. 7. 27.
Python - 예외 처리[자원의 정리] - finally, assert Chap.13 예외 처리[자원의 정리] - finally, assert 자원의 정리 finally, assert finally 예외 발생 여부와 상관없이 항상 호출 작업의 마무리 작업 (cleanup) 수행 try: print("네트워크 접속") a = 2/0 print("네트워크 통신 수행") finally: print("접속 해제") print("작업 완료") 결과 Traceback (most recent call last): File "C:/workspace/01_python/chapter13/ex13-02.py", line 8, in a = 2/0 ZeroDivisionError: division by zero 네트워크 접속 접속 해제 이용 def comm(): try: print("네트워크 접속.. 2020. 7. 27.
Python - 예외 처리[예외 처리] - 예외, 예외 처리, 예외의 종류, raise Chap.13 예외 처리[예외 처리] - 예외, 예외 처리, 예외의 종류, raise 예외 처리 예외, 예외 처리, 예외의 종류, raise 에러: 복구 불가, 예외: 복구 가능(defalut action: 종료) 예외 프로그램 실행 중 발생한 에러 --> 프로그램 실행 종료 (디폴트) str = "89점" score = int(str) print(score) print("작업완료") 결과 Traceback (most recent call last): File "C:/workspace/01_python/chapter13/ex13-01.py", line 9, in score = int(str) ValueError: invalid literal for int() with base 10: '89점' 예외 처리.. 2020. 7. 27.
Python - 표준모듈[sys 모듈] - 시스템 정보, 명령형 인수 Chap.12 표준모듈[sys 모듈] - 시스템 정보, 명령형 인수 sys 모듈 시스템 정보, 명령형 인수 시스템 정보 import sys print("버전: ", sys.version) print("플랫폼: ", sys.platform) print("바이트 순서: ", sys.byteorder) print("모듈 경로: ", ) for path in sys.path: # 자신의 directory를 먼저 찾는다. print(path) sys.exit(0) # 프로그램 강제 종료, 인수로 종료 코드 지정 가능 결과 버전: 3.7.7 (default, May 6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] 플랫폼: win32 바이트 순서: little 모듈 경로: C:\wo.. 2020. 7. 27.
Python - 표준모듈[난수] - random Chap.12 표준모듈[난수] - random 난수 random 모듈 random 모듈(1) .random() - 0 ~ 1 사이의 난수 리턴 (1은 미포함) import random for i in range(5): print(random.random()) 결과 0.31613467782098836 0.9210269418989194 0.37451066214301465 0.7120744921368977 0.16548941180523558 random 모듈(2) .randint(begin, end) - begin ~ end 사이의 정수 난수를 리턴 (end도 포함) .randrange(begin, end) - begin ~ end 사이의 정수 난수를 리턴 (end도 포함되지 않음 ) .uniform(begi.. 2020. 7. 27.
Python - 표준모듈[시간] - time, 실행 시간 측정, 실행 멈춤, 달력, 날짜 Chap.12 표준모듈[시간] - time, 실행 시간 측정, 실행 멈춤, 달력, 날짜 시간 time, 실행 시간 측정, 실행 멈춤, 달력, 날짜 시간조사, time 모듈 1970년 1월 1일 자정을 기준으로 경과한 시간을 초 단위로 표현 - 에폭(Epoch) 시간 또는 유닉스 시간 time import time print(time.time()) # 전세계 공통 결과 1595234097.897746 import time t = time.time() print(time.ctime(t)) # c는 문자로 표현해달라. 결과 Mon Jul 20 17:37:07 2020 import time t = time.time() print(time.localtime(t)) # 현재위치 기반으로 해석 결과 time.stru.. 2020. 7. 27.
Python - 표준모듈[수학] - import, math, statistics Chap.12 표준모듈[수학] - import, math, statistics 모듈 : 재사용 가능 모듈의 가장 낮은 단위는 함수이다. python 에서 성격이 유사한 함수끼리 파일에 모아두었다. 수학 import, math, statistics 임포트(import) 다른 파일에 정의된 변수 , 함수, 객체 등을 사용하기 전에 이를 알리는 것 표준 모듈 - 파이썬에서 제공하는 모듈 import 모듈 [as alias] # 별칭(옵션) from 모듈 import 함수명 # 필요한 함수만 쓸 때 import math print(math.sqrt(2)) from math import sqrt print(sqrt(2)) import math as m print(m.sqrt(2)) from math import .. 2020. 7. 26.
Python - 컬렉션 관리[예제] - 사전 활용[Value를 기준으로 정렬] Chap.11 컬렉션 관리[예제] - 사전 활용[Value를 기준으로 정렬] 컬렉션 관리[예제] 사전 활용[Value를 기준으로 정렬] 사전 활용[Value를 기준으로 정렬] 사전의 value 기준 정렬 song = """by the rivers of babylon, there we sat down yeah we wept, when we remember zion. when the wicked carried us away in captivity required from us a song now how shall we sing the lord's song in a strange land""" alphabet = dict() for c in song: if c.isalpha() == False: continu.. 2020. 7. 26.
Python - 컬렉션 관리[컬렉션의 사본] - 리스트의 사본 Chap.11 컬렉션 관리[컬렉션의 사본] - 리스트의 사본, is 연산자 컬렉션의 사본 리스트의 사본 리스트의 사본 시퀀스.copy() -> 시퀀스 복사본 listcopy1 list1 = [1, 2, 3] list2 = list1 # 참조 print(list1 == list2) list2[1] = 100 print(list1) print(list2) print(list1 == list2) 결과 True [1, 100, 3] [1, 100, 3] True Heap에 list2=list1이 참조될 뿐이다. list2 = list1 대입에 의해 list2가 list1의 별명이 될 뿐 독립적인 메모리까지 확보하는 것은 아니다. listcopy2 두 리스트를 완전히 독립적인 사본으로 만들기 copy 메서드 li.. 2020. 7. 26.
Python - 컬렉션 관리[람다 함수] - filter, map, 람다 함수 Chap.11 컬렉션 관리[람다 함수] - filter, map, 람다 함수 람다 함수 filter, map, 람다 함수 filter filter(판정함수, 시퀀스) -> 시퀀스 () - 시퀀스의 각 요소를 판정함수에 전달하여 True를 리턴하는 요소로만 구성된 새로운 시퀀스 리턴 판정함수 : True, False를 판정할 수 있는 함수 def flunk(s): return s < 60 score = [ 45, 89, 72, 53, 94 ] for s in filter(flunk, score): # 함수의 이름만 전달한다. print(s) 결과 45 53 filter 함수의 메커니즘 def filter( fn, lst ): new_list=[] for a in lst: if fn(a): # 함수 fn의 .. 2020. 7. 26.
Python - 컬렉션 관리[컬렉션 관리 함수] - enumerate, zip, any(), all(), 변수명 표기법 Chap.11 컬렉션 관리[컬렉션 관리 함수] - enumerate, zip, any(), all(), 변수명 표기법 컬렉션 관리 함수 enumerate, zip, any(), all(), 변수명 표기법 enumerate enumerate(시퀀스 [, start]) - 시퀀스의 인덱스와 요소를 튜플 묶어서 순회 기존 코드(1) score = [88, 95, 70, 100, 99] for s in score: print("성적 : ", s) # index에 대한 정보가 없다. 결과 성적 : 88 성적 : 95 성적 : 70 성적 : 100 성적 : 99 기존코드(2) score = [88, 95, 70, 100, 99] for no in range(len(score)): print(str(no+1) + ".. 2020. 7. 26.