안녕세계
사용자로부터 입력받은 데이터를 파이썬에서 암호화하는 방법에 대해 알아봅니다.pycrypto 라이브러리를 fork하여 개선한 pycryptodome 또는 pycryptodomex를 사용하는 것을 권장합니다. pycryptodome- pycrypto를 대체하기 위해 개선된 라이브러리로 기존 코드와 호환됩니다.$ pip install pycryptodome pycryptodomex- pycrypto와 독립적인 완전히 새로운 라이브러리입니다.$ pip install pycryptodomex Sample Codeimport base64 import hashlib from Cryptodome import Random from Cryptodome.Cipher import AES from django.conf impo..
파이썬 requests 라이브러리를 사용하여 HTTP 요청을 하는 방법에 대해 알아봅니다.$ pip install requests 기본 사용법import requests url = 'https://www.google.com/ res = requests.get(url) res.status_code res.text get 요청과 query parameter 전달import requets params = {'param1': 'value1', 'param2': 'value'} res = requests.get(URL, params=params) post 요청과 body data 전달(1)import requests data = {'param1': 'value1', 'param2': 'value'} res = r..
[방법1] t = ((1, 'a'), (2, 'b')) ret = dict((y, x) for x, y in t) print(ret) # {'a': 1, 'b': 2} [방법2] *recommend t = ((1, 'a'), (2, 'b')) ret = dict(map(reversed, t)) print(ret) # {'a': 1, 'b': 2}Referenceshttps://stackoverflow.com/questions/3783530/python-tuple-to-dict
Iteratorcollection(list, tuple, set, dict), 문자열 등은 for문을 사용해여 데이터를 하나씩 처리할 수 있습니다.이 처럼 데이터를 하나씩 처리할 수 있는 collection이나 sequence를 Iterable Object라고 합니다.# List Iterable for n in [1, 2, 3]: print(n) # String Iterable for x in 'HelloWorld': print(x) 파이썬 built-in 함수 iter()는 iterator를 리턴합니다.iterator는 next()를 사용하여 다음 element를 가져옵니다.만약, 더이상 next() element가 없을 경우 StopIteration Exception을 발생시킵니다.m_list = [..
파이썬에는 switch 문이 없지만 switch 문과 동일한 기능을 하는 함수를 만들어 사용할 수 있습니다. [방법1] 함수로 구현한 switch 문 def switch(value): return { 'a': 'Apple', 'b': 'Banana' }.get(value, -1) # value 값이 존재하지 않을때 default 값으로 -1을 반환합니다. print(switch('a')) # Apple print(switch('c')) # -1 [방법2] 함수로 구현한 lambda switch 문 def switch(value): return { 'a': lambda x: x*10, 'b': lambda x: x+10 }[value](10) print(switch('a')) # 100 [템플릿1] res..
파이썬에서 활용되는 복사 유형에 대해 알아봅니다. 단순복사- 단순복사는 완전히 동일한 객체를 복사합니다.a = [1, [2, 3, 4]] b = a # b는 a와 같은 객체 주소를 바라 봅니다. print(b) # [1, [2, 3, 4]] b[0] = 100 b[1][0] = 100 print(a) # [100, [100, 3, 4]] print(b) # [100, [100, 3, 4]] * immutable 객체는 해당하지 않습니다.- immutable 참조변수를 수정하는 것은 값을 바꾸는 것이 아니라 새로운 객체를 할당하는 것입니다.a = 1 b = a print(b) # 1 b = 2 print(a) # 1 print(b) 얕은복사(shallow copy)# 방법1 b = copy.copy(a) ..
list에서 element 개수를 세는 방법에 대해 알아봅니다. 특정 element 개수 세기numbers = [1, 2, 3, 4, 1, 2, 1] ret = numbers.count(1) print(ret) # 3 모든 element 개수 세기from collections import Count numbers = [1, 2, 3, 4, 1, 2, 1] ret = Counter(numbers) print(ret) # Counter({1: 3, 2: 2, 3: 1, 4: 1}) print(dict(ret)) # {1: 3, 2: 2, 3: 1, 4: 1} for key in ret: print('key:', key, 'value:', ret[key]) # key: 1 value: 3 # key: 2 va..
list에서 dictionary를 정렬하는 방법에 대해 알아봅니다.people = [ {'name': 'kim', 'age': 10}, {'name': 'lee', 'age': 20}, {'name': 'park', 'age': 30}, {'name': 'choi', 'age': 40}, {'name': 'kim', 'age': 50}, ] [방법1] sorted()+ lambda - sorted()와 lambda를 사용하여 name으로 오름차순 정렬 후 age로 오름차순 정렬하는 방법입니다.data = sorted(people, key=lambda person: (person['name'], person['age'])) for d in data: print(d) # {'name': 'choi', 'ag..