목록파이썬 (18)
보리차
mymath 패키지 구조 mymath/ shapes/ __init__.py area.py volume.py stats/ __init__.py average.py spread.py 상대 경로 임포트 상대 경로 임포트는 임포트 하는 곳의 위치를 기준으로 임포트하려는 것의 위치를 상대적으로 나타내는 것을 말한다. . 은 현재 패키지 안을 뜻하고 .. 은 상위 패키지 안을 뜻한다. 1. shapes 패키지의 init 파일에서 패키지 안에 있는 모듈들 가져오기 mymath/shapes/__init__.py # 절대 경로 임포트 from mymath.shapes import area, volume # 상대 경로 임포트 from . import area, volume 2. stats 패키지의 init 파일에서 패키지..
import * 모듈을 임포트할 때 from import * 를 하면 모듈의 모든 내용이 임포트된다. 하지만 모듈 대신 패키지에 from import *를 하면 패키지 안에 있는 게 아무것도 임포트되지 않는다. __all__특수 변수 import * 를 했을 때 임포트 대상에서 어떤 것들을 가져와야 하는지 정해주는 변수다. 말하자면 '전체'가 무엇인지 정의해주는 변수인 셈. __all__은 모듈과 패키지에 모두 적용된다. __all__과 모듈 모듈의 __all__은 모듈에 해당하는 파일에서 정의한다. 예를 들어 area.py에 아래와 같은 코드를 추가하면 shapes/area.py # __all__ 정의 __all__ = ['circle', 'square'] PI = 3.14 # 원의 면적을 구해 주는 ..
__init__파일 패키지 안에는 __init__.py라는 파일이 있다. 파이썬 3.3 이전 버전에서는 init파일이 필수였지만 이후 버전부터는 필수가 아니게 돼었다. 하지만 파이썬 하위 번전과의 호환성과 패키지의 명확성을 위해 항상 init파일을 만드는 것을 권장한다고 한다. init은 initialiaze의 약자로 패키지나 패키지 안에 있는 것을 import하면 가장 먼저 패키지의 init 파일에 있는 코드가 실행된다. __init__파일 활용 __init__ 파일에서 임포트 사용 패키지를 임포트하면 기본적으로 패키지 안에 있는 내용은 임포트되지 않는다. 패키지를 임포트할 떼 패키지 안에 있는 내용도 함께 임포트하고 싶다면 init 파일에 패키지와 함께 임포트 하고 싶은 것들을 써 주면 된다. sha..

패키지 모듈을 기능별로 묶어 둔 것이다. 프로그램의 구성 요소를 잘 정리할 수 있고 쉽게 재활용 할 수 있다. 패키지는 모듈들을 모아 놓은 디렉토리를 말한다. 예를 들어 평면도형의 면적을 구하는 area 모듈과 입체도형의 부피를 구하는 volume 모듈을 모아서 shapes 라는 패키지를 만들어보자. shapes 패키지의 구조는 아래와 같다. 패키지는 일반 디렉토리와 똑같지만 안에 __init__.py 라는 파일이 있다. 이 파일은 이전 버젼에서는 필수였지만 지금은 필수가 아닌데 호환성을 위해서 꼭 만들어 주는 것이 좋다. 패키지 임포트 패키지 안에 있는 내용을 가져올 때도 import 키워드를 사용한다. import run.py import shapes.volume print(shapes.volume...
스크립트 : 실제로 프로그램을 작동시키는 코드를 담은, 실행 용도의 파일 모듈 : 프로그램에 필요한 변수들이나 함수들을 정의해 놓은, 임포트 용도의 파일 스크립트와 모듈은 실행 여부에 나뉜 것이지 파일 자체에 특별한 차이가 있는 것은 아니다. 따라서 어떤 파일은 모듈이 될 수도 있고 스크립트가 될 수도 있다. 그런데 예를 들어 모듈 파일에 테스트 코드를 추가하게 되면 이 모듈을 임포트할 때 테스트 코드도 함께 출력되는 문제가 발생하게 된다. area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length #..

파이썬의 모듈 검색 경로 파이썬은 임포트 하려는 모듈을 찾기 위해 특정 경로를 살핀다. 이 경로들은 sys를 이용해 볼 수 있다. import sys print(sys.path) # 파이썬이 모듈을 찾기 위해 살펴보는 경로들이 저장되어 있다. ['C:\\Users\\BORI\\PycharmProjects\\codeit_modul\\venv', 'C:\\Users\\BORI\\PycharmProjects\\codeit_modul', 'C:\\Users\\BORI\\AppData\\Local\\Programs\\Python\\Python39\\python39.zip', 'C:\\Users\\BORI\\AppData\\Local\\Programs\\Python\\Python39\\DLLs', 'C:\\User..
namespace : 파일에서 정의된 모든 이름 dir : 파일의 namespace를 return해준다. 파이썬에서는 같은 이름으로 여러번 함수를 정의하면 가장 나중에 정의된 함수가 호출된다. 이름이 중복되면 어떤 함수를 호출하는지 알기 어렵기 때문에 중복되지 않도록 주의해야 한다.
모듈 여러 기능을 모아둔 파이썬 파일 예를 들어 평면도형의 면적을 구하는 함수들을 모아 area라는 모듈을 만들어 준다. area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length (모듈은 파일 이름에서 .py 확장자를 빼고 부른다. 이렇게 생성한 모듈을 스크립트에서 불러와 사용할 수 있다.) 모듈 임포트(import) 모듈에 저장된 기능을 가져다 쓰기 위해서는 모듈을 임포트(import)해야 한다. import 모듈 전체를 임포트한다. 모듈 안에 있는 변수 또는 함수는 .으로 접근할 수 있다. run..

이번에는 파일을 쓰는 법이다. 읽을 때와 거의 비슷한데 마지막에 'r' 대신 'w'를 넣어주면 된다. 그럼 작성한 파일이름으로 새로운 파일이 생성되게 된다. 이때 몇 번을 다시 실행하든 마지막에 작성된 내용으로 덮어쓰기가 되며 기존 파일에 새로운 내용을 추가하고 싶으면 'a'를 쓰면 된다. 'w' : 새로운 파일 작성. 마지막에 쓴 내용으로 덮어씀 'a' : 기존 파일에 내용 추가. 파일이 없으면 새로 생성 +) 코드잇 예제를 푸는 데 문제가 생겼다. 단어장을 만드는 예제 문제였는데 첫번째로 파일을 생성할 때는 문제가 없더니 다시 실행하려고 하니까 Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdi..

이번 주말엔 오랜만에 친구들을 만나서 놀았다. 즐거운 주말을 보냈으니 이번 주는 다시 열공을 해야한다..! 오늘 공부할 내용은 파이썬에서 파일 읽기~ 1. open 먼저 읽어올 파일을 준비해야 하는데 강의에서 따로 제공을 안해줘서 간단하게 메모장으로 타이핑해줬다. 치킨집 하루 매출이라고 가정하고.. 이 파일을 파이썬으로 불러와준다. 이때 코드를 작성할 파이썬 파일과 같은 폴더에 있으면 파일 이름만 적어도 되지만 다른 폴더에 있다면 경로까지 함께 적어준다. with open(파일 경로, 'r') as f: 요렇게 적어주면 되는데 이때 'r'은 read의 약자로 파일을 읽어준단 뜻이다. 파일을 생성할 땐 반대로 'w' (write) 라고 적어주면 됨! 그런데 내 컴퓨터에서는 이 코드대로 적으면 Unicode..