일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터구조
- 중학수학
- 자바
- CSS
- numpy/pandas
- 텍스트마이닝
- 중학1-1
- 데이터베이스
- 혼공머신
- 정보처리기사필기
- 컴퓨터비전
- 데이터입출력구현
- 코딩테스트
- 영어공부
- 운영체제
- 딥러닝
- 파이썬라이브러리
- html/css
- 정보처리기사실기
- 데이터분석
- pandas
- CNN
- JSP/Servlet
- 정수와유리수
- 파이썬
- 연습문제
- SQL
- C++
- 머신러닝
- 자바 실습
- Today
- Total
목록분류 전체보기 (1249)
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
프로그램을 만들다 보면 수없이 많은 오류를 만나게 된다. 물론 오류가 발생하는 이유는 프로그램이 잘못 동작하는 것을 막기 위한 파이썬의 배려이다.이번에는 파이썬에서 오류를 처리하는 방법에 대해서 알아보자. 오류는 언제 발생하는가?오류를 처리하는 방법을 공부하기 전에 어떤 상황에서 오류가 발생하는지 한번 알아보자. 오타를 입력했을 때 발생하는 구문 오류 같은 것이 아닌 실제 프로그램에서 자주 발생하는 오류를 중심으로 살펴보자. 존재하지 않는 파일을 사용하려고 시도할 때 0으로 나누는 경우 indexError 오류 예외 처리 기법1. try-except 문 2. try-finally 문finally 절은 try 문 수행 도중 예외 발생 여부에 상관없이 항상 수행된다. 보통 finally 절은 사..
어젯밤부터 그동안 해결하지 못했던 문제를 풀어보며 주피터 노트북이 아닌 파이썬 프로그램으로 실습해보았다. 처음부터 지금까지 공부한 부분까지 모두 복습하며 다시 실습해보며 정말 많은 것들을 배울 수 있었고 파이썬에 더욱 흥미를 느끼게 되었다.이제 여기서부터는 복습이 아닌 진짜 학습이다. 파이썬에서 패키지란 관련 있는 모듈의 집합을 말한다. 패키지는 파이썬 모듈을 계층적(디렉터리 구조)어로 관리할 수 있게 해준다. 패키지 구조로 모듈은 만들면 다른 모듈과 이름이 겹치더라도 더 안전하게 사용할 수 있다. 패키지 만들기디렉토리 밑에 다음과 같은 폴더와 py 파일을 만들었다. 다음의 두 파일을 제외하고 나머지는 빈 파일로 남겨둔다. 그런 다음 환경 변수에 다음과 같은 디렉터리를 추가한다. 패키지 ..
모듈에 대한 학습을 시작해본다. 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파이썬 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있도록 만든 파이썬 파일이라고도 할 수 있다.이제 모듈을 어떻게 만들고 사용할 수 있는지 알아본다. 모듈 만들기이번 예제부터는 주피터 노트북이 아닌 파이썬 프로그램으로 실습을 진행해야 할 것 같다. 주피터 노트북에서는 제공되지 않는 기능들이 많았는데 사실 이 프로그램이 편해서 그동안 안 되는 부분이 있어도 진행했었다.하지만 모듈부터는 아예 실행조차 되지 않아 조금 전에 파이썬 프로그램을 새로 설치하며 사용법을 익혀보았다. 모듈 불러오기조금 전에 만든 이 파일, 즉 모듈을 파이썬에서 불러와 사용하려면 어떻게 해야 할까? 디렉토리 안에 파일이 있는 것..
아직 사칙연산 계산기를 만드는 프로그램이 끝나지 않았다. 이어서 다음 내용을 학습해본다. 생성자 FourCal 클래스의 인스턴스 a에 setdata 메서드를 수행하지 않고 add 메서드를 먼저 수행하면 오류가 발생한다. setdata 메서드를 수행해야 객체 a의 객체변수 first와 second가 생성되기 때문이다.이렇게 객체에 first, second 같은 초기값을 설정해야 할 필요가 있을 때는 setdata와 같은 메서드를 호출하여 초기값을 설정하기보다 생성자를 구현하는 것이 안전한 방법이다. 생성자란 객체가 생성될 때 자동으로 호출되는 메서드를 의미한다. 파이썬 메서드명으로 __init__를 사용하면 이 메서드는 생성자가 된다. 생성자를 호출할 때 매개변수로 값을 전달하지 않으면 오류..
클래스 단원부터는 수업 시간에도 진도를 나가지 않았다. 이렇게 중요한 내용을 왜 배우지 않는지 의문이 들 정도이다. 자바에서는 클래스를 다루었지만 파이썬은 데이터 분석 위주의 수업을 진행하기 때문인 것 같다. 그렇기에 난 수업이 너무나도 지루하고 재미가 없었다. 인공지능도 배우기 전에는 잘 몰랐는데 데이터 분석을 하는 것이 90% 이상이었다.머신러닝 수업 부터는 수업을 거의 듣지 않고 나만의 공부를 진행하는 편이다. 그리고 Spring 수업도 들어도 무슨 말인지 잘 모르겠고 이해도 되지 않아서 처음 기초 부분만 듣고 요즘은 이 시간에도 자습을 진행한다. 때로는 하루 종일 공부를 해도 진도가 별로 나가지 않아서 상심이 될 때도 있다. 수요일이 그랬다. 하지만 그런 날에도 포기하지 말고 공부를 이어가야 한다..
이제 4단원을 마무리하는 연습문제를 풀어보기로 하자. 8문제나 되어서 1시간은 넘게 걸릴 것 같지만 열심히 풀어봐야지! 되새김 문제 풀기 원래 문제에는 출력하는 기능은 없었지만 한번 넣어보았다. 오류 수정하기 input 함수는 모든 입력을 문자열로 받으므로 숫자를 입력하기 위해 int로 형변환을 해야 한다. 콤바를 붙이면 한 칸이 띄어지는 기능이 있다. 그러니까 답은 3번이다. 파일이 없어 오류가 뜨는 것 같아서 앞의 코드를 하나 추가해주었다. 하지만 아직 파일을 불러올 수는 없었다. 그 이유가 무엇일까? 이 문제는 아무래도 혼자서 해결하기 어려울 듯하여 정답을 참고하는 것이 좋겠다. f1, f2가 있는 이유가 있었는데 혹시 이 코드를 잘못 썼나 하고 f1으로..
이제 4장의 마지막 개념 학습만이 남아있다. 프로그램의 입출력은 분량이 얼마 되지 않으니 금방 마칠 수 있을 것 같다. type은 바로 뒤에 적힌 파일 이름을 이수로 받아 해당 파일의 내용을 출력해주는 명령어이다. 대부분의 명령 프롬프트에서 사용하는 명령어는 다음과 같이 인수를 전달하여 프로그램을 실행하는 방식을 따른다.명령어 [인수1, 인수2 ... ] sys 모듈 사용하기파이썬에서는 sys 모듈을 사용하여 프로그램에 인수를 전달할 수 있다. sys 모듈을 사용하려면 import 명령어를 사용해야 한다. 이 출력은 Jupyter 노트북이나 IPython 환경에서 sys.argv가 기본적으로 커널과 관련된 정보를 포함하고 있기 때문에 발생한 것이다. 명령행에서 전달된 인수를 처리하려고 하는 대신,..
이전까지는 값을 입력 받을 때는 사용자가 지ㅣㄱ접 입력하는 방식을 사용했고, 출력할 때는 모니터 화면에 결과값을 출력하는 방식을 사용했다. 하지만 입출력 방법이 꼭 이것만 있는 것은 아니다. 이번에는 파일을 통한 입출력 방법에 대해서 알아보기로 하자.여기서는 패일을 새로 만든 다음 프로그램이 만든 결과값을 새 파일에 적어본다. 파일 생성하기이렇게 새 파일이 하나 생성된 것을 볼 수 있다. 파일을 생성하기 위해 파이썬 내장 함수 open을 사용했다. open 함수는 파일 이름과 파일 열기 모드를 입력값으로 받고 결과값으로 파일 객체를 리턴한다. 모드설명파일이 존재하지 않을 때파일이 존재할 때모드설명파일이 존재하지 않을 때파일이 존재할 때'r'읽기 모드 (기본값). 파일을 읽기만 할 수 있음오류 발생 (..
점심 시간이 이제 30분밖에 남지 않았지만 공부를 해보는 중이다. 조금 전에 기분이 상하는 일이 있어서 공부에 집중이 되지 않기로 했지만 다시 마음을 회복하며 집중해보려고 한다. 사용자 입력 활용하기사용자가 입력한 값을 어떤 변수에 대입하고 싶을 때는 어떻게 해야 할까? input은 사용자가 키보드로 입력한 모든 것을 문자열로 저장한다. input은 입력되는 모든 것을 문자열로 취급하기 때문에 number는 숫자가 아닌 문자열이라는 것에 주의하자. print 자세히 알기 학습을 마치고사용자 입출력에 관한 내용은 이전 학습을 진행하며 자연스럽게 알게 된 부분이어서 별로 어렵지 않았다. 수업 시간에도 자주 소개해서 어느 정도 사용법을 알고 있다. 그래도 print 문에 ..
이번에는 함수에 관한 조금 어려운 문제를 풀어보려고 한다. 약수 구하기 두 가지 방식으로 약수를 구해보았다. 하나는 함수를 리스트 형태로 담았고 다른 하나는 그냥 출력만 할 수 있는 간단한 기능으로 만들었다. **kwargs: 딕셔너리 형태로 키워드 인수를 받음print(kwargs): 함수로 전달된 인수들이 딕셔너리로 어떻게 저장되는지 출력for k, v in kwargs.items(): 딕셔너리 kwargs의 각 키(k)와 값(v)을 반복문을 통해 하나씩 처리하며 출력 람다함수는 이처럼 간단하게 처리할 때 사용한다. 함수를 사용할 때보다 코드가 훨씬 간결해졌다. 1~45까지의 숫자 중에서 중복 없이 6개를 선택하고 이를 정렬한다. 로또 번호를 몇 개 생성할지 ..