일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 정보처리기사필기
- 정보처리기사실기
- 개발일기
- html/css
- 데이터분석
- 머신러닝
- 컴퓨터비전
- 연습문제
- JSP
- 중학수학
- CSS
- 컴퓨터구조
- 중학1-1
- rnn
- 데이터베이스
- 상속
- 딥러닝
- 자바스크립트심화
- 자바 실습
- 자바스크립트
- c언어
- 디버깅
- 파이썬
- SQL
- JSP/Servlet
- 순환신경망
- 오블완
- 자바
- 혼공머신
- JDBC
- Today
- Total
목록프로그래밍 언어/파이썬 (129)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
이제 두 단원만 남아있다. 데이터 라이브러리에 대해 이어서 학습해 볼 것이다. 숫자에 이름을 붙여 사용하려면? - 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 중 한 개의 문자와 매치'를 뜻한다.[ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위를 의미한다. 예를 ..
정규 표현식은 개발자라도 잘 모를 수 있는 주제라 처음 파이썬을 배우는 사람에게는 어울리지 않을 수도 있다. 하지만 정규 표현식을 익히면 매우 달콤한 열매를 맛볼 수 있다. 하지만 정규 표현식을 잘 다르게 되면 유용한 쓰임새가 있을 것 같다.정규 표현식은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유한 문자열을 처리하는 모든 곳에서 사용하는 일종의 형식 언어이다. 정규 표현식은 왜 필요한가?다음과 같은 문제가 주어졌다고 가정해 보자.주민등록번호를 포함하고 있는 텍스트가 있다. 이 텍스트에 포함된 모든 주민등록번호의 뒷자리를 * 문자로 변경해 보자. 먼저 정규 표현식을 전혀 모르면 다음과 같은 순서로 프로그램을 작성해야 할 것이다.전체 텍스트를 공백 문자로 나눈다(split).나뉜 단어..
파이썬 3.5 버전부터 변수와 함께 함수에 타입을 지정할 수 있는 타입 어노테이션 기능이 추가되었다. 동적 언어와 정적 언어a 변수에 숫자 1을 대입하고 type 함수를 실행해 보자. a 변수의 타입은 int형이다. 변수에 문자열 "1"을 대입하고 실행해 보자. a의 변수 타입이 str형으로 바뀌었다. 이렇게 프로그램 실행 중에 변수의 타입을 동적으로 바꿀 수 있으므로 파이썬을 동적 프로그래밍 언어라고 한다.파이썬과 달리 자바는 정수형 변수 a에 숫자 1을 대입하고 다시 문자열 "1"을 대입하려 할 때 컴파일 오류가 발생한다. 자바는 한 번 변수에 타입을 지정하면 지정한 타입 외에 다른 타입은 사용할 수 없으므로 정적 프로그래밍 언어라고 한다. 동적 언어의 장단점파이썬과 같은 동적 언어는 타입..
이제 이터레이터와 제너레이터에 대해 학습해 볼 것이다. 다음과 같은 예제를 살펴보자. 이렇게 for 문과 같은 반복 구문에 적용할 수 있는 리스트와 같은 객체를 '반복 가능 객체'라고 한다. 이터레이터란?이터레이터는 next 함수 호출 시 계속 그다음 값을 리턴하는 객체이다. 리스트는 반복 가능하다. 그렇다면 리스트는 이터레이터일까? 다음을 확인해 보자. 리스트는 이터레이터 객체가 아니라는 오류가 발생한다. 즉, 반복 가능하다고 해서 이터레이터는 아니라는 것이다. 하지만 반복 가능하다면 다음과 같이 iter 함수를 이용해 이터레이터로 만들 수 있다. 리스트를 이터레이터로 변경했으므로 next 함수를 호출해볼 것이다. next 함 수를 호출할 때마다 이터레이터 객체의 요소를 차례대로 리턴하는 것을..