본문 바로가기
반응형

Development/Python34

Mac 에서 Conda 설치 Mac 에서 Conda 는 간단히 설치가 가능 하다. . brew install conda .... ## 설치 완료시 anaconda was successfully installed! ➜ ~ conda -V zsh: command not found: conda 설치 완료 후에 실행을 해보면 저렇게 not found 가 나올수 있다. 현재 사용중인 터미널에 path 가 입력이 안되어서 저런 현상이 발생한다. ➜ ~ /usr/local/anaconda3/bin/conda init zsh no change /usr/local/anaconda3/condabin/conda no change /usr/local/anaconda3/bin/conda no change /usr/local/anaconda3/bin/con.. 2023. 4. 5.
파이썬 가상 환경 실행 및 VS Code 설정 파이썬 가상 환경 실행 방법 python -m venv 디렉토리명 python 3 부터는 venv 가 포함되어있어서 virtualenv 를 설치 하지 않아도 된다. 위와 같이 실행을 하면 입력한 폴더가 생성이 된다. 가상환경 실행은 폴더 하위에 Script 디렉토리에 있는 activate 를 실행 하면 된다. (mac 인 경우 source ./bin/activate 를 실행한다.) VS Code 설정 방법 - Ctrl + Shift + P 입력 (cmd + Shift + P) - 가상 환경 선택 또는 새로운 path 선택 (새로운 path 선택시 위에서 생성된 bin 디렉토리 또는 Script 디렉토리에 있는 python 을 선택하면 된다) 2023. 3. 27.
파이썬 문법 : 데코레이터 함수 함수의 앞 뒤 부가적인 기능을 넣어주고 싶을때 사용한다 클로저를 사용해서 구현한다. 데코레이터는 @를 함수위에 적용하여 사용한다 def logger(func): def wrapper(): print("함수시작") func() print("함수종료") return wrapper @logger def print_hi(): print("hi") print_hi() # OUTPUT 함수시작 hi 함수종료 매개변수 전달 @logger def print_hi(name): print(name, 'hi') print_hi("tom") # OUTPUT print_hi("tom") TypeError: logger..wrapper() takes 0 positional arguments but 1 was given 위와 같이.. 2023. 3. 13.
파이썬 문법 : 제너레이터 함수 이터러블 객체 순서가 있는 자료형 문자열, 리스트, 튜플, 딕셔너리, range 객체 __iter__(), __next__() 메소드가 정의되어있다. 제너레이터 함수 이터레이터를 만드는 함수이다. yield 사용한다 제너레이터 표현식을 사용해서 만들 수 있다. 메모리 사용이 효율적이다. List 같은 경우 결과 값을 메모리에 저장한다. 제너레이터의 경우 식만 저장할뿐 값을 저장 하지 않는다. __next__ 함수가 호출 될 때에 결과값을 만든다 # yield 사용 def gen_func(*args): for arg in args: yield arg month = gen_func('1월', '2월', '3월', '4월') print(month.__next__()) # 1월 print(month.__next.. 2023. 3. 9.
파이썬 문법 : 내부 함수, 클로저 내부함수 함수 안에서 정의 되는 함수 클로저(closure) 함수가 종료되어도 자원을 사용할 수 있는 함수 클로저 조건 내부함수 외부함수 변수를 참조해야 한다. 외부함수가 내부함수를 반환 해야 한다. def outer(name):# 외부함수 def inner():# 내부함수 print(name, "하이")# 외부함수 변수 참조 return inner# 내부함수 반환 callfunc = outer("tom") callfunc() # OUTPUT tom 하이 클로저 살펴보기 print(dir(callfunc)) # ['__annotations__', '__builtins__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__de.. 2023. 3. 6.
파이썬 문법 : method 인스턴스 메소드 인스턴스 속성에 접근하는 메소드 self 를 파라미터로 받는다. 클래스 메소드 클래스 속성에 접근하는 메소드 클래스를 의미하는 cls 를 파라미터로 받는다 @classmethod 를 붙인다 class Unit: count = 0 def __init__(self, name, weight, height, hidden): self.name=name self.weight=weight self.height=height self.__hidden=hidden Unit.count +=1 print(f"{self.name} Unit 생성") def __str__(self): return f"name={self.name} weight={self.weight} height={self.height}" # 인스.. 2023. 3. 3.
파이썬 문법 : class 속성들 인스턴스 속성 객체마다 다르게 갖고 있는 속성 코드에서 self 로 표기된 속성들이 인스턴스 속성이다. 클래스 속성 모든 객체가 공유하는 속성 count 가 클래스 속성 접근시에는 클래스이름.속성 으로 접근 (ex : Unit.count) 비공개 속성 클래스 안에서만 접근 가능한 속성 __hidden 이 비공개 속성이다. 외부에서 변경시 Unit.__hidden 으로는 접근이 불가능 하다 네이밍 맹글링에 의해서 접근은 가능하다 (unit1._Unit__hidden) class Unit: count = 0 def __init__(self, name, weight, height, hidden): self.name=name self.weight=weight self.height=height self.__hid.. 2023. 3. 2.
파이썬 문법 : map, filter 함수 map 함수 map(함수, 순서가 있는 자료형) map 의 결과는 map object 이기 때문에 사용하기 편한 list 형태로 변환한다. def remove_blank(x): return x.strip() items=[' mouse', ' monitor '] items=list(map(remove_blank, items)) print(items) # output # ['mouse', 'monitor'] # 람다함수로 표기할 경우 items=list(map(lambda x:x.strip(), items)) filter 함수 filter(함수, 순서가 있는 자료형) def func(x): return x < 0 print(list(filter(func, [-3, 0, 2, 7, -7]))) # output.. 2023. 2. 28.
파이썬 문법 : 람다 함수 람다함수를 사용하면 코드가 간결해진다 메모리 사용이 효율적이다. # 람다함수 선언 방법 lambda a : a-1 # 호출방법 1 : 그대로 호출 print ((lambda a:a-1)(10)) # 호출방법 2 : 변수에 담아서 호출 minus_ten = lambda a : a-10 print (minus_ten(100)) # 람다함수 if 문 사용 def is_positive_num(a): if a > 0: return True else: return False lambda a : True if a > 0 else False 개인적으로 함수 자체를 호출하는 방법보다는 변수에 담아서 호출하는게 가독성에는 더 좋아보인다. 2023. 2. 27.
파이썬 문법 : 키워드 가변 매개변수 kwargs kwargs 는 keyword arguments 매개변수 앞에 ** 가 붙는다 딕셔너리 로 인식한다. def comment_info(**kwargs): print(kwargs) for key,value in kwargs.items(): print(f'{key}:{value}') comment_info(name='test1', age=10) output {'name': 'test1', 'age': 10} name:test1 age:10 추가 사항 : 추가적으로 *args 는 임의의 개수의 argument 를 의미한다. kwargs 와는 달리 tuple 로 인식한다. 2023. 2. 27.
파이썬 문법 : 튜플 튜플은 () 로 정의된다 튜플은 값을 바꿀수 없다. t1 = () t2 = (1,) t3 = (1,2,3) t4 = 1,2,3 t5 = ('a', 'b', ('ab', 'cd')) 1개의 요소만 가질때에는 콤마(,) 를 붙여야 한다. 괄호가 생략 가능하다 개수가 정해지지 않은 매개 변수로 사용된다. (* 가 매개변수 앞에 붙는다.) = 위치가변 매개변수 def print_fruits(*args): print(args) for arg in args: print(arg) print_fruits('apple', 'banana', 'melon') output ('apple', 'banana', 'melon') apple banana melon 2023. 2. 27.
Python 가상환경 Python Virtualenv 프로젝트별 종속성 문제를 해결하기 위해서 가상환경을 제공한다. 동시에 여러개의 프로젝트 진행시 각각의 파이썬 버전이 다를경우 사용한다. virtualenv 환경 구성 pip install virtualenv D:\STUDY\study_python>virtualenv py3.8-env created virtual environment CPython3.8.5.final.0-64 in 6461ms creator CPython3Windows(dest=D:\STUDY\study_python\py3.8-env, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, whee.. 2022. 10. 27.
728x90
반응형