python 281

[Python] exec

exec 문자열 또는 코드 객체와 같이 동적으로 생성된 프로그램을 실행한다. exec(object, globals=None, locals=None) 매개변수 object : 문자열 또는 코드 객체 global : (선택) 딕셔너리 사용 locals : (선택) 매핑 객체 사용 사용법 exec('CODE') # 예시 code = 'nums = [i for i in range(5)]' exec(code) print(nums) exec 외에서 선언한 변수, 라이브러리도 exec 내에서 사용할 수 있다. eval VS exec exec은 문자열 식을 실행하는 eval 함수와 비교되곤 한다. 참고 : 2021.12.17 - [eval] 문자열 식 실행 exec 또한 eval과 마찬가지로 문자열을 실행시키므로 매우..

Python 2022.06.22

[BOJ] 2998 - 8진수

문제 https://www.acmicpc.net/problem/2998 창영이는 2진법 수를 8진법 수로 변환하려고 한다. 창영이가 사용한 방법은 아래와 같다. 1. 2진수의 길이가 3으로 나누어 떨어질 때까지 수의 앞에 0을 붙인다. 2. 그 다음, 3자리씩 그룹을 나눈다. 3. 아래의 표를 참고해 8진수로 바꾼다. 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 창영이가 사용한 방법을 이용해 2진수를 입력받아 8진수를 바꾸는 프로그램을 작성하라. 입력의 첫번째 줄에 2진수가 주어진다. 풀이 Python에서 2진수를 입력받는 방법과 정수를 8진수를 변환하는 방법을 알면 간단하게 해결할 수 있다. 1. int(x, base=10) int 함수의 base는 x의 진수에..

[assert] 가정 설정문

assert 뒤의 조건이 참이 아니면 AssertError를 발생시킨다. 예외를 발생시킨다는 점에서 예외 처리와 비슷하게 생각할 수 있지만, assert는 단순히 예외를 처리하기 위함이 아니라 값을 보증하기 위해 사용한다. 방어적인 프로그램을 작성하기 위해 사용한다. 문법 assert , # 예시 assert False assert False, 'assertError 발생' 에러 메시지는 생략할 수 있다. 참고 문서 https://wikidocs.net/21050 https://engineer-mole.tistory.com/217 https://blockdmask.tistory.com/553

Python 2022.06.03

[import] 모듈 가져오기

모듈 (Module) 함수나 변수 또는 클래스를 모아 놓은 파일 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일 이 글에서는 모듈을 import 하는 방법을 몇 가지 정리한다. import 문 모듈 전체를 가져온다. import # 예시 import itertools import math, sys 여러 모듈을 가져올 때는 모듈을 쉼표로 구분하여 나열한다. 사용할 때는 모듈 뒤에 점을 찍어 원하는 함수, 클래스를 지정한다. import ~ as 문 모듈 이름을 다르게 지정한다. import as # 예시 import itertools as it from ~ import 문 전체 모듈이 아니라 지정한 일부만 가져온다. from import # 예시 from itertools import ..

Python 2022.05.28

[Set] 집합 연산

2021.09.26 - [알고리즘 기초] 동명이인 찾기 / Set 에서 Set의 개념을 간단하게 아래와 같이 정리했었다. [알고리즘 기초] 동명이인 찾기 / Set 여러 사람의 이름이 저장된 리스트에서 동명이인의 이름 집합을 반환하는 문제이다. 집합; Set 리스트와 같이 정보를 여러 개 넣어서 보관하는 자료구조 같은 자료가 중복되어 저장되지 않고, 자 passwd.tistory.com 리스트와 같이 여러 정보를 넣어서 보관하는 자료구조 중복을 허용하지 않고, 자료의 순서가 없다. 여기에 더해서 set은 수학적 개념인 집합을 다룰 수 있는 데이터형이기도 한다. 집합과 명제할 때 그 집합 맞다. 따라서 이 글에서는 수학에서의 집합 개념을 python set으로 다룰 때 사용하는 연산, 함수 등을 정리해두려..

