[Python] isinstance 함수
·
언어/Python
isinstance isinstance(object, class )는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받으며, 인스턴스가 같은 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려준다. >>> class haha: pass >>> a = haha() >>> isinstance(a, haha) True >>> b = 32 >>> isinstance(b, haha) False 참고 링크 https://wikidocs.net/32#isinstance 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net
Python namedtuple (네임드 튜플)
·
언어/Python
introducing python 을 통해서 알게된 네임드 튜플이다. 간단하게 정리하자면 보통 튜플의 경우에는 인덱스를 통해서 튜플 접근이 가능한데, namedtuple 을 사용하면 key 값으로 접근이 가능하다고 볼 수 있다. 즉, key - value 로 작동하는 딕셔너리와 같이 작동한다고 보면 되지만, 튜플의 성질을 가진다. (참 뭔가 애매한것 같다..) 네임드 튜플은 아래와 같은 특성을 지니고 있다는데 1. 튜플의 기본 성질인 불변 객체 2. 일반 Class(객체) 형태보다 적은 메모리 사용 3. 다양한 접근법 지원(괄호, ) 4. Dictionary Key 와 같이 사용 아래의 예제가 네임드 튜플의 특성을 잘 보여주는 것 같다. from collections import namedtuple fr..
파이썬 데코레이터에 대해서?
·
언어/Python
파이썬에서 데코레이터란 기존의 코드에 여러가지 기능을 추가하는 파이썬 구문. @decorator def function(): print("I am a decorator!") 위와 같은 코드를 데코레이터라고 말한다. " @ " 심볼과 데코레이터 함수의 이름을 붙이는 간단한 구문을 사용하면 데코레이터를 사용할 수 있다. 대상함수를 wrapping 하고, 이 wrapping 된 함수의 앞 뒤에 추가적으로 꾸며질 구문들을 정의하여 재사용이 쉽도록 만들어 주는 것이다. 하나의 함수를 취해서 또 다른 함수를 반환하는 함수이다. def document_it(func): def new_function(*args, **kwargs): print('running function:', func.__name__) print(..
Python side project 04 : binary search (이진 탐색)
·
언어/Python
이틀에 걸쳐서 이진 탐색을 했었다. 처음에 왜 이렇게 하는지 이해를 하지못해서.. 또 사소한 데 코드를 잘못쳐서.. 디버깅하고 에러를 찾느냐 시간을 많이 사용했던 프로젝트였다. 우선, 이진 탐색이란, 탐색할 자료를 둘로 나누어 해당 데이터가 있을 만한 곳을 탐색하는 방법이다. 탐색 방법은 두가지가 있는데 위에서 설명한 이진 탐색과 순차 탐색 두가지이다. 아래의 이미지를 참고하면 훨씬 이해하기가 쉬울 것 같다. 이진 탐색의 이해 (순차 탐색과 비교하며 이해하기) 두번째, 순차탐색의 경우에는 타겟을 찾는데 많은 시간이 걸린다는 단점이 있다. 하지만 이진 탐색의 경우에는 분할 정복 알고리즘을 사용하여 문제를 해결 가능할때까지 쪼개서 순차 탐색보다 빠르게 문제를 분할하여 답을 찾아내는 방식이다. 이를 활용하여 ..
Side Project 03. AWS 에 데이터 넣기
·
프로젝트, 인강 그리고 책/Naver shopping Project
저번까지 해서 원하는 데이터들을 긁어오는 데에는 성공했다. 이제 이를 AWS 에 넣어보고자 한다.. 우선, AWS 의 RDS 에 들어가서 새로운 데이터베이스를 생성해준다. 이때 데이터 베이스의 선정 기준은 아래와 같다 1. 나에게 익숙한가 2. 현업에서 많이 사용하고 있는가 3. 저장하고자 하는 데이터의 형태는 무엇인가 총 3가지 이다. 이에 대한 답변은 우선 MYSQL 은 현재 회사에서도 사용하고 있기에 익숙한 DB이며, 현업에서도 가장 많이 사용하기 시작한 DB 이다. 그리고 무엇보다도 저장하고자 하는 데이터는 RDS 형태이므로 RDS 에서 빠른 처리속도를 보여주는 MYSQL 을 선택했다. 그리고 난 후에는 mysql 의 워크벤치에 aws 와 연결을 해주어 mysql 을 활성화 시켰다. 그리고 mys..
Python side project 03 : Email slicer (이메일 슬라이서)
·
언어/Python
지금 개인적으로 진행하고 있는 파이썬 사이드 프로젝트들은 꽤 간단한 편이다. 생각보다는 쉬워서 건너뒤고 다른 것을 해볼까 싶기도 하지만, 잠깐 잠깐 공부하고, 다시 기초를 다진다는 생각으로 하면서 점차 어려운 프로젝트로 발전시켜 나가면 좋을 것 같다 그런 의미에서 오늘은 간단한 email slicer 를 만들었다. 이메일을 입력하면 도메인 주소와 아이디를 분류해주는 코드이다. 처음에는 그저 어려운줄 알았지만, 막상 자료를 찾아보니 꽤 쉬웠다. emails = input("이메일을 입력해주세요!").strip() # -> strip()를 써준 이유는 input 입력과정에서 # 공백이 만들어질 수 있기에 이를 방지해주고자 썻다. # 다른 프로젝트에서 input 을 사용할 때 위 방법을 응용하면 공백방지에 도..
python error : list indices must be integers or slices, not str
·
Error code 모음/4. Python errors
이 에러는 인덱싱을 할 때 있어서, 인덱싱으로 기입해준 문자열이 제대로 일치하지 않거나 잘못되었을 때 나타나는 에러이다. 최근에 자주 이런 에러를 만났었는데. indices 가 뭐지... 곰곰히 생각을 하다가..문득.. indices 는 index 의 복수형.. 이라는 것을 깨달앗다. 그토록 많이 외웟던 단어이건만... 이 에러가 나올 때마다..다시 찾고 바로 해결하고 넘어가느냐..에휴... 바보스럽다..ㅠㅠ 앞으로는 이런 것을 보면 인덱싱 쪽에 문제가 있다는 것을 캐치해야겟다 주의! 참고링크 https://www.codeit.kr/community/threads/7 TypeError: list indices must be integers or slices, not str 오류 | 코드잇 새로운 코딩 교..
Python side project 02 : Rolling Dice (주사위 게임)
·
언어/Python
이번에는 주사위 게임을 프로젝트로 간단하게 만들어보았다. 프로젝트 아이디어는 아래 링크에서 참고했다 https://data-flair.training/blogs/python-project-ideas/ Python Project Ideas for 2020 - Work on real-time projects to head start your career - DataFlair Work on Python Project Ideas for beginners, intermediates, and experts to boost your career, strengthen your resume and become Python expert. data-flair.training 처음에는 그저 막연하게 어려워 보여서 미뤄왔던 프..
python study : Generator
·
언어/Python
제너레이터(Generator)는 파이썬의 시퀀스를 생성하는 객체이다. 제너레이터로 전체 시퀀스를 한번에 메모리에 생성하고 정렬할 필요 없이, 잠재적으로 아주 큰 시퀀스(예를 들면 range 등..)을 순회할 수 있다. def rangess(first = 0, last = 100, step = 1): number = 0 while number > rangers = rangess(1,20) >> rangers 이 개념에 대해서 보았을 때는 아무리 쳐도 의 말이 나와서 어떤 것을 저장한다는지 이해가 잘 되지 않았었는데.. 다시 보고 이해가 되지 않는 것들을 찾아보았다. 왜, 값을 리턴하지 않고 객체가 나오지..?라는 의문이 가시지를 않아 계속 찾아보고 있었는데, 때마침 제너레이터에 대해서 잘 정리해준 글을 올..
python error: do_this( ) takes 1 positional argument but 15 were given
·
Error code 모음/4. Python errors
해당 에러는 파이썬에서 나타나는 전달된 인자 갯수와 관련된 에러타입이다 함수는 위치 인자를 1개 취하는데, 이 개수보다 많은 인자가 위치 인자로 전달되었거나, 특정하게 지정되지 않은 인자가 전달되지 않았을 때 나타나는 에러이다. 이 상황은 주로 2가지 상황에서 나타나는 것 같은데.. 첫번째는 class 함수에 self 가 들어가지 않았을 때 위 첫번재 에러의 경우에는 아직 코드로 구현을 하지 않아서 . 나중에 참고하기 위해 링크를 남겨둔다 https://stackoverflow.com/questions/23944657/typeerror-method-takes-1-positional-argument-but-2-were-given TypeError: method() takes 1 positional argu..