마지막으로 배울 내용은 외장 함수입니다. 내장 함수와는 다르게 외장 함수를 사용하기 위해서는 반드시 해당 모듈을 import 해야 합니다. 먼저 파이썬에서 제공되는 모듈을 살펴보기 위해 구글에서 "list of python modules" 로 검색합니다. 검색 결과 첫 페이지에 나오는 공식 홈페이지의 Python Module Index 페이지를 방문하면 파이썬에서 사용할 수 있는 모듈 목록이 알파벳 순으로 정렬되어 나오며 모듈을 선택하면 사용 가능한 함수들에 대해 설명 및 예제 코드를 확인할 수 있습니다. 예를 들어서 random 모듈에서 사용가능한 함수 정보를 확인하기 위해 상단의 r 을 클릭하고 이어서 페이지에 나타나는 random 을 클릭합니다. 모듈 페이지는 다음과 같이 상단에 요약 정보와 파이썬..
파이썬에는 내장 함수 (built-in function) 가 있습니다. 내장 함수란 별도로 import 를 하지 않고도 사용할 수 있도록 내장되어 있는 함수를 의미하는데요. 사용자의 입력을 받기 위한 input() 함수도 내장 함수 중 하나입니다. 사용자로부터 좋아하는 언어를 입력 받고 문장을 출력하는 간단한 코드를 작성하겠습니다. language = input("무슨 언어를 좋아하세요? ") print("{0}은 아주 좋은 언어입니다!".format(language)) 프로그램을 실행시키고 "파이썬" 이라는 값을 입력하면 language 라는 변수에 저장을 했다가 print() 문을 통해서 출력을 합니다. 이 때 내장함수인 input() 을 쓰기 위해 별도로 해줘야 하는 것은 아무것도 없었습니다. 무슨..
파이썬의 강점 중 하나는 유용한 패키지가 아주 많이 존재한다는 것입니다. 지금도 전 세계 각지에서 누군가는 새로운 패키지를 개발하고 있어서 그 수는 점점 늘어가고 있지요. 그렇기 때문에 파이썬으로 개발을 할 때 어떤 기능이 필요하다고 하면 무작정 처음부터 개발하기보다는 이미 잘 만들어진 패키지가 있지는 확인을 해보고 잘 가져다가 쓰는 것도 무척 중요합니다. 가령 랜덤으로 어떤 수를 뽑아주는 기능이 필요하다고 하면 직접 처음부터 구현을 할 수도 있겠지만 개발하는 과정에서 실수가 있을 수도 있고 고려해야 할 부분도 생각보다 많을 수도 있을 겁니다. 다행히 우리는 이미 많은 사람들이 사용하고 충분히 검증받은 잘 만들어진 random 모듈이 있다는 것을 알기 때문에 아주 빠르고 쉽게 가져다 쓸 수가 있습니다. ..
패키지나 모듈은 호출을 하려는 파일과 동일한 경로에 있거나 또는 파이썬 라이브러리들이 모여 있는 폴더에 있어야 사용이 가능합니다. 앞에서 만든 theater 모듈이나 travel 패키지는 그들을 사용하는 practice.py 파일과 같은 위치에 있어서 문제 없이 사용할 수 있었던 것이죠. 파이썬에서는 사용하려는 모듈이 어느 경로에 있는지 확인할 수 있는 방법이 있습니다. 우리가 자주 쓰던 random 모듈에 대한 경로를 먼저 확인하기 위해 inspect 라는 모듈을 import 하고 getfile() 이라는 함수에 전달값으로 random 을 적습니다. import inspect import random print(inspect.getfile(random)) # random 모듈의 위치 실행해보면 다음과 ..
travel 패키지의 thailand 와 vietnam 모듈은 내용이 간단하게 작성되어 있어서 크게 문제 되는 부분이 없었는데 실제로 모듈을 만들게 되면 규모나 복잡도에 따라 모듈 내 기능이 올바르게 동작하는지를 확인하는 작업이 반드시 필요합니다. 물론 지금까지 배웠던 것처럼 별도의 파일에서 해당 모듈을 import 해와서 테스트를 해볼 수도 있겠지만 모듈을 직접 실행하면서 확인하는 방법이 아무래도 수월하겠지요. 모듈이 직접 실행되는지, 아니면 별도의 파일에서 호출되어 실행되는지는 이렇게 구분할 수 있습니다. 이 때 __name__ 과 "__main__" 은 앞 뒤로 밑줄을 2번씩 적어주셔야 한다는 점 주의해주세요. if __name__ == "__main__": # 직접 실행되는 경우 pass else..
책의 앞부분에서 우리는 random 모듈을 import 할 때 * 를 사용함으로써 random 모듈 내의 모든 것을 가져다 쓸 수 있다고 공부한 적이 있습니다. from random import * travel 패키지도 같은 방식으로 한 번 사용해볼까요? from travel import * 을 함으로써 travel 패키지의 모든 것을 가져다 쓰겠다고 하고 나서 VietnamPackage 객체를 만들어보겠습니다. from travel import * trip_to = vietnam.VietnamPackage() # 베트남 trip_to.detail() 실행시켜보니 다음과 같이 vietnam 이 정의되지 않았다며 에러가 발생하네요. NameError: name 'vietnam' is not defined ..
누군가와 함께 여행을 갈 때는 서로 여행 스타일이 비슷해야 더 즐거운 시간을 보낼 수 있습니다. 아래 표의 각 항목에 대해서 여러분이 선호하시는 여행 방법을 체크해두시면 친구와 함께 여행을 갈 때 서로를 더 배려할 수 있을 텐데요. 구분 선택 1 선택 2 경비 N분의 1 각자 계획 철저 즉흥 숙박 호텔 게스트 하우스 교통 택시 대중교통 식사 맛집 아무집 성향 부지런 여유 어쩌면 여행을 하는 시간보다 여행을 준비하는 과정이 더 오래 걸릴 수도 있습니다. 특히 해외 여행을 떠나게 되는 경우 항공사 선택에서부터 여행 일정, 숙소, 차량 렌트, 시간표 작성 등 많은 부분을 신경써야 하는데, 이 때 여행사에서 제공하는 패키지 상품을 이용하면 훨씬 수월하게 여행을 할 수 있습니다. 비행기에서부터 현지 도착 후 이동..
자동차를 운전하다가 접촉사고가 나서 범퍼가 파손되거나, 오랜 기간 주행으로 타이어가 심하게 마모된다면 정비소에 가서 교체 수리를 받게 됩니다. 이 때 보통 범퍼만 교체하거나 타이어만 교체하게 되므로 범퍼 교체 비용, 타이어 교체 비용만 지불하면 되며 수리 비용도 크게 부담되지는 않습니다. 그런데 만약 범퍼 교체를 하러 갔는데 범퍼가 엔진까지 연결이 되어 있어서 엔진도 교체를 한다거나 수리 작업을 해야 한다고 하면 어떨까요? 아무래도 수리 비용도 훨씬 비싸지고 수리 기간도 꽤 많이 걸릴겁니다. 소프트웨어도 이처럼 부품만 교체하거나 추가할 수 있도록 만들면 유지보수도 쉽고 코드의 재사용도 수월해지는 장점이 있는데요. 함수 정의나 클래스 등 서로 관련이 있거나 비슷한 기능을 하는 파이썬 문장들을 담고 있는 파..
지금까지 배운 내용을 복습하기 위한 퀴즈를 드리겠습니다. 직접 한 번 풀어보시고 나서 정답을 확인해주세요. Quiz) 동네에 항상 대기 손님이 있는 맛있는 치킨집이 있습니다. 대기 손님의 치킨 요리 시간을 줄이고자 자동 주문 시스템을 제작하였습니다. 시스템 코드를 확인하고 적절한 예외처리 구문을 넣으시오. 조건1 : 1보다 작거나 숫자가 아닌 입력값이 들어올 때는 ValueError 로 처리 출력 메세지 : "잘못된 값을 입력하였습니다." 조건2 : 대기 손님이 주문할 수 있는 총 치킨량은 10마리로 한정 치킨 소진 시 사용자 정의 에러[SoldOutError]를 발생시키고 프로그램 종료 출력 메세지 : "재고가 소진되어 더 이상 주문을 받지 않습니다." [코드] chicken = 10 # 남은 치킨 수..
옷 가게에서 마음에 드는 옷을 사고 매장을 나서면 매장 직원은 친절하게 감사하다는 인사를 전합니다. 하지만 때로는 마음에 든다고 생각했던 옷을 피팅룸에서 막상 입어보니 잘 어울리지 않는 경우도 있지요. 이런 경우 옷을 하나도 구매하지 않고 매장을 나서게 되지만 그래도 매장 직원은 친절하게 감사하다는 인사를 전합니다. 옷을 사도, 사지 않아도 늘 친절하게 감사하다고 하니 그 친절이 고마워서라도 왠지 다음 번 매장을 방문할때는 꼭 옷을 하나 사야지 하는 마음이 생기곤 합니다. try 구문을 사용할 때 finally 라는 게 있습니다. finally 는 try 구문 내에서 에러가 발생하건 말건 try 를 벗어나는 시점에 무조건 실행되는 구문입니다. finally 는 try 와 except 로 이루어진 구문의 ..
지금까지 우리는 이미 정의되어 있는 에러에 대한 예외처리를 해보았습니다. 그런데 파이썬에서는 필요에 따라 사용자가 새롭게 에러를 정의하고 그에 대한 예외처리를 할 수도 있는데요. 앞에서 만든 한 자리 숫자 나누기 전용 계산기 프로그램에서 실수로 두 자리 이상의 수를 입력했을 때 사용자가 입력한 값 중 어떤 값이 잘못되었는지를 보다 자세히 알려주도록 코드를 수정해보겠습니다. 먼저 두 자리 이상의 수를 입력해서 발생한 에러라는 의미로 BigNumberError 라는 클래스를 만들고 파이썬에서 이미 정의되어 있는 Exception 이라는 클래스를 상속받도록 합니다. 이렇게 하면 앞에서 봤던 ValueError, IndexError 와 비슷하게 사용자가 필요로 하는 어떤 새로운 형태의 Error 를 정의할 수 ..
이번에는 의도적으로 에러를 발생시키는 방법을 공부해보겠습니다. 실제로 에러 상황이 발생한 것이 아니라도 프로그램이 허용하지 않는 동작을 하려고 할 때 의도적으로 에러를 발생시킬 수 있으며 문법은 다음과 같습니다. raise 에러종류 계산기의 종류를 조금 바꿔서 한 자리 숫자에 대해서만 나누기를 할 수 있도록 해보겠습니다. 다만 나눗셈을 하기 전에 사용자로부터 입력받은 값들이 한 자리 숫자가 맞는지 확인하여 조건에 맞지 않을 때는, 즉 10 이상일 때는 의도적으로 ValueError 를 발생시키고 except 를 통해 예외처리를 하도록 하겠습니다. try: print("한 자리 숫자 나누기 전용 계산기입니다.") num1 = int(input("첫 번째 숫자를 입력하세요: ")) num2 = int(inp..
- Total
- Today
- Yesterday
- 행맨
- 파이게임
- 아나콘다
- onlineclass
- Mac
- Visual Studio Code
- coloso
- Colab
- 나도코딩
- 파이썬
- 환경설정
- Tkinter
- repl.it
- Unity
- game
- pycharm
- 비주얼 스튜디오 코드
- Coding
- 코랩
- 주피터노트북
- c언어
- Xcode
- vscode
- GUI
- pygame
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |