Python 70

[ Python ] 외장 함수

# 외장 함수 : 내장함수와는 다르게 import를 해야 사용할 수 있는 함수. # 구글에서 list of python modules 라고 검색 # Python Module index - Python 클릭 # 외장함수 목록을 볼 수 있다. # glob : 경로 내의 폴더 / 파일 목록 조회 ( 윈도우 dir 와 같은) import glob print(glob.glob("*.py")) # py로 끝나는 모든 파일을 검색 (확장자가) # os : 운영체제에서 제공하는 기본 기능 # 폴더를 만들고 삭제하는 기능 등 import os print(os.getcwd()) # 현재 디랙토리 표시 folder = "sample_dir" if os.path.exists(folder): print("이미 존재하는 폴더입니..

Python 2021.03.09

[ Python ] 내장 함수

# 내장 함수 : 내장되어 있어서 따로 import 할 필요 없이 사용 가능한 함수. # input : 사용자 입력을 받는 함수 # language = input("무슨 언어를 좋아하세요? ") # print("{0}은 아주 좋은 언어입니다! ".format(language)) # dir : 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시 print(dir()) # 출력 : ['__annotations__', '__builtins__', '__cached__', '__doc__', # '__file__', '__loader__', '__name__', '__package_..

Python 2021.03.09

[ Python ] pip install

# pip로 패키지 설치하는 방법. # 이미 수많은 패키지들이 존재하고 있고, 누군가는 새롭게 만들고 있다. # 파이썬은 이미 만들어진 패키지들을 필요한 곳에 가져가 쓰는 것도 중요한 부분이다. # 파이썬 패키지 검색 방뻐 # 구글 -> pypi 검색 -> PyPI . The Python Package Index 접속 # -> 중간에 projects 갯수 확인 가능 # Or Browse projects 클릭 해보기 -> Filter by classifier : 다양한 기준으로 찾아볼 수 있다. # 필요한 패키지가 있는지 미리 검색을 해보고 없는 부분에 대해서는 # 직접 구현하는게 효율적일 것이다. # 웹스크래핑으로 아주 유명한 패키지 : beautifulsoup 검색해보기 (PyPI 안에서) # beau..

Python 2021.03.09

[ Python ] 패키지, 모듈 위치 확인하는 방법(inspect)

# 패키지, 모듈 위치 # 확인하는 법 import inspect import random from travel import * # print(inspect.getfile(random)) # 출력 : C:\Python38\lib\random.py # print(inspect.getfile(thailand)) # 출력 : c:\Users\kim56\OneDrive\바탕 화면\PythonWorkspace\travel\thailand.py # 문제가 없는 부분인데 pylint 오류 발생 시킴. 출력도 문제 없이 잘 되고 있음. # 다음 진행 순서 # 1. travel 패키지를 C:\Python38\lib\random.py 여기로 옮겨본다. # 2. 기존 travel 패키지의 이름은 travel_temp라고 변..

Python 2021.03.09

[ Python ] 모듈 직접 실행(모듈이 잘 작동하는지 확인하는 방법)

파일명 : thailand.py class ThailandPackage: def detail(self): print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원") # 모듈 직접 실행 # 모듈이 잘 동작하는지 사전에 테스트를 해보아야 한다. if __name__ == "__main__": print("Thailand 모듈을 직접 실행") print("이 문장은 모듈을 직접 실행할 때만 실행돼요") trip_to = ThailandPackage() trip_to.detail() else: print("Thailand 외부에서 모듈 호출") 파일명 : travelPractice.py import travel.thailand trip_to = travel.thailand.Thail..

Python 2021.03.08

[ Python ] __all__ 사용해서 패키지의 모듈을 import 하는 방법.

travel package 의 thailand module class ThailandPackage: def detail(self): print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원")travel package 의 vietnam module class VietnamPackage: def detail(self): print("[베트남 패키지 3박 5일] 다낭 효도 여행 60만원")package를 import 하는 파일 # __all__ # from random import * from travel import * # 패키지 안에 포함된 것들 중에서 import 되기 원하는 것들만 공개하고 원하지 않는 것은 비공개 할 수 있다.(__init__) trip_to = vietn..

Python 2021.03.08

[ Python ] package

