본문 바로가기

반응형

Dev

(44)
[Python] if val 과 if val is not None 어떤 것을 사용해야 하는가 환경: python 3.10 개발을 하다보면 변수에 값이 있는지 없는지를 검사하기 위해 if문을 사용하는 경우가 있습니다. 이 경우, 아래 2개의 코드 중 어떤것을 사용해야 하는지 고민에 빠지게 됩니다. if val: #데이터가 있으니 처리 if val is not None: #데이터 처리 위 2가지 경우는 어떻게 사용하느냐에 따라 사용자가 예상하지 못했던 값을 돌려주기도 합니다. 먼저 if val is not None을 작성하면 python에서는 is 연산자를 호출합니다. is 연산자는 좌/우의 값이 같은 오브젝트인지 확인합니다. (None 변수는 파이썬에서 싱글톤으로 구현되어 있음) 그리고 if val의 경우, if는 다음값으로 boolean이 올 것으로 예상합니다. 하지만 val은 boolean 타..
[Python] 웹 페이지 크롤링 기초 : 주소 확인, 셀렉터 복사 (1) 환경 : Python 3.10 사용 라이브러리 : beautifulsoup4 (4.10.0) requests (2.26.0) 매주 로또 당첨번호를 확인하고 사용하고 있는데 이 패턴을 자동화 하고 싶어 작성하였습니다. 먼저 로또 당첨번호를 확인하기 위해 동행복권 사이트로 이동합니다. 메인 화면 좌측에 당첨번호가 보이지만 해당 회차만 확인 할 수 있습니다. 이전 회차 당첨번호를 확인하기 위해 아래로 이동하였습니다. '당첨결과 > 회차별 당첨번호' 이동한 페이지는 아래와 같습니다. 위 페이지에서 회차, 당첨번호, 당첨금액 등을 확인 할 수 있습니다. 구현하고자 하는 것은 이번주 당첨번호를 불러와 당첨번호 파일에 이어서 붙여넣기를 하는 것인데 한번에 여러회차에 대한 정보를 호출할 필요도 있을 것 같습니다. 해당..
[python] zip을 이용한 단어 비교 문자열에 관한 알고리즘을 풀 경우 아래와 같은 문제가 출제되는 경우가 있다. "dog"라는 문자열에서 한 개의 문자만 바꾸어 "cog"가 될 수 있는가? 위 문제를 풀 경우 보통 for문을 2번 사용하여 비교할 것이다. 아래와 같이 zip을 활용하면 간단히 해결할 수 있다. s1 = "dog" s2 = "cog" diff = 0 for a,b in zip(s1,s2): if a != b: diff +=1 print (f'{s1=} {s2=} {diff=}') zip 클래스를 보면 아래와 같이 리스트를 넣었을 때 각 요소를 묶어 돌려준다. 문자열 위치비교시 해당 방법을 사용하면 유용할 것 같다.
AWS General Immersion Day 후기 : AWS Network(1) AWS VPC (Virtual Private Cloud) 사용자가 정의하는 가상의 네트워크 공간입니다. VPC내에서 사용자는 네트워크를 설정할 수 있습니다. IP 범위, 서브넷, 라우팅, ACL 등 VPC 내에는 여러개의 EC2가 생성될 수 있으며 각각에 사설 IP가 부여됩니다. 공인 IP할당도 가능합니다. VPC 생성 순서 리전 선택 및 IP 주소 범위 설정 -> 인터넷 게이트웨이 생성 -> 필요 서브넷 정의 -> 라우팅 구성 -> 트래픽 제어 위의 흐름에 따라 순차적으로 교육을 받았습니다. VPC 생성 상세 내용 1. 리전 선택 어느 리전에 VPC를 생성할지 선택 합니다. 한국에서 선택할 경우 보통 '아시아 태평양(서울) ap-northeast-2'를 선택합니다. 2. 주소 범위 설정 CIDR(Cla..
AWS General Immersion Day 후기 : Overview 지난 7월 AWS 원데이클래스 교육을 받았습니다. 상세한 설명이 조금 부족하지만 전체적인 흐름을 다시 한번 기억하기 위해 작성해봅니다. 교육을 받으며 들었던 생각은 '이래서 다들 AWS를 쓰는구나' 입니다. 학생 때 가볍게 사용할때는 생각도 못했던 기능이나 편의성들이 있습니다. Overview 리전, 가용영역, 데이터 센터 1개의 리전은 2개 이상의 가용영역을 포함하고 있습니다. 1개의 가용영역은 1개 이상의 데이터 센터를 포함하고 있습니다. 리전은 데이터센터를 클러스터링하는 물리적 위치입니다. 가용영역은 국내에 4개가 있습니다. 가용영역은 글로벌간 연결되어 있으며 100GbE로 구축되어 있습니다. AWS는 다양한 서비스를 제공하고 있습니다. 이전에 사용할때는 클라우드 정도만 알고 사용하였는데 교육에서 ..
[최소 힙] 파이썬 코드 및 그림 설명 Python 3.10 파이썬에서 힙 사용 예제입니다. import heapq N = [3,6,1,8,2,4,11,9] heap = [] for i in N: heapq.heappush(heap, i) print (f'{heap=}') # 실행결과 heap=[3] heap=[3, 6] heap=[1, 6, 3] heap=[1, 6, 3, 8] heap=[1, 2, 3, 8, 6] heap=[1, 2, 3, 8, 6, 4] heap=[1, 2, 3, 8, 6, 4, 11] heap=[1, 2, 3, 8, 6, 4, 11, 9] N 배열의 요소를 하나씩 heap에 추가하는 예제입니다. 위의 각 요소를 실행한 결과를 그림으로 보면 아래와 같습니다. 최소 힙이기 때문에 낮은 숫자가 위에 위치하여야 하며, 부모 노..
[dijkstra] 백준 1753 파이썬 import sys import heapq input = sys.stdin.readline INF = int(1e9) N, M = map(int, input().strip().split()) start = int(input()) graph = [[] for _ in range(N+1)] distance = [INF]*(N+1) for i in range(N): a, b, c = map(int, input().strip().split()) graph[a].append((b,c)) def dijkstra(start): q = [] heapq.heappush(q, (0, start)) distance[start]=0 while q: dist, now = heapq.heappop(q) if distance[no..
[django] ModelForm을 사용하여 데이터 등록 환경: django 3.2.8 django 프로젝트 진행 중 ModelForm을 이용하여 데이터를 등록하는 작업을 진행하였습니다. template(html)과 url은 구현이 되어있다고 가정하였을 때, views.py에는 아래와 같이 구현합니다. def registerAcademy(request): form = AcademyForm() if request.method =='POST': form = AcademyForm(request.POST) if form.is_valid(): form.save() return redirect('home') context = {'form':form} return render(request, 'base/academy_form.html',context) 위 코드에서 사용된 ..

반응형