TigerCow.Door

 

안녕하세요. 문범우입니다.

최근 파이썬을 활용할 일이 많이 없었는데, 엊그제 문득 필요한게 생각나서 후다닥 파이썬으로 만들어보았습니다.


뭐라고 이름을 지어야할지 모르겠는데..

많은 분들도 만들어서 사용하시기도 하는 것으로 알고 있습니다.

제가 자주 보는 커뮤니티에서의 특정 게시판 상위 n개에 대해서 크롤링하여 링크를 포함한 헤드라인만 정해진 시각에 제 메일로 보내는 프로그램입니다.


저는 OKKY라는 커뮤니티에서 스터디, 뉴스, 행사에 관련된 3개 게시판에 대해 상위 5개 또는 3개의 글을 정해진 시각(오전, 점심, 오후)에 메일로 보내도록 하였습니다.


메일 내용을 더 꾸밀 수도 있겠지만..

일단은 심플하게 아래와 같이 메일이 전송됩니다 :)




실제로 이렇게 해두고 나니, 정해진 시각에 한번쯤 더 쳐다보게 되고 요새 바빠서 다양한 행사에 대해 관심가지지 못하고 있는데 이를 보완할 수 있을 것 같다는 생각이 듭니다.


관련 코드는 github에 올려두어 아래 링크에서 확인해보실 수 있습니다.


https://github.com/doorBW/event_crawl


코드에서도 확인하실 수 있으며, 사용된 내용들은 크게


1. requests와 bs4를 이용한 웹 크롤링

2. SMTP 서버를 통한 메일 보내기

3. crontab 활용하여 일정시간에 쉘스크립트 실행시키기


입니다. 각각에 대해서는 구글에 검색해보시면 다양한 자료를 찾아보실 수 있으니 추가적인 설명은 접어두도록 하겠습니다.


코드가 깔끔할지는 모르겠으나, 필요하신분들 참고하셔도 될 것 같습니다.

추가적으로 궁금한 점등의 문의사항은 언제든 댓글이나 카톡, 이메일로 연락주세요 :)

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc


안녕하세요. 문범우입니다.

이번에는 파이썬에서 집합 자료형에 대한 이야기를 하겠습니다.

해당 포스팅으로 자료형에 대한 이야기가 마무리 될 예정이며 이후에는 조금 더 빠르게 진도를 나가려 합니다. :)

그 동안 쉬엄쉬엄 조금씩 했더니 너무 느리게 진행되고 있다는걸 최근에서야 깨달은 것 같아서요.

빠르게 기본 개념을 학습하고, 예제를 풀며 심화학습하는 방식으로 진행하겠습니다.



1. 집합 자료형


집합 자료형과 리스트를 혼동하시는 분들도 있는데, 분명히 다른 자료형입니다.

집합 자료형을 통해서 우리는 집합에 관련된 것들을 쉽게 처리할 수 있습니다.

일단 집합 자료형을 만들어 보도록 하겠습니다.

집합 자료형은 아래 사진처럼 set키워드를 통해 만들 수 있습니다.



위의 사진과 같이 set() 의 괄호안에 리스트 또는 문자열을 입력하여 집합 자료형을 만듭니다.



2. 집합 자료형의 특징


그런데, 위의 사진에서 s2라는 집합에 대해 이상한 점을 보셨나요?

우리는 분명, "Hello, world!" 라는 문장을 입력했는데 빠진 글자가 있기도 하고 순서도 엉망이 되었습니다.

이는, 집합 자료형이 가진 아래와 같은 2개의 특징이 있기 때문입니다.


- 중복을 허용하지 않는다.

- 순서가 없다.(Unordered)


우리가 앞에서 학습했던 리스트나 튜플은 순서가 있기 때문에 인덱싱의 개념도 학습하고 이를 통해 자료형의 값을 얻어낼 수도 있었습니다. 하지만 집합 자료형, set 자료형은 순서가 없기 때문에 인덱싱이 존재하지 않습니다. 물론 바로 앞에서 학습했던 딕셔너리 자료형 또한 순서가 없기 때문에 인덱싱이 존재하지 않습니다.

만약, 집합 자료형으로 만든 값에 대해서 인덱싱을 처리하고 싶다면 list() 함수를 통해 집합 자료형을 리스트 자료형, 또는 tuple() 함수를 통해 튜플 자료형으로 변환해주셔야 합니다.



3. 집합 자료형 활용하기


집합 자료형에서는 교집합이나 합집합, 차집합등을 구할 수 있습니다.

각각에 대한 개념은 기초적인 개념이라 생각하고 설명은 생략하겠습니다.


먼저 교집합을 구하기 위한 기호는 '&' 입니다.



또한 아래의 사진 처럼 intersection() 함수를 사용해도 가능합니다.




두번째, 합집합은 '|' 기호를 통해 구할 수 있습니다.

또한, union() 함수를 사용해도 됩니다.




세번째, 차집합은 '-' 기호를 통해 구합니다. 이는 difference() 함수를 사용해도 됩니다.




4. 집합 자료형 관련 함수


집합 자료형과 관련된 함수들 중에서 몇가지만 소개해드리겠습니다.

먼저 하나의 값을 추가하는 add() 함수입니다.



그리고 한번에 여러개의 값을 추가하는 update() 함수입니다.




마지막으로 특정 값을 제거하는 remove() 함수입니다.



이렇게 해서 집합 자료형에 대해 살펴보았습니다.

다음 포스팅에서는 제어문에 대한 이야기를 해보도록 하겠습니다.

블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc