본문 바로가기

코딩 연습/코딩배우기164

[python] 파이썬 클래스와 객체의 본질, 그리고 독특한 특성 ■ 객체 변수의 선언과 초기화 # 아래 클래스에서 메서드 정의만 보이고 변수 선언은 없지만, 파이썬은 객체에 필요한 변수 i를 알아서 생성해준다. i변수가 생성되는 시점은 객체 내에서 해당 변수를 대상으로 대입연산을 처음 진행하는 순간임 class Simple1: def set_i(self, i): self.i = i def get_i(self): return self.i s1 = Simple1() s1.set_i(200) # 객체 내 변수 i 생성, 200 대입(할당) print(s1.get_i()) # 200 s12 = Simple1() #s12.get_i() # 객체 내 i 변수 미생성 단계에서 호출하면 오류 발생 # AttributeError: 'Simple' object has no attrib.. 2020. 9. 9.
[python] 파이썬 sort(), sorted() 알아보기 파이썬 sort()는 원본을 변경시키는 함수인 반면 sorted()는 원본을 변경시키지 않는 정렬 방법의 함수이다. # 리스트 sort() ls = [3, 1, 4, 2] ls.sort() # 오름차순이 디폴트임 print(ls) # [1, 2, 3, 4] 원본 변경시킴 ls = [3, 1, 4, 2] ls.sort(reverse = True) # 내림차순 print(ls) lt = [('yoon', 33), ('lee', 35), ('park', 29)] lt.sort() print(lt) # [('lee', 35), ('park', 29), ('yoon', 33)] 이름 순 lt.sort(reverse = True) print(lt) # [('yoon', 33), ('park', 29), ('lee'.. 2020. 9. 8.
[python] 파이썬 enumerate와 문자열 비교 enumerate는 iterable객체를 인자로 전달받아 iterator객체를 생성하는 enumerater객체임 bando = ['강동원', '이정현', '권해효', '이레', '이예원'] enum_order = enumerate(bando) for n in enum_order: print(n) ''' (0, '강동원') (1, '이정현') (2, '권해효') (3, '이레') (4, '이예원') ''' for n in enumerate(bando, 1): # 시작번호 부여 print(n) ''' (1, '강동원') (2, '이정현') (3, '권해효') (4, '이레') (5, '이예원') ''' # 딕셔너리로 만들기 dname = {} for k, v in enumerate(bando, 1): dna.. 2020. 9. 8.
[python] 파이썬 시간 관련 함수, time() datetime() timezone() 파이썬 웹 사이트 개발 연습 중, UI에 표시할 날짜와 시간을 어떻게 표시할 지 고민했는데, 파이썬 시간 관련 함수인 time(), datetime(), timezone()을 사용하면 얼마든지 만들어 사용할 수 있었다. pytz 라이브러리는 pip로 설치하고 사용해야한다. # pip install pytz from pytz import common_timezones, timezone from datetime import datetime from time import time, localtime, gmtime, ctime print(datetime.today()) # 2020-09-08 11:27:41.561416 print(datetime.now()) # 2020-09-08 11:27:41.561416 .. 2020. 9. 8.
[python] 순서와 중복을 허용하지 않는 파이썬 set(), frozenset() 함수 # 파이썬의 시퀀스 타입(sequence type)은 list, tuple, string, range # set(), frozenset()는 집합 관련 자료형으로 셋 타입이라 하며, iterable 객체이고, # set()은 저장된 값의 순서정보가 없고 중복된 값을 허용(저장)도 않는다. print(set('anaconda')) # {'o', 'a', 'n', 'c', 'd'} # set() 정의는, s = {} print(type(s)) # dict 정의임 s1 = {1,} print(type(s1)) # set 정의됨 s2 = set() print(type(s2)) # # 중괄호 내 값의 형태에 따라 type이 결정됨 #sd1 = set(1, 2, 3) # 정의 불가 # TypeError: set e.. 2020. 9. 3.
[python] 파이썬 내장함수 zip()에 대해 ■ zip()은 동일한 개수로 이루어진 자료형을 묶어 튜플로 만드는 함수이다. lzip = zip(['a', 'b', 'c'], [1, 2, 3]) # 리스트 tzip = zip(('a', 'b', 'c'), (1, 2, 3)) # 튜플 szip = zip('abc', (1, 2, 3)) # 문자열과 튜플 print(lzip) # zip 반환 객체는 iteable 객체임 # for i in lzip: # tzip, szip / 3가지 모두 동일하게 튜플 출력 print(i) ''' ('a', 1) ('b', 2) ('c', 3) ''' # 반환 형태 변환도 가능 # 반환되는 튜플을 리스트로 만듦 print(list(zip(['a', 'b', 'c'], [1, 2, 3]))) # [('a', 1), ('b.. 2020. 9. 3.
[python] Django 3.1 Tree ■ 파이썬 웹프레임워크인 장고(Django) 트리구조 django 3.1 Tree ├─__pycache__ │ shortcuts.py │ __init__.py │ __main__.py │ ├─apps │ │ config.py │ │ registry.py │ │ __init__.py │ │ │ └─__pycache__ │ config.cpython-38.pyc │ registry.cpython-38.pyc │ __init__.cpython-38.pyc │ ├─bin │ │ django-admin.py │ │ │ └─__pycache__ │ django-admin.cpython-38.pyc │ ├─conf │ │ global_settings.py │ │ __init__.py │ │ │ ├─app_templa.. 2020. 8. 31.
[python] 딕셔너리(dict) 알아보기 - 생성, 루핑, 컴프리헨션, setfault, orderedDict ■ dict 생성 d1 = {'a': 1, 'b': 2, 'c': 3} d2 = dict([('a', 1), ('b', 2), ('c', 3)]) d3 = dict(a = 1, b = 2, c = 3) d4 = dict(zip(['a', 'b', 'c'], [1, 2, 3])) # zip() 함수 d5 = dict({'a': 1, 'b': 2, 'c': 3}) #d6 = dict(('a', 1), ('b', 2), ('c', 3)) # TypeError print(d1 == d2 == d3 == d4) # True print(d1) print(d2) print(d3) print(d4) print(d5) # {'a': 1, 'b': 2, 'c': 3} / d1~5 모두 동일 ■ dict의 for loop .. 2020. 8. 29.
[python] Image 다운로드 후 Thumbnail 만들고 이미지 품질 조정하기 ■ 웹사이트에서 큰 이미지를 다운로드 후, png 타입 썸네일 이미지를 만든다. ■ 원본 이미지에 대해 여러 품질(quality)의 이미지를 만든다. ■ 관련 라이브러리 설치 pip install requests pip install pillow pip install pilkit import requests from PIL import Image from pilkit.processors import Thumbnail # 이미지 다운로드 후 저장 image_url = 'https://cdn.pixabay.com/photo/2020/08/14/13/57/cat-5488070_960_720.jpg' img_binary = requests.get(image_url).content with open('./cat... 2020. 8. 29.
[python] map과 filter 대신 리스트 컴프리헨션 사용하기 ■ map()함수는 함수와 리스트를 인자로 받고, 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 다음, 그 결과를 새로운 리스트에 담아준다. ■ filter()함수는 리스트 원소들을 함수에 적용하여 결과가 True인 값만 뽑아서 새로운 리스트를 만든다. # map map1 = map(lambda x: x ** 2, range(5)) print(map1) # print(list(map1)) # [0, 1, 4, 9, 16] # filter odd_nums = filter(lambda x: x % 2, range(10)) print(odd_nums) # print(list(odd_nums)) # [1, 3, 5, 7, 9] # map, filter 사용 map_fil = map(lambda x: x**2.. 2020. 8. 26.