travel.thailand travel package(folder) 안에 있는 thailand module class ThailandPackage: def detail(self): print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원") travel.vietnam travel package(folder) 안에 있는 vietnam module class VietnamPackage: def detail(self): print("[베트남 패키지 3박 5일] 다낭 효도 여행 60만원")travelPractice.py # package : 모듈들을 모아놓은 집합 / 하나의 디렉터리에 여러 모듈 파일들을 갖다놓은 것을 # 신규 여행사 프로젝트를 담당하게 된 (태국, 베트남) # tr..

Python 2021.03.08

[ Python ] 모듈 ( module )

module # 모듈 (module) : 필요한 것들 끼리 부품처럼 잘 만들어진 파일이라고 보면 된다. # 자동차 타이어 마모, 펑크 -> 타이어만 교체 # 자동차 범퍼 고장 -> 범퍼만 교체 # 코드를 부품 교체하듯 부분만 교체하면 유지보수도 쉽고 코드의 재사용성이 수월해진다. # 파이썬에서는 함수 정의, 클래스 들의 파이썬 정의를 담고 있는 파일을 모듈이라고 한다. # 확장자가 .py 이다. # 영화를 볼 수 있는 극장이 있는데, 희한하게 현금만 받는다. # 잔돈을 바꿔주지도 않는다. # 현재 theater_module.py 파일 자체가 모듈이다. # 일반 가격 def price(people): print("{0}명 가격은 {1:,}원 입니다.".format(people, people * 10000)..

Python 2021.03.08

[ Python ] 대기 손님의 치킨 요리 시간을 줄이고자 제작한 자동 주문 시스템 코드를 확인하고 적절한 예외처리 구문을 넣으시오.

# Quiz) 동네에 항상 대기 손님이 있는 맛있는 치킨집이 있습니다. # 대기 손님의 치킨 요리 시간을 줄이고자 자동 주문 시스템을 제작하였습니다. # 시스템 코드를 확인하고 적절한 예외처리 구문을 넣으시오. # 조건1 : 1보다 작거나 숫자가 아닌 입력값이 들어올 때는 ValueError 로 처리 # 출력 메세지 : "잘못된 값을 입력하였습니다." # 조건2 : 대기 손님이 주문할 수 있는 총 치킨량은 10마리로 한정 # 치킨 소진 시 사용자 정의 에러[SoldOutError]를 발생시키고 프로그램 종료 # 출력 메시지 : "재고가 소진되어 더 이상 주문을 받지 않습니다." # ------------------------ 풀이 시작 ---------------------------- # [코드] cl..

Python 2021.03.07

[ Python ] finally

# 사용자 정의 예외처리 # ValueError : 파이썬에서 미리 제공하고 있는 에러 # 우리가 직접 정의해서 에러를 만들 수 있다. # finally : 오류가 발생하지 않건, 발생하건 무조건 제일 마지막에 실행되는 부분. # 오류 발생 여부와 상관없이 무조건 실행되는 finally 를 통해서 # 우리 프로그램의 완성도를 높일 수 있다. # Exception을 상속 받는다. class BigNumberError(Exception): def __init__(self, msg): self.msg = msg def __str__(self): return self.msg # 한자리 숫자에 대해서만 나눗셈을 허용하는 계산기 프로그램. try: print("한 자리 숫자 나누기 전용 계산기입니다.") num1 ..

Python 2021.03.07

[ Python ] 사용자 정의 예외처리

# 사용자 정의 예외처리 # ValueError : 파이썬에서 미리 제공하고 있는 에러 # 우리가 직접 정의해서 에러를 만들 수 있다. # Exception을 상속 받는다. class BigNumberError(Exception): def __init__(self, msg): self.msg = msg def __str__(self): return self.msg # 한자리 숫자에 대해서만 나눗셈을 허용하는 계산기 프로그램. try: print("한 자리 숫자 나누기 전용 계산기입니다.") num1 = int(input("첫 번째 숫자를 입력해주세요 : ")) num2 = int(input("두 번째 숫자를 입력해주세요 : ")) if num1 >= 10 or num2 >= 10: # 특정 조건에 에러를..

Python 2021.03.07

[ Python ] 에러 발생시키기.

