일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- SQL
- numpy/pandas
- 정보처리기사실기
- 정수와유리수
- 자바 실습
- 영어공부
- 연습문제
- 파이썬라이브러리
- 데이터입출력구현
- 운영체제
- 데이터분석
- 데이터베이스
- 컴퓨터비전
- 혼공머신
- C++
- html/css
- CSS
- JSP/Servlet
- CNN
- 텍스트마이닝
- 중학1-1
- pandas
- 정보처리기사필기
- 코딩테스트
- 자바
- 머신러닝
- 딥러닝
- 중학수학
- 컴퓨터구조
- 파이썬
- Today
- Total
목록파이썬 (128)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
파이썬은 수치 연산을 위한 모듈을 많이 지원하여 데이터 과학이나 인공지능에 관련된 프로그램을 많이 사용한다. 이번 단원에서는 수학과 관련된 모듈을 살펴볼 것이다. 과자를 똑같이 나누어 담으려면? - math.gcdmath.gcd() 함수를 이용하면 최대공약수를 쉽게 구할 수 있다. 어린이집에서 사탕 60개, 초콜릿 100개, 젤리 80개를 준비했다. 똑같이 나누어 봉지에 담는다고 하면 최대 몇 봉지까지 만들 수 있을까? 단, 사탕, 초콜릿, 젤리는 남기지 않고 모두 담도록 한다.이 문제는 60, 100, 80의 최대공약수를 구하면 바로 해결된다. 전체 개수를 20으로 나누어도 답을 구할 수 있다. math - 수학 함수 math — Mathematical functionsThis module pr..
이제 두 단원만 남아있다. 데이터 라이브러리에 대해 이어서 학습해 볼 것이다. 숫자에 이름을 붙여 사용하려면? - enumenum은 서로 관련이 있는 여러 개의 상수 집합을 정의할 때 사용하는 모듈이다.다음과 같이 날짜를 입력하면 그날의 요일에 해당하는 점심 메뉴를 반환하는 get_menu() 함수를 만들었다. 요일별로 출력이 되었다. 이 코드를 enum 라이브러리를 사용하여 쉬운 코드를 변경할 수 있다. Week 클래스는 enum.IntEnum을 상속하여 만든 Enum 자료형이다. 이렇게 숫자를 바로 사용하지 않고 Enum 자료형을 만들어 상수로 사용하면 유지보수에 유리하며 가독성도 좋아진다. Enum 자료형 활용enum.Enum을 상삭하여 만든 Enum 자료형에는 다음처럼 name과 val..
자료형을 다루는 라이브러리를 이어서 학습해보려고 한다. 딕셔너리를 한 번에 초기화하려면? - collections.defaultdictcollections.defaultdict는 값에 초기값을 지정하여 딕셔너리를 생성하는 모듈이다. 문자열을 이용하여 사용한 문자(Key)와 해당 문자의 사용 횟수(value)를 딕셔너리로 만들려면 어떻게 해야 할까? 단, 공백 등 특수 문자도 포함하며 대소문자는 구분하기로 한다.다음 이 문제의 일반적인 풀이이다. 방어적인 코드 없이 다음처럼 작성해본다. 하지만 키에러가 발생하고 있다. 딕셔너리를 사용할 때는 초기값에 신경을 써야 한다. 다음은 collections의 deaultdict를 이용한 방법이다. defaultdict()의 인수로 int를 전달하여 딕셔너리..
이번에는 자료에 값을 넣고 빼는 라이브러리에 대해서 학습해 볼 것이다. 앞뒤에서 자료를 넣고 빼려면? - collections.dequedeque는 앞과 뒤에서 데이터를 처리하는 양방향 자료형으로, 스택이나 큐처럼 써도 된다. 다음과 같이 시계방향으로 1~5가 적힌 다이얼이 있으며 현재 가리키는 눈금은 1이다.[1, 2, 3, 4, 5] 이 다이얼을 오른쪽으로 돌려 눈금이 4가 되도록 하려면 어떻게 해야 할까?[4, 5, 1, 2, 3] 리스트를 n만큼 회전하는 문제는 알고리즘 문제에서 자주 등장한다. 파이썬에서는 collections.deque 모듈을 사용하면 간단하게 이 문제를 해결할 수 있다. rotate() 함수를 사용하여 2만큼 오른쪽으로 회전하면 첫 값이 4를 가리키게 된다. 마찬가지로..
다양한 데이터를 다루는 라이브러리를 살펴볼 것이다. 날짜를 계산하고 요일을 알려면? - datetime.datedatetime.date는 년, 월, 일로 날짜를 표현할 때 사용하는 모듈이다. 2019년 12월 14일부터 만나기 시작했으면 2021년 6월 5일을 사귄 지 며칠째 되는 날일까? 아울러 사귀기 시작한 2019년 12월 14일은 무슨 요일이었을까? 두 날짜의 차이 구하기년, 월, 일로 다음과 같이 datetime.date 객체를 만들 수 있다. 객체를 만들었다면 뺄셈으로 쉽게 구할 수 있다. 하지만 책과는 달리 날짜가 539일로 나왔다. 두 번이 해봤지만 역시 같았다. 아마 현재 날짜로 계산하는 것 같았다. datetime.datetime 객체datetime.date는 년, 월, ..
바이너리(이진) 데이터는 두 가지 상태만으로 나타내는 데이터로, 일반적으로 이진법에서는 0과 1로 두 상태를 표현한다. 이번 단원에서는 파이썬에서 C 구조체 바이러리 데이터를 사용하도록 하는 struct 모듈을 알아볼 것이다. C로 만든 데이터를 출력하려면? - structstruct는 C 언어로 만든 구조체 이진 데이터를 처리할 때 활용하는 모듈이다. C 구조체로 만들어진 파일을 읽거나 네트워크로 전달되는 C 구조체 이진 바이트를 파이썬에서 처리할 때 주로 사용한다.다음은 구조체 데이터를 output 파일에 저장하는 C 프로그램으로, save_type은 double형 1개, int형 1개, char형 1개로 이루어진 구조체다. 이렇게 만들어진 바이너리 구조체 데이터(output 파일)를 파이썬으로..
오늘부터 파이썬 라이브러리를 3일 동안 학습해 볼 것이다. 오후에 책에 왔는데 오후에는 계속 놀고 쉬다가 이제 공부를 시작해보려고 한다. 이 책에는 총 122개의 라이브러리를 소개하고 있고 분량도 정말 많다. 하지만 1장부터 차근차근 공부해 보며 파이썬 프로그램에 적용해 볼 수 있는 실력을 갖출 것이다.파이썬은 텍스트 처리에 강한 언어이다. 문자열 자료형만 해도 강력하지만 이를 더 강력하게 하는 다양한 라이브러리도 있다. 문자열을 줄여 표시하려면? - textwrap.shortentextwrap.shorten()은 문자열을 원하는 길이에 맞게 줄여 표시할 때 사용하는 함수이다. 때로는 제목이나 내용 미리 보기가 너무 길어 줄여 표시했으면 할 때가 있다. 단 15자가 넘지 않을 때는 그대로 표시하..
정규 표현식에서는 메타 문자를 사용한다. 먼저 메타 문자가 무엇인지 알아보자. 정규 표현식의 기초, 메타 문자메타 문자란 원래 그 문자가 가진 뜻이 아니라 특별한 의미를 가진 문자를 말한다. 정규 표현식에 다음과 같은 메타 문자를 사용하면 특별한 의미를 갖게 된다.. ^ $ * ? { } [ ] \ | () 가장 간단한 정규 표현식부터 시작해 각 메타 문자의 의미와 사용법을 알아보기로 하자. [ ] 문자 - 문자 클래스문자 클래스로 만들어진 정규식은 [ 와 ] 사이의 문자들과 매치한다는 의미를 갖는다. 즉, 정규 표현식이 [abc]라면 이 표현식의 의미는 'a, b, c 중 한 개의 문자와 매치'를 뜻한다.[ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위를 의미한다. 예를 ..
이제 이터레이터와 제너레이터에 대해 학습해 볼 것이다. 다음과 같은 예제를 살펴보자. 이렇게 for 문과 같은 반복 구문에 적용할 수 있는 리스트와 같은 객체를 '반복 가능 객체'라고 한다. 이터레이터란?이터레이터는 next 함수 호출 시 계속 그다음 값을 리턴하는 객체이다. 리스트는 반복 가능하다. 그렇다면 리스트는 이터레이터일까? 다음을 확인해 보자. 리스트는 이터레이터 객체가 아니라는 오류가 발생한다. 즉, 반복 가능하다고 해서 이터레이터는 아니라는 것이다. 하지만 반복 가능하다면 다음과 같이 iter 함수를 이용해 이터레이터로 만들 수 있다. 리스트를 이터레이터로 변경했으므로 next 함수를 호출해볼 것이다. next 함 수를 호출할 때마다 이터레이터 객체의 요소를 차례대로 리턴하는 것을..
데코레이터를 이해하려면 먼저 클로저를 알아야 한다. 클로저를 먼저 알아보고 데코레이터를 살펴볼 것이다. 클로저란?클로저란 간단히 말해 함수 안에 내부 함수를 구현하고 그 내부 함수를 리턴하는 함수를 말한다. 이때 외부 함수는 자신이 가진 변수값 등을 내부 함수에 전달할 수 있다. 다음 예제를 통해 확인해 보자.어떤 수에 항상 3을 곱해 리턴하는 함수를 생각해 보자. mul3() 함수는 입력으로 받은 수 n에 항상 3을 곱하여 리턴한다. 이번에는 항상 5를 곱하여 리턴하는 함수를 생각해보자. 하지만 이렇게 필요할 때마다 mul6(), mul(7), ...과 같은 함수를 만드는 것은 매우 비효율적이다. 이 문제를 해결하려면 다음과 같은 클래스를 사용하면 된다. 클래스를 이용해 특정 값을 미리 설..