목록이것저것 코드/파이썬 (24)
one step
첫 번째 프로젝트 첫 번째 프로젝트는 이 웹페이지에서 진행합니다. 해당 페이지에 있는 다량의 데이터를 추출하고, 이를 가공함으로써 지금껏 배운 Selenium 과 Python 을 복습해보겠습니다. 지시사항 1) 웹에 있는 데이터를 구조화된 데이터(Structured Data)로 만들기 위해 class 를 먼저 정의합니다. 멤버 변수로 들어가야할 것은 다음과 같습니다. 국가명 수도 인구 면적 2) 국가별 정보가 담긴 요소를 모두 가져오고, 각 요소를 파이썬 class인 Country의 인스턴스로 만들어 country_list 에 추가합니다. 3) 모든 국가의 수도만 따로 list 를 만듭니다. 이 수도 목록을 sort() 또는 sorted() 를 이용하여 사전 순으로 정렬하고, 목록의 30번째 원소를 찾아..
ActionChains의 활용 저번 실습에서 했던 로그인 자동화를, ActionChains를 이용하여 다시 해보는 시간을 가집니다. ID와 비밀번호를 콘솔 에 입력하면, Selenium의 기능을 이용해 창에 자동으로 입력되고, 로그인 버튼을 클릭해서 로그인이 되도록 해봅시다. 키보드 입력 과 마우스 클릭 은 각각 chains.send_keys_to_element(e, "my_id") chains.click(e) 을 이용합니다. 지시사항 1) ID, 비밀번호, 로그인 버튼에 해당하는 요소를 찾아 각각 id_e, pw_e, login_e 에 넣습니다. 2) ActionChains의 인스턴스를 만들고, chains 에 넣습니다. 3) chains.send_keys_to_element() 를 이용해서 ID와 비..
게시글과 차단 게시글을 작성하고 포스팅하여 사람들에게 보여주는 Post클래스의 메서드를 구현합니다. Post 클래스는 다음과 같은 속성들을 가집니다. author : 게시글의 작성자 content : 게시글의 내용 comments : 게시글의 댓글들 (Post 인스턴스의 리스트) blocks : 해당 게시글의 차단당한 사람들(Post 인스턴스의 리스트) 작성해야할 코드는 다음과 같습니다. Post 클래스에 댓글을 추가하는 메서드 addComment를 구현합니다. 댓글의 작성자 comment_author와 댓글의 내용인 comment를 매개변수로 받습니다. Post 클래스의 속성 comments에 저장되는 형식은 [comment_author, comment] 입니다. Post 클래스에 차단 기능을 가진 a..
그래프를 그려보자 우측 코드의 빈 부분을 채워서 꺾은선 그래프를 완성하세요. 여러분이 작성해야 할 코드는 다음과 같습니다. font의 NanumBarunGothic.ttf 폰트를 저장하여 그래프에 한글 폰트 적용하기 data.py 모듈을 import 하여 x축, y축 데이터 가져오기 꺾은선 그래프 그리기 # 초기 코드 import matplotlib.pyplot as plt import matplotlib.font_manager as fm from elice_utils import EliceUtils elice_utils = EliceUtils() # 한글 폰트를 적용합니다. font = None # x축과 y축의 데이터를 저장하세요, x = None y = None # 꺾은선 그래프를 그립니다. # 아..
짧은 글 포스팅하기 짧은 글을 포스팅하는 Post 클래스를 구현합니다. Post 클래스는 다음과 같은 속성들을 가집니다. author : 작성자 content : 글의 내용 time : 글의 작성 시간 url : 해당 글의 위치인 url 주소 위의 Post 클래스의 속성들은 모두 특정한 조건에 해당하는 값들만이 들어 갈 수 있습니다. 그 조건은 다음과 같습니다. author : 알파벳 소문자로만 이루어진 문자열 content : 내용의 길이는 최소 1에서 최대 20으로 제한 time : 작성한 시간의 형식은 시:분:초로 저장됩니다. 00:00:00 ~ 24:59:59 의 범위를 가집니다. url : 일반적인 주소의 형식은 http:// 혹은 https://으로 시작하며 https://academy.eli..
비밀번호와 생일 비밀번호와 생일이 올바른 형식을 갖췄는지 확인하는 함수를 작성합니다. 작성해야 할 함수는 다음과 같습니다. validate_password(): 문자열 password를 매개변수로 받습니다 문자열이 8자 이상이고, 숫자, 영어 대문자, 영어 소문자를 모두 포함하고 있으면 True, 하나라도 만족하지 않으면 False를 return 합니다. validate_birthday(): 3개의 정수로 이루어진 튜플 birthday를 매개변수로 받습니다. 각각 연, 월, 일에 해당합니다.연도는 1900 이상 2018 이하의 숫자이며, 월/일은 존재하는 조합이어야 합니다. 이 조건을 만족하면 True, 아니면 False를 return 합니다. 아래의 is_leap_year() 함수를 이용합니다. is_..
게시물에 반응하기 Facebook에서는 좋아요 말고도 슬퍼요, 웃겨요 등의 반응을 남길 수 있습니다. 이 반응들은 공통적인 특성들을 갖지만, 분명 서로 다른 독립적인 성질을 갖고 있습니다. 추상적인 클래스를 활용하면 이 성질을 잘 나타낼 수 있습니다. 먼저, 모든 반응을 총칭하는 Reaction 클래스를 정의합니다. Reaction 클래스는 다음의 세 가지 속성을 갖습니다. reaction_type: Reaction의 종류를 나타냅니다. 알파벳 대문자로 이루어진 문자열이며, “LIKE”, “LOVE”, “HAHA”, “SAD”, “ANGRY”, “WOW” 중 하나입니다. 이 6개 이외의 값이 들어올 경우 ValueError가 발생합니다. post: Reaction을 남긴 게시물입니다. Post 인스턴스여..
좋아요 누르기 실습 2번에서는 1번에서 만든 Post 클래스에 페이스북에서 가장 중요한 기능인 좋아요를 추가해 보겠습니다. 실습 2번의 Post에서 달라지는 점은 다음과 같습니다. 1. likes 속성이 좋아요의 개수가 아닌 좋아요를 누른 사람들의 리스트를 의미합니다. 이 리스트의 사용자들은 좋아요를 누른 순서대로 정렬되어야 합니다. 2. 대신 좋아요의 개수를 얻을 수 있는 num_likes() 메소드를 추가합니다. 3. 좋아요 누르는 액션을 의미하는 like() 메소드를 추가합니다. 이 메소드는 User 클래스의 인스턴스를 매개변수로 받습니다. 만약 이미 사용자가 이 게시물에 좋아요를 눌렀다면 새로운 좋아요를 무시합니다. 조건에 맞게 Post 클래스를 완성했다면, 직접 인스턴스를 만들어 여러분의 코드를..
올바른 이메일인가요? 이 실습에서는 이메일 주소의 형식이 올바른지 확인하는 함수를 구현해 봅니다. 실제로 많은 웹사이트에서 회원가입 시에 이메일 주소의 형식을 체크하고, 올바르지 않다면 사용자에게 경고를 띄워 주고 있습니다. 올바른 이메일 형식은 다음의 조건들을 만족합니다. 하나의 @을 포함하는 문자열이어야 합니다. @을 기준으로 뒤쪽 부분이 도메인입니다. 도메인은 최소 한 개 이상의 .을 포함해야 하며, 연속된 .을 가질 수 없습니다. 우리가 구현할 validate_email(email) 함수는 이메일 주소를 매개변수로 받아, 이 주소가 위의 조건을 만족하는지 확인합니다. 만족하면 True, 아니면 False를 리턴합니다. 이 함수를 구현하기 위해, 파이썬 문자열(str)의 기본 메소드인 .count(..
이 실습에서는 주어진 값이 올바른 이름 형식을 따르고 있는지 확인하는 함수를 구현해 보겠습니다. 우리가 구현해야 할 함수, validate_name(name)은 name이라는 1개의 매개변수를 받습니다. 이 함수는 name이 숫자, 특수기호가 없는 문자열인지 확인합니다. name이 문자열이 아니거나, 숫자 혹은 특수기호를 하나라도 포함하면 False, 아니라면 True를 return 합니다. 이 함수를 구현하기 위해 2가지의 새로운 파이썬 기본 변수들을 사용합니다. string.digits: 모든 숫자를 이어 붙인 문자열"0123456789" 입니다. string.punctuation: 파이썬에서 기본적으로 입력 가능한 모든 특수문자 (,, ? 등) 을 모아 둔 문자열입니다. import string d..