목록Development/Python & Django (52)
컴공생의 다이어리
Python 빠른 입출력 파이썬에서 빠르게 데이터를 입출력하기 위해서는 sys 라이브러리를 활용하면 된다. 이 글에서는 빠른 입출력에 대해 정리하고자 한다. 빠른 입력 import sys data = sys.stdin.readline().rstrip() sys.stdin.readline() 으로 빠른 입력을 받을 수 있다. 이때, 데이터에 줄바꿈 문자(\n)가 포함되어 입력받아진다는 점을 주의해야 한다. 그렇기 때문에 입력을 받고 나서 rstrip() 함수를 사용하여 줄바꿈 문자를 제거해주어야 한다. 그리고 매번 sys.stdin.readline()을 계속 작성해주는 것이 번거로울 수 있다. 그럴 땐 변수에 저장해서 사용하는 방법을 활용할 수 있다. 아래의 경우에는 input이라는 변수에 저장을 하는데,..
Python turtle(터틀) 그래픽 창 안 닫히게 하기 파이참이나 vscode에서 turtle을 사용할 때 turtle 그래픽창이 바로 꺼지는 경우가 있는데 이 경우 맨 마지막 줄에 아래 코드를 넣어주면 그래픽창이 바로 꺼지지 않고 마우스로 그래픽창을 클릭했을 때 창이 닫히도록 설정된다. turtle.exitonclick() https://althoughh.tistory.com/37 pyCharm 파이참에서 터틀창이 바로 닫힐 때 쓰는 명령어 이번에 새로 파이썬 공부를 시작하게 되었다. 공부를 시작한 이유는 장고를 활용하여 웹 서비스를 개발해보고 싶었고 또한 알고리즘 공부를 파이썬을 통해서 하고 싶은 마음이 있기 때문이다. althoughh.tistory.com
최소공배수(Lowest Common Multiple, LCM) 공배수(common multiple)란 두 수 이상의 여러 수의 공통된 배수를 의미 최소공배수(LCM)란 두 수 이상의 여러 수의 공배수 중 최소인 수를 가리킴 기본적인 방법 def lcm(a, b): for i in range(max(a, b), (a * b) + 1): if i % a == 0 and i % b == 0: return i 최대공약수 활용 def gcd(a, b): # 최대공약수 while b > 0: a, b = b, a % b return a def lcm(a, b): return a * b / gcd(a, b) 혹은 import math def lcm(a, b): return a * b / math.gcd(a, b) 파..
최대공약수(Greatest Common Divisor, GCD) 공약수(common divisor)란 두 수 이상의 여러 수의 공통된 약수를 의미 최대공약수(GCD)란 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킴 최대공약수가 1이면 두 수는 서로소(coprime) 관계 기본적인 방법 def gcd(a, b): for i in range(min(a, b), 0, -1): if a % i == 0 and b % i == 0: return i 유클리드 호제법 사용 def gcd(a, b): while b > 0: a, b = b, a % b return a # or def gcd(a, b): if a % b == 0: return b elif b == 0: return a else: return g..
Python enumerate() 함수 enumerate 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려줌 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있음 for문에서 enumerate 사용하기 for idx, ch in enumerate(['가', '나', '다']): print(idx, ch) # 0 가 # 1 나 # 2 다 enumerate의 시작 인덱스 값 변경 enumerate 인덱스 값이 0부터 시작하는데 이를 start 옵션을 통해 원하는 수부터 시작하도록 변경할 수도 있다. 아래는 1부터 인덱스 값이 시작하는 예시이다. for idx, ch..
Python 약수 구하기 파이썬으로 약수를 구하는 함수를 다양하게 정리해보았다. 기본적인 방법 1부터 입력한 수(n)까지 다 나눠지는지 확인하면서 약수를 구하는 방법이다. def get_divisor(n): data = [] for i in range(1, n + 1): if n % i == 0: data.append(i) return data print(get_divisor(8)) 범위를 축소한 버전 1 1부터 입력한 수(n)를 2로 나눈 값까지 다 나눠지는 수인지 확인하면서 약수를 구하는 방법이다. def get_divisor(n): data = [] for i in range(1, n // 2 + 1): if n % i == 0: data.append(i) data.append(n) return d..
Python 설치 - Windows(윈도우) 기준 아래 링크에 접속하여 자신이 원하는 파이썬 버전을 찾는다. 만일 최신 버전을 설치해도 된다면 Latest Python 3 Release 혹은 Latest Python 2 Release에 들어가 설치 파일을 다운받으면 된다. 나의 경우 파이썬 3.8 버전을 설치하고 싶어 Stable Release 버전 중 Python 3.8.10 버전의 설치 파일을 다운받았다. https://www.python.org/downloads/windows/ Python Releases for Windows The official home of the Python Programming Language www.python.org 다운받은 설치 파일을 실행시키면 아래와 같은 창이 나..
Python dict 데이터를 json 파일로 저장 다음과 같이 dict 자료를 json 파일로 저장하고자 한다면 json.dump라는 함수를 사용하면 된다. import json dict = {'이름':'강철수','나이':30, '거주지':'서울', '좋아하는 음식':['라멘','빵']} with open('./data.json','w') as f: json.dump(dict, f, ensure_ascii=False, indent=4) ensure_ascii 옵션은 dict 자료형에 한글이 포함되어 있는 경우 ensure_ascii=False를 사용해야 한다. indent 옵션은 보기 좋은 형식으로 json파일이 생성된다. # json 파일 속 내용 { "이름": "강철수", "나이": 30, "거주지..
Python zipfile 모듈로 압축 풀기 - Windows(윈도우) 기준 zip 파일을 파이썬 코드로 압축해제 하려면 아래 코드를 사용하면 된다. 한글이 포함된 이름의 zip파일도 압축 해제하는데 문제없다. import zipfile source_file = '압축을 풀 파일명.zip' with zipfile.ZipFile(source_file, 'r') as zf: zipinfo = zf.infolist() for info in zipinfo: info.filename = info.filename.encode('cp437').decode('euc-kr') zf.extract(info) https://blog.naver.com/PostView.nhn?blogId=jangsam24&logNo=22163..
파이썬 디렉토리(폴더)인지 파일인지 구분 만일 폴더 안의 구조가 아래와 같이 되어 있다고 하자. 여기서 폴더는 1학년 1반, 1학년 2반, 1학년 3반이고 파일은 README.md, test.txt, text.txt이다. 파이썬을 통해 폴더인지 확인하고 싶다면 os.path.isdir()함수를 사용하면 된다. 파일인지 확인하고 싶다면 os.path.isfile()함수를 사용하면 된다. 아래 예시 코드를 참고하면 좋을 것 같다. import os # 폴더 안에 있는 모든 폴더와 파일을 list에 저장 list = os.listdir('폴더 경로') # ['1학년 1반', '1학년 2반', '1학년 3반', 'README.md', 'test.txt', 'text.txt'] # os.path.isdir()함수..