프로그래밍
-
파이썬 코드 암호화프로그래밍/Python 2021. 6. 24. 23:36
파이썬은 기본적으로 인터프리터 언어여서 소스코드가 쉽게 공개된다는 단점이 있다. https://namu.wiki/w/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0 물론 가장 기본적인 exe변환 프로그램인 auto py to exe에서 to onefile을 하면 어느정도 해결되는 경우도 있다. 하지만 이것이 완벽한지는 잘 모르겠다. 그리고 파이썬 소스코드를 암호화할 수 있는 모듈을 발견하였다. https://pypi.org/project/sourcedefender/ sourcedefender Advanced encryption protecting your python codebase. pypi.org 이에 대한 사용법은 추후에 다루어보겠다.
-
프로그래밍 SWAP(교환) 알고리즘에 대한 고찰(c, python)프로그래밍 2021. 6. 11. 19:00
프로그래밍의 가장 기본이되는 알고리즘인 swap알고리즘에 대해 알아보겠습니다. swap알고리즘은 말 그대로 두 변수에 있는 수를 교환하는 방법입니다. SWAP을 구현하는 방법에 대해 알아봅시다. ●(공통)이 swap을 구현하는 가장 일반적인 방법은, 이용하는 방법입니다. ●(Python) 이 임시변수 없이 다음과 같은 코드로 swap을 구현할 수 있습니다. x, y = y, x ●(공통)비트연산자인 XOR을 이용하여 임시변수를 사용하지 않고 swap을 구현할 수 있습니다. 원리 숫자 a, b가 있다고 하였을 때, a^b^a의 결과는 b입니다. 이유 교환법칙을 적용한다면 자기 자신(a^a)을 xor하게되고 이것의 결과는 0이 되기 때문입니다. (a^b^a == a^a^b == b) 예시) 110 ^ 001..
-
Python - 달팽이 배열 설명(1)프로그래밍/Python 2021. 6. 8. 00:48
달팽이 배열 달팽이 배열은 주어진 수(n)에 맞춰 nxn의 이중 배열을 생성하여, 시계 방향으로 숫자가 순차적으로 저장되는 배열입니다. 달팽이 배열의 구현 아이디어 1. 한 변의 길이가 주어진 정사각형의 최외각에 숫자를 채워넣는 함수를 제작합니다. n=5일때의 결과는 아래 예시와 같을 것입니다. 2. 바깥에서 부터 1의 과정을 반복하여 한겹씩 채워나갑니다. 여기에서 알 수 있는 것을 알아봅시다. 위 예시 그림에서 사각형의 크기는 5->3->1로 -2의 차이를 보이고 있습니다. 2차원 리스트로 주어졌을 때, 각 반복마다(흰->초록->주황) 시작위치는 (0,0) -> (1,1) -> (2,2)가 됩니다. 이를 구현해봅시다. 혹시나 이해가 되지 않는 부분이 있다면, 망설이지 말고 댓글로 남겨주세요. 😀 1. ..
-
Python - lambda expr에 대한 상세한 설명.프로그래밍/Python 2021. 6. 6. 00:13
기본 정의 및 사용법 (lambda forms라고도 불리는) Lambda 표현(expression)은 익명의 함수(이름이 존재하지 않는, 선언 당시에만 사용하는 (해석)함수) (anonymous functions)를 만들기 위해 사용됩니다. lambda Expression은 function object를 yield시킵니다. yield에 대한 설명은 다음 링크를 참조하십시오. (link) (yield를 모르는 독자를 위해 간단히 말하자면, yield는 return(반환)과 비슷한 역할을 합니다.) Expression(표현, 문법) lambda_expr ::= "lambda" [parameter_list] ":" expression 람다표현식은 다음과 같이 정의됩니다. lambda [parameter_lis..
-
Python - List Comprehension(리스트 표현식)프로그래밍/Python 2021. 6. 4. 16:14
List Comprehensions : 리스트 표현식 리스트 표현식은 리스트를 만드는 간결한 방식을 제공합니다. 비교 : 리스트 표현식과 기존의 방식들 예제 : 0~10의 제곱수를 담은 squares라는 리스트를 만들어보자. squares = [] for x in range(10): squares.append(x**2) 문제점 : x라는 변수가 loop 이후에도 존재. squares = list(map(lambda x: x**2, range(10))) squares = [x**2 for x in range(10)] 방식2와 비교하였을 때, 보다 간결하고 가독성이 뛰어나다는 것을 알 수 있습니다. 리스트 표현식(listcomp)는 expression과 뒤에 따라오는 for문, 그 뒤에 따라오는n개의 for..
-
PyQt 폴더 선택프로그래밍/Python 2021. 5. 29. 18:09
file = str(QFileDialog.getExistingDirectory(self, "Select Directory")) 원문, 참고 https://stackoverflow.com/questions/4286036/how-to-have-a-directory-dialog how to have a directory dialog In PyQt, how does one display a file browser that shows and selects only directories (not files)? And how does one retrieve the name of the selected directory? stackoverflow.com
-
JavaScript ==(동등 연산자), ===(일치 연산자)에 대한 고찰프로그래밍/JavaScript 2021. 4. 29. 23:43
먼저 결론부터 var var1=?, var2=?; //?는 어떤 자료형의 데이터라고 생각하자. var1 === var2; // 의미 : var1 == var2 && typeof(var1) == typeof(var2) var1 !== var2; // 의미 : var1 != var2 || typeof(var1) != typeof(var2) 연산자 이름의 영문 표기를 보면 보다 확실하다. == : equal operator === : strict equal operator ps. JavaScript는 "10" == 10 : true로 취급한다.. (아.. 이런..) 결과
-
파이썬 and or not의 연산 결과, 파이썬의 참과 거짓프로그래밍/프로그래밍 2021. 4. 18. 00:59
6. Expressions — Python 3.9.4 documentation 6. Expressions — Python 3.9.4 documentation 6. Expressions This chapter explains the meaning of the elements of expressions in Python. Syntax Notes: In this and the following chapters, extended BNF notation will be used to describe syntax, not lexical analysis. When (one alternative of) a syntax rul docs.python.org and or로 삼항연산을 할 수 있다고.. 조건 and 참 or 거짓