# 의도적으로 에러 발생시키기. # 한자리 숫자에 대해서만 나눗셈을 허용하는 계산기 프로그램. try: print("한 자리 숫자 나누기 전용 계산기입니다.") num1 = int(input("첫 번째 숫자를 입력해주세요 : ")) num2 = int(input("두 번째 숫자를 입력해주세요 : ")) if num1 >= 10 or num2 >= 10: # 특정 조건에 에러를 발생시켜서 except 부분을 실행시킬 수 있다. raise ValueError print("{0} / {1} = {2}".format(num1, num2, int(num1/num2))) except ValueError: print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")

Python 2021.03.07

[ Python ] 예외 처리(try, except, Exception, as error 등)

# 예외 : 어떤 에러가 발생했을 때, 처리해주는 것. # 에러 : 실책, 실수, 잘못된 것을 입력했을 때 # 예시) 택새 기사님이 11층 배송지로 이동하는데 그 아파트는 10층까지 밖에 없을 때...등 # URL 잘못 적거나, 숫자를 입력해야 하는데 문자열을 입력했을 때. # 예시 문제) 나누기 전용 계산기 프로그램. # 방법 1. try: print("나누기 전용 계산기입니다.") num1 = int(input("첫 번째 숫자를 입력해주세요 : ")) num2 = int(input("두 번째 숫자를 입력해주세요 : ")) print("{0} / {1} = {2}".format(num1, num2, int(num1/num2))) # 실수 출력하지 않기 위해서 int() 형변환 except ValueEr..

Python 2021.03.07

[ Python ] Quiz) 주어진 코드를 활용하여 부동산 프로그램을 작성하시오.

# Quiz) 주어진 코드를 활용하여 부동산 프로그램을 작성하시오. # (출력 예제) # 총 3대의 매물이 있습니다. # 강남 아파트 매매 10억 2010년(준공) # 마포 오피스텔 전세 5억 2007년 # 송파 빌라 월세 500/50 2000년 # [코드] class House: # 매물 초기화 def __init__(self, location, house_type, deal_type, price, completion_year): self.location = location self.house_type = house_type self.deal_type = deal_type self.price = price self.completion_year = completion_year # 매물 정보 표시 def ..

Python 2021.03.07

[ Python ] 스타크래프트 후반전

# 스타크래프트 전반전 # 텍스트 기반으로 실제 게임을 하는 것처럼 프로젝트 만들기. from random import randint # 일반 유닛 class Unit: def __init__(self, name, hp, speed=0): self.name = name self.hp = hp self.speed = speed print("{0} 유닛이 생성되었습니다.".format(self.name)) def move(self, location): print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) def damaged(self, damage): print("{0} : {1} 데미지를 입었습니다.".format(s..

Python 2021.03.07

[ Python ] 스타크래프트 전반전

# 스타크래프트 전반전 # 텍스트 기반으로 실제 게임을 하는 것처럼 프로젝트 만들기. # 일반 유닛 class Unit: def __init__(self, name, hp, speed=0): self.name = name self.hp = hp self.speed = speed print("{0} 유닛이 생성되었습니다.".format(self.name)) def move(self, location): print("[지상 유닛 이동]") print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) def damaged(self, damage): print("{0} : {1} 데미지를 입었습니다.".format(self.nam..

Python 2021.03.07

[ Python ] super()

# super # 일반 유닛 class Unit: def __init__(self, name, hp, speed=0): self.name = name self.hp = hp self.speed = speed def move(self, location): print("[지상 유닛 이동]") print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage, speed=0): Unit.__init__(self, name, hp, speed) # 부모에게 값을 넘겨주어 초기화하는 작업. self.damage = d..

Python 2021.03.07

[ Python ] pass

# pass # 일반 유닛 class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed def move(self, location): print("[지상 유닛 이동]") print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage, speed=0): Unit.__init__(self, name, hp, speed) # 부모에게 값을 넘겨주어 초기화하는 작업. self.damage = dama..

Python 2021.03.07

[ Python ] 메소드 오버라이딩

# 메소드 오버라이딩 # 일반 유닛 class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed def move(self, location): print("[지상 유닛 이동]") print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed)) # 상속받을 때 '클래스명(상속받을 클래스명)' # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, damage, speed=0): Unit.__init__(self, name, hp, speed) # 부..

Python 2021.03.07
728x90
반응형
LIST