본문 바로가기

반응형

파이썬

(6)
미로 만들기 파이썬의 예제보다는 알고리즘 팁? 에 가깝다. 막히지 않운 던전을 만들기 위한 알고리즘 이다. 1. 던전크기 선언 ( 11, 9 ) 2. 주변을 벽으로 만든다 ( 1 == 벽 ) 3. 일단 안쪽은 이동 가능한 공간 ( 0 == 통로 ) 4. 1칸 간격으로 기둥을 세운다 ( 1 == 벽 ) 5. 각 기둥에서 상하좌우 랜덤하게 벽을 생성한다 단, 2번째 열부터 왼쪽으로는 벽을 만들지 않는다! ( 2: # 2번째 열부터 왼쪽으로는 벽을 만들지 않음 d = random.randint(0, 2) maze[y + YP[d]][x + XP[d]] = 1 def main(): pygame.init() pygame.display.set_caption("미로 생성") screen = pygame.display.set_mo..
비동기 코드 작성하기(asyncio) asyncio 를 이용한 파이썬 비동기 코드 파이썬도 javascript ECMAScript2017 에서 쓰이는 async, await 사용으로 비동기 코딩이 가능하다! 비동기 함수 앞에 async 를 붙여주면되고, 해당 함수의 실행결과를 기다려야 할때 await 를 붙여주면 끝! 비동기 함수를 실행할때는 asyncio.run 을 이용하면 된다. import asyncio async def greetings(): print("Welcome") await asyncio.sleep(1) print("Good by") async def main(): await greetings() await greetings() asyncio.run(main()) 하지만 이렇게 하면 동기 프로그램 하고 똑같이 순차적으로 실행..
데코레이션 모양만 봐서는 자바의 어노테이션을 생각나게 하지만, 실제 구현은 파이썬 답게 매우 쉽다. 함수를 인자로 받는 함수를 선언하고, 로직을 써둔 후 해당 함수를 데코레이션으로 다른 함수에 써주면 성공! # 함수선언 def to_upper_case(func): text = func() if not isinstance(text,str): raise TypeError("Not a string type") return text.upper() @to_upper_case def say(): return "welcome" 그리고 say 함수를 호출하면! >>> say WELCOME 쉬..쉽다! 실제 사용시에는, 함수 전,후 처리 및 인자를 위해 다음과 같이 선언하여 사용한다. def to_upper_case(func): ..
yield 를 이용한 대량파일 처리 대용량 파일을 처리할 때는 한줄씩 읽으면서 처리해야 한다. 그렇다고 파일오픈 하고 1라인 읽고, 닫고 파일 오픈하고 2라인으로 서치 후 2라인 읽고 닫고 ... 는 아니다. yield 를 이용해 큰파일을 1줄씩 읽어보자. def read_file(yours_file): while True: data = yours_file.readline() if not data: break yield data for line in read_file(open("massive.csv","r")): print(line) 추가 정보 https://dojang.io/mod/page/view.php?id=2412 파이썬 코딩 도장: 40.1 제너레이터와 yield 알아보기 Unit 40. 제너레이터 사용하기 제너레이터는 이터레이터..
리스트 컴프리헨션(list comprehension) 요즘 머신러닝 공부하면서 자주보게 되었던, 대괄호 안에 있는 for 문. 기술의 용어도 모르다가 "클린 파이썬" 이라는 책에서 알게 되었다. 리스트를 다루는 방법으로 map, filter 를 쓰는방법이 있다. ( javascript 를 써본사람은 익숙 할듯 ) numbers = [ 10, 45, 34, 89, 34, 23, 6 ] square_numbers = map(lambda num: num**2, numbers) # 배열내 숫자의 제곱을 리턴 data = [1, "A", 0, False, True] filtered_data = filter(None, data) # 모든 참값에 필터를 사용 이것들을 리스트 컴프리헨션을 이용한 변경 버전 이다. square_numbers = [num**2 for num..
윈도우10 TensorFlow2.4-gpu 설치하기 참조로 하여, 호환되는 툴킷 확인 참고로 나의 GPU 그리고 CPU AMD Ryzen 7 3700X 8-Core Processor 3.59 GHz ( AMD 라 살짝쿵 걱정 ) 1. CUDA 설치(10.1) developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal CUDA Toolkit 10.1 update2 Archive Select Target Platform Click on the green buttons that describe your target platform. Only supported platforms will ..

반응형