IT/파이썬 2021. 6. 15.
파이썬 - 여러개 값 관리 - 리스트, 튜플, 딕셔너리 멀 쓰나?
이거 할 때 마다 헷갈림 리스트, 튜플, 딕셔너리 비슷비슷한데 쩝... 여러개를 하나의 묶음으로 관리를 한다면 먼가 리스트 형태의 변수가 필요하다. 그냥 리스트만 알고 쓰면 좋은데 리스트 일단 대괄호로 만든다. [ ] 이렇게 말이다. 그냥 C에서 배열이라 생각하면 연계성이 생긴다. 추가, 삭제, 변경이 가능한데 아래 함수를 이용해서 해라 추가는 append() 삭제는 remove() https://velog.io/@inyong_pang/Python-List-Tuple-Dictionary-and-Set-%EC%9A%94%EC%95%BD List 함수 정리 append(원소) :리스트의 뒤쪽에 새로운 원소를 삽입 extend(리스트) : 리스트의 뒤쪽에 다른 리스트를 삽입 insert(인덱스, 원소) : 특..
IT/파이썬 2021. 6. 15.
파이썬 *args, **kwargs 의미는?
*args , **kwargs 이런 단어들이 파라메터로 나타나서 가끔 당황하게 만드네. 별거 아닌 거 같은데, 명확하게 적어둬....(찾아서 정리만 해 둬도 되) 아래 글로 방문해서 보면 끝!! https://ddanggle.gitbooks.io/interpy-kr/content/ch1-args-kwargs.html *args는 키워드 되지않은 가변 갯수의 인자들을 함수에 보낼 때 사용합니다. for arg in args: print ("*argv의 다른 인자", arg) **kwargs는 키워드된 가변 갯수의 인자들을 함수에 보낼 때 사용합니다.(역주: 가장 큰 차이는 keyword이냐 nonkeyword이냐입니다.) **kwargs는 함수가 이름이 지정된 인자를 처리할 때 사용해야합니다. if kwa..
IT/파이썬 2021. 6. 15.
Flask redirect 할 때 POST 데이터도 같이 넘기기
그냥 쉽게 url 을 불러 줄 때는 그냥 redirect(url) 하면 되는데, POST (form) 데이터를 같이 넘겨주려니 또 찾아보게 되네. 머 어렵지 않게 할 수 있는 예제를 찾아서 남겨둠 https://pythonbasics.org/flask-http-methods/ user = "username" return redirect(url_for('success',name = user)) url_for 함수에 함수 endpoint 와 함께 그냥 넘겨주면 되네. BJ. Polina Zimmerman 님의 사진, 출처: Pexels
IT/파이썬 2021. 6. 11.
파이썬 - dictionary 처리 관련해서, empty check, 추가하기
리스트 말고 딕셔너리 dictionary 타입 처리는 어떻게? 맨날 헷갈려서 그냥 적어두자. 비어있는지 체크하는 방법은 아래와 같다. https://stackoverflow.com/questions/23177439/python-checking-if-a-dictionary-is-empty-doesnt-seem-to-work test_dict = {} if not test_dict: print "Dict is Empty" if not bool(test_dict): print "Dict is Empty" if len(test_dict) == 0: print "Dict is Empty" 아이템 추가는 https://www.kite.com/python/answers/how-to-append-a-value-to-a..
IT/파이썬 2021. 6. 9.
파이썬 - 순환 참조 문제 Circular Imports 에러
파일 여러개로 작업할 때 서로 순환참조되어 호출 되는 경우가 많다. 필요할 때 딱 쓰려고 import 했는데, 그 파일에 이미 자신의 파일이 import 되어서 쓰고 있으면 왠만해선 넘어가지 않고 머라머라 순환참조 문제일 수 도 있다고 Warning 이나 Error 가 발생한다. 요거 참 곤란한데 아주 좋은 해결책이 있었네. 아래 분의 블로그에 가시면 아주 자세하게 설명이 잘 되어 있으니 꼭 들어가 보시고, TYPE_CHECKING 상수를 활용하는 방법으로 import 순환 문제는 해결할 수 있을 거 같다. https://item4.blog/2017-12-03/Resolve-Circular-Dependency-on-Python-Typing/ Python typing으로 인한 순환 참조 대응책 Python..
IT/파이썬 2021. 5. 24.
파이썬 리스트 삭제, clear
파이썬 리스트를 제거하는 방법이 여러가지 있네. 아이템을 지울때는 그냥 del, 전체 지울 때는 clear 를 쓰면 되겠다. 자세한 내용은 아래 글을 참고합시다. 고마운분들~~ https://ponyozzang.tistory.com/587 Python 리스트 값 삭제 clear, pop, remove, del 파이썬에서 리스트 형태에 저장된 값을 삭제하는 방법을 보겠습니다. 리스트에서 값을 삭제하기 위해서는 함수를 사용하거나 범위를 지정해 삭제할 수 있습니다. 종류 내용 clear() 모든 요 ponyozzang.tistory.com BJ. Engin Akyurt 님의 사진, 출처: Pexels
IT/파이썬 2021. 5. 20.
파이썬 - 함수 전달인수에 * 가 있다면 멀까?
아래 글 보다 더 잘 설명할 순 없다. 그냥 아래 글에 들어가셔용~~ https://sjquant.tistory.com/31?category=797018 파이썬에서 arguments로 *(별표)만 쓴 경우!? fastapi 의 코드를 보던 중 함수의 arguments 로 *만을 쓴 것을 발견했다. 난생 처음 본 표현법이라서 직접 테스트 해보며 뭔지 알아냈다. ...(생략) def get_param_sub_dependant( *, param: inspect.Parameter,.. sjquant.tistory.com *를 사용하면 *이후의 arguments들을 keyword arguments로 강제할 수 있다. 예를들어 아래와 같이 정의한 경우에는 recipient와 what을 positional argum..
IT/파이썬 2021. 5. 7.
jinja2 에서 문자열 변환 함수 - 파이썬 str() 함수 같은 것
요거요거 신경 쓰이게 많이 했다. 쉽다. 정답은 아주 쉽다. jinja2 에서 문자열로 바꾸려면 str() 이렇게 쓰는 게 아니라 {{ 변수 | str }} 혹은 {{ 변수 | string }} 으로 쓰면 된다. 이것 찾느라 고생이었다. 난 ObjectId 값을 바로 문자열과 비교하니깐 같은 값인데 같다고 안나오니 환장할 노릇. 알고 보니 ObjectId를 먼저 string 으로 바꾸고 비교해야 하네.. {% if pre_orderitem == (orderitem_from["id"] | string) %} 참조한 사이트는 바로 아래~~ webisfree.com/2019-02-06/jinja2%EC%97%90%EC%84%9C-%EC%88%AB%EC%9E%90-%EB%98%90%EB%8A%94-%EB%AC%..
IT/파이썬 2021. 4. 16.
예외를 직접 발생시키기 - raise Exception
설명 필요없고, 아래 글 참고. raise Exception 함수내에서 Exception 처리하면 함수 호출 한 곳에서는 Exception이 발생이 안되니까, 별도로 Exception 처리이후에도 호출 쪽에서 그 내용을 알아야 한다면 강제로 raise Exception을 이용해서 예외를 다시 전달해 주도록 하자. dojang.io/mod/page/view.php?id=2400 파이썬 코딩 도장: 38.3 예외 발생시키기 지금까지 숫자를 0으로 나눴을 때 에러, 리스트의 범위를 벗어난 인덱스에 접근했을 때 에러 등 파이썬에서 정해진 예외만 처리했습니다. 이번에는 우리가 직접 예외를 발생시켜 보겠습니다. 예 dojang.io def three_multiple(): x = int(input('3의 배수를 입력..
IT/파이썬 2021. 4. 15.
Windows 10 SDK 설치 - dll 오류 같은 것이 나면
(아직 작성중인 글로 해결중인 블로그 글입니다. 최종 업데이트 하면 이 메시지는 사라집니다.) 그냥 Windows 10 SDK 설치를 하세요. 여러모로 좋아요 Pyinstaller dll 오류가 많이 나서 찾아보니, 이런 답변이 많네요. api-ms-win-core- dll 같은 것들이 오류나 로그에 많이 나타나네요 윈도우 10에서는 WARNING: lib not found: api-ms-win-core-*.dll같은 에러가 출력되는데 이를 해결하기 위해 아래의 페이지를 참고하자. developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/ Windows 10 SDK - Windows app development Windows App Certifica..
IT/파이썬 2021. 4. 14.
파이썬 bytearray 배열 reset 하기
마이크로파이썬 micropython 의 세계로 들어가고 있다. 점점..하다보니 bytearray를 새로 만드는 것은 정말 자료도 많이 있는데, 이미 만들어진 bytearray를 다시 리셋 시켜주는 코드를 찾기가 쉽지 않네. 물론 가장 쉽게 할 수 있는 방법은 for i in range(len(your_array)): your_array[i] = 0 요거 더 잘하는 방법이 있을 것 같아서 찾아본 결과. $ ./upython MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version Use Ctrl-D to exit, Ctrl-E for paste mode >>> a = bytearray(10) >>> id(a) 139728051341376 >>> a[:] =..
IT/파이썬 2021. 3. 19.
파이썬 pyside2 IP address 입력 창 만들기 - PyQt5 QLineEdit
파이썬 pyside2 IP address 입력 창 만들기 PyQT5, Pyside2를 이용한다면 아래 코드를 참고하면 IP address만 받는 입력 박스을 얻을 수 있다. 정규식과 Validator 를 활용하는 방법이 정말 좋아 보인다. ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])" # Part of the regular expression # Regulare expression ipRegex = QRegExp("^" + ipRange + "\\." + ipRange + "\\." + ipRange + "\\." + ipRange + "$") ipValidator = QRegExpValidator(ipRegex, self) lineEdit = QLine..
IT/파이썬 2021. 3. 16.
파이썬 여러 widget 이 하나의 슬롯(callback/signal) 함수 사용하기
버튼 클릭이든, cellchanged 든 위젯을 쓰다보면 이벤트에 반응하는 함수를 구현해서 써야 한다. 버튼이 여러개 인데 거의 동일한 기능을 한다든지 혹은 위젯 배열로 구성했다던지 할 때 각각 signal 함수를 만들면 편리한 점도 있지만, 코드 낭비가 심하다는 기분이 많이 든다. 그래서 찾아보니 sender() 라는 함수가 있어서 동일한 함수를 써도 누가 보내는지 구분할 수 있도록 되어 있다. 이젠 거의 대부분 같은 기능을 하는 중복 함수라면 같이 사용하면 되겠다. 아래 예제 코드의 일부분은 QLineEdit 위젯에 글자를 쓰면 원하는 글자만 받도록 만드는 filter 기능을 넣고 싶을 때 사용한 코드이다. 물론 QLineEdit 가 배열형태로 많이 있는 페이지에서 동일한 필터를 사용하는 경우 사용하..