Python 2022.04.30

[BOJ] 1269 - 대칭 차집합

문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 두 집합 A와 B에 대해 (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 할 때, 그 원소의 개수를 구하여라. 예시 ) $$ A = \{1, 2, 4 \}, B = \{2, 3, 4, 5, 6 \}$$ $$ A-B = \{1 \}$$ $$ B-A = \{ 3, 5, 6\}$$ $$ A \triangle B=(A..

[Python] 익명 함수 - lambda 표현식

def 리터럴 표기법에 따라 함수를 생성할 때 사용되는 키워드 def 키워드는 함수 클래스를 통해 함수 객체를 생성하고, 객체를 함수 이름과 같은 변수에 담는 과정을 담당한다. 변수에 담긴 함수 객체는 메모리에 올라가서 호출을 대기하는데, 이는 한 번만 사용될 함수라면 메모리 낭비에 해당된다. 한 번만 사용될 함수라면 익명함수를 사용하는 것이 좋다. 익명 함수 이름이 없는 함수를 뜻하며, Python에서는 lambda라는 키워드를 이용해 익명 함수를 정의할 수 있다. 이름이 없어 재사용이 불가능하다. 다만 일반 함수와 동일하게 변수에 할당될 수 있기 때문에, 변수에 저장된 lambda 함수는 재사용이 가능하다. lambda lambda 키워드를 이용한 함수는 람다 함수 또는 람다 표현식이라고 한다. la..

Python 2022.04.20

[VSCode] jupyter notebook 사용

VSCode는 python 개발 환경으로 많이 사용되지만, 데이터 분석 관련으로는 아무래도 jupyter notebook과 jupyterlab이 많이 사용된다. 즉, jupyter notebook도 새로 설치를 하게 되는데, VScode의 관련 확장 프로그램 몇 가지를 설치하면 VSCode 상에서도 jupyter notebook을 사용할 수 있게 된다. 설정 방법을 정리해둔다. 방법 1. VSCode 설치 아래의 링크에서 환경에 맞는 버전을 다운받아 설치한다. https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your ..

Python 2022.04.19

[sort] 문자열 사전 역순으로 정렬하기

Python에서 리스트를 정렬할 때 사용할 수 있는 list.sort()와 sorted()는 기본적으로 오름차순으로 리스트를 정렬한다. 오름차순/사전 순 정렬 print(sorted([3, 5, 4, 2, 1])) print(sorted(['b', 'a', 'z', 'v', 'm'])) 숫자는 오름차순으로, 문자는 사전 순으로 정렬된 모습을 확인할 수 있다. 따라서 문자나 문자열을 사전 역순으로 정렬할 때는 정렬된 리스트를 뒤집어주면 된다. list.sort()와 sorted() 모두 bool 형의 reverse 매개변수를 전달받는 것을 이용한다. 내림차순/사전 역순 정렬 print(sorted([3, 5, 4, 2, 1], reverse=True)) print(sorted(['b', 'a', 'z', ..

Python 2022.04.10

[heapq] 최소 힙, 최대 힙

2022.04.19 - 최소 힙 / 최대 힙 최소 힙과 최대 힙 개념은 위 글에서 정리했다. heapq 파이썬에서 제공하는 최소 힙 자료구조 모듈 자바의 PriorityQueue 클래스와 유사하다. heapq를 사용하면 원소가 정렬된 상태로 추가되고 삭제된다. 모듈 임포트 내장 묘듈이기 때문에 별도 라이브러리 설치 없이 사용할 수 있다. import heapq 최소 힙 생성 heapq는 파이썬의 일반 리스트를 최소 힙처럼 다룰 수 있도록 한다. 빈 리스트를 생성한 뒤, heapq 모듈을 통해 원소를 추가하거나 삭제한 리스트가 최소 힙에 해당한다. heap = [] 원소 추가 heapq.heappush 함수를 이용하여 힙에 원소를 추가한다. 첫 번째 매개변수는 원소를 추가할 리스트이고, 두 번째 매개변수는..

Python 2022.03.20