본문 바로가기

python

(11)
python/파이썬/웹크롤링/웹크롤러/crawling 크롤링(crawling) 이란? 상에 존재하는 자료를 수집하는 작업을 말한다. 페이지의 HTML를 가져와 HTML/CSS 등 을 파싱한 후, 필요한 데이터만 추출하는 기법이다. 실시간 음악 차트를 보여주는 음원 사이트인 '벅스 뮤직'의 실시간 음원 차트 100 순위를 파이썬을 이용하여, 크롤링해보자. requests 와 BeautifulSoup 라이브러리를 사용할 것이다. 1 2 3 import requests from bs4 import BeautifulSoup from datetime import datetime as dt cs 1 2 3 4 request = requests.get('https://music.bugs.co.kr/chart') print(request) html = request.te..
python/파이썬/class/ # 이 블로그는 공부용 블로그로, 틀린 부분이 있을 수 있으며, 계속해서 수정합니다. class는 데이터와 데이터를 처리하는 메소드(클래스 내부에서 만든 함수)를 가지고 있는 자료형이다. 클래스 이름은 다른 변수와 헷갈리지 않게 하기 위해서 일반적으로 첫 문자를 대문자로 만들어 사용한다. 생성자(초기자) 메소드를 만든다. => __init__() 생성자(construnctor)란, 객체(클래스로 만든 변수)가 생성될 때 자동으로 실행되는 함수로 class 멤버 변수를 초기화 시키는 목적으로 사용된다. self 는 클래스 자기 자신을 의미하며 객체가 생성될 때 자기 자신이 전달된다. 메소드의 첫 번째 인수는 무조건 self 를 사용한다. def __init__(self): 멤버 변수 초기화 변수 이름 앞에..
파이썬/python/마방진 문제 마방진은 가로, 세로, 대각선 어느 방향으로 합계를 계산해도 같은 값이 나오는 숫자의 배열이다. 마방진에는 다음과 같은 규칙이 있다. 1. 홀수 행렬에서만 가능하다. 2. 최초의 '1'이 채워지는 자리는 첫 줄 정 가운데 열이다. 3. 직전에 채워진 숫자가 행렬의 차수(n)의 배수면 다음 숫자는 아래 방향만 채운다. 4. 직전에 채워진 숫자가 행렬의 차수(n)의 배수가 아니면 다음 숫자는 오른쪽 위 방향에 채운다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 print ("Hello, world!") n = int(input('1이 아닌 홀수를 입력하시오 : ')) if n % 2 == 0: print('다시 입력하시오 : ') i..
python/파이썬/지그재그정렬 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 i, j = map(int, input('2차원 리스트를 만들려하는 행과 열의 개수를 입력하세요 : ').split()) data = [[0] * j for i in range(i)] n = 0 start = 0 end = len(data[0]) - 1 sw = 1 for i in range(len(data)): for j in range(start, end + sw, sw): n += 1 data[i][j] = n start, end = end, start sw *= -1 for i in range(len(data)): for j in range(len(data[0])): print('%3d..
파이썬/python/달팽이 배열 123456789101112131415161718192021222324252627# 달팽이 배열data = [[0] * 5 for i in range(5)] # 0이 5행5열로 들어가 있는 2차원 리스트n = 0; s= 1; i = 0; j = -1; k = 5 while True: for p in range(1, k + 1): n += 1 j += s data[i][j] = n # for 끝 =================================================== k -= 1 if k
파이썬/python/주민등록번호검증문제 유효한 주민등록번호인지 아닌지를 판별하는 코드를 짜보자. 판별 방법은 아래와 같다. - 기본 주민등록코드에는 각 숫자에 대응하는 가중치가 있다. 가중치는 주민등록번호의 순서에 따라 '2 3 4 5 6 7 8 9 2 3 4 5 ' 이다. 먼저 마지막 숫자는 제외하고, 기본코드의 각 12자리와 가중치를 모두 곱하여 합한다. 합한 값을 11로 나눈 나머지 값을 구한다. 11에서 그 나머지 값을 뺀 후, 이를 10을 나눈 나머지를 구한다. 나머지의 1의 자리 값과 주민등록번호 마지막 자리 값이 맞아야 유효한 주민등록번호이다. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 checkNo = '234567892345' # 가중치 kssn =in..
python/파이썬/유클리드 호제법/ 숫자 2개를 입력받아 그 두 수의 최대공약수, 최소공배수를 구하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a, b = map(int, input('숫자 2개를 입력하세요 : ').split()) r = 1 if a > b: high = a; low = b else: high = b; low = a while r > 0: r = high % low high = low low = r l = a * b // high print('최대공약수 : {}, 최소공배수 : {}'.format(high, l)) Colored by Color Scripter cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 a, b = map(int..
python/파이썬/로또추첨기 만들기/ 1. 먼저 숫자 1부터 45까지 채워서 추첨기를 준비한다. lotto = [] # 로또 추첨기로 사용할 빈 리스트 선언 for i in range(1, 46): lotto.append(i) # 1부터 45까지 숫자를 채움. 혹은 lotto = [i for in range(1, 46)] 2. lotto 리스트에 저장된 데이터를 1줄에 10개씩 2자리로 출력한다. for i in range(len(lotto)): # lotto 리스트의 길이만큼(45) i를 반복한다. ...?? 하나 모자란거 아님...? 길이(45) - 1이니까.. print('%02d' % lotto[i], end = '') # i를 순서대로 출력, 사이에는 공백 if (i + 1) % 10 == 0: # 10개씩 출력하고 pirnt() ..