Microsoft PowerPoint Python-TextData.pptx

Similar documents
Microsoft PowerPoint Python-Function.pptx

OCW_C언어 기초

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap04-연산자.pptx

PowerPoint Presentation

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint 웹 연동 기술.pptx

adfasdfasfdasfasfadf

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - CSharp-10-예외처리

C# Programming Guide - Types

슬라이드 1

강의 개요

MySQL-.. 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - e pptx

03 상수, 변수, 자료형

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint PythonGUI-socket

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

윈도우즈프로그래밍(1)

Microsoft PowerPoint Python-Web.pptx

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

歯MW-1000AP_Manual_Kor_HJS.PDF

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - [2009] 02.pptx

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

11장 포인터

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

PowerPoint 프레젠테이션

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - CSharp-2-기초문법

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

PowerPoint 프레젠테이션

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

3 장디지털코드 1. BCD 코드와 3초과코드 2. 다양한 2진코드들 3. 그레이코드 4. 에러검출코드 5. 영숫자코드 한국기술교육대학교전기전자통신공학부전자전공 1

PowerPoint Presentation

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

PowerPoint Template

Slide 1

PowerPoint Presentation

게시판 스팸 실시간 차단 시스템

QR Code 복구記

17장 클래스와 메소드

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - chap-11.pptx

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

Tcl의 문법

Index

윤성우의 열혈 TCP/IP 소켓 프로그래밊

PowerPoint 프레젠테이션

PowerPoint Presentation

<C6F7C6AEB6F5B1B3C0E72E687770>

PowerPoint Template

Web Scraper in 30 Minutes 강철

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint Python-DB

Microsoft PowerPoint - lec2.ppt

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 15-MARS

Microsoft PowerPoint - chap11.ppt [호환 모드]

8장 문자열

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

Microsoft PowerPoint Python-WebDB

윈도우시스템프로그래밍

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

TEST BANK & SOLUTION

Visual Basic 반복문

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft Word - PLC제어응용-2차시.doc

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

슬라이드 1

Microsoft PowerPoint 세션.ppt

JVM 메모리구조

Slide 1

Transcription:

: 모든것은제자리에있습니다. 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 모든프로그램은데이터를처리 중요한데이터중하나가텍스트 (text) 데이터 텍스트데이터는문자, 문자열로구성 이장에서는텍스트데이터를검색하고, 위치를찾는프로그램학습 메서드와같은핵심적인프로그래밍개념습득 라이브러리코드를사용하여프로그래밍능력향상 ASCII 코드, 유니코드, UTF-8 순천향대학교컴퓨터공학과 2

스타버즈커피응용예 스타버즈커피는커피전문프랜차이즈 스타버즈 CEO 는순익을더올리기위해좋은아이디어가떠올랐음 커피원두의현재시가를보여주는프로그램을작성해서스타버즈지점에서언제원두를사야하는지의판단을지원하는프로그램이필요 순천향대학교컴퓨터공학과 3 원두가격웹사이트 Beans R US ( 빈자러스 ) 웹사이트에서커피원두의현재가격정보를가져옴 http:// cs.sch.ac.kr/prices.py 순천향대학교컴퓨터공학과 4

지금까지구현된스타버즈코드 [ 실습 1] import urllib.request page = urllib.request.urlopen("http://cs.sch.ac.kr/prices.py") text = page.read().decode("utf8") print(text) 지금까지아래와같이파이썬코드를구현 무엇을하는코드? 순천향대학교컴퓨터공학과 5 보층학습 코드분석 import urllib.request urllib.request 모듈 ( 라이브러리 ) 참조 page = urllib.request.urlopen("http://cs.sch.ac.kr/ prices.py") urlib.request 모듈의 urlopen 함수 지정된 url(uniform resource locator, 웹사이트주소 ) 의웹페이지를가져와서 page (HTTPResponse 객체 ) 에저장 웹페이지는 HTML 문서 HTML(HyperText Markup Language) text = page.read().decode("utf8") utf8 로코드화된 (encode) 문서를해독 (decode) 하여유니코드 (Unicode) 로 text 에저장 이장끝보충학습에서소개 순천향대학교컴퓨터공학과 6

시험주행 순천향대학교컴퓨터공학과 7 가격은 HTML 안에 구현된코드는 HTML 텍스트전체를가져옴 HTML 은원래웹페이지를작성하기위한언어 원두커피가격은출력메시지중간에있음 순천향대학교컴퓨터공학과 8

스트링 스트링 (string) 은연속된문자들로문자열이라고함 스타버즈프로그램에서출력된내용은스트링의한예 스트링의어딘가에있는원두의가격에해당하는문자추출하면가격정보만추출할수있음 순천향대학교컴퓨터공학과 9 텍스트안에서글자찾기 (1) 컴퓨터는두가지정보를사용하여글자위치기억 스트링의시작위치와각글자의오프셋 (offset) 순천향대학교컴퓨터공학과 10

텍스트안에서글자찾기 (2) 파이썬에서는변수이름다음대괄호안에오프셋값으로특정글자를지정 오프셋값을인덱스 (index) 라고도함 대괄호안에두개의인덱스를사용하여서브스트링 (substring) 표시 text[3] => "m" text[7:11] => "head" 두번째인덱스 ( 이것자체는제외 ) 까지의일련의글자 11-7 = 4 글자 순천향대학교컴퓨터공학과 11 스타버즈코드 - 가격정보추출 [ 실습 2] HTML 전체텍스트에서가격정보는인덱스 172:176 까지 4 글자 import urllib.request page = urllib.request.urlopen("http://cs.sch.ac.kr/prices.py") text = page.read().decode("utf8") price = text[172:176] print(price) 순천향대학교컴퓨터공학과 12

시험주행 순천향대학교컴퓨터공학과 13 Beans R US 우수고객사이트 Beans R US 는우수고객에게다음사이트에할인된원두커피가격정보를제공 http://cs.sch.ac.kr/prices-loyalty.py 순천향대학교컴퓨터공학과 14

스타버즈코드 - 우수고객사이트 스타버즈도 Beans R US 우수고객이되어우수고객사이트로접속하도록코드수정 import urllib.request page = urllib.request.urlopen("http://cs.sch.ac.kr/prices-loyalty.py") text = page.read().decode("utf8") price = text[172:176] print(price) 순천향대학교컴퓨터공학과 15 시험주행 순천향대학교컴퓨터공학과 16

가격정보위치변경 우수고객에대한웹페이지는동적이어서가격정보의위치가수시로변경됨 이전페이지처럼고정된위치인덱스 172 에서시작하지않음 변하지않는것은가격정보가언제나서브스트링 ">$" 다음에시작한다는것 순천향대학교컴퓨터공학과 17 파이썬스트링메서드 (1) 파이썬은스트링변수를처리하는다양한내장된기능을제공 예 : msg = "Soonchunhyang University" print(msg.upper()) => SOONCHUNHYANG UNIVERSITY 출력 msg 는스트링변수 ( 객체 ) upper() 는스트링메서드라고함 메서드는스트링에대한특정처리를요청하는내장된기능 upper() 는스트링변수에게데이터의대문자버전을요청하는메서드 순천향대학교컴퓨터공학과 18

파이썬스트링메서드 (2) 메서드 text.startswith("<html>") text.endswith(".jpg") text.upper() text.lower() text.replace("hate","love") text.strip() text.find("python") 메서드가하는일 스트링제일앞에주어진서브스트링을갖고있다면참을반환 스트링제일뒤에주어진서브스트링을갖고있다면참을반환 대문자로변환된스트링사본을반환 소문자로변환된스트링사본을반환 스트링에서모든특정서브스트링을다른서브스트링으로바꾼후바뀐스트링사본을반환스트링의앞뒤공백을제거한스트링사본을반환 주어진서브스트링이발견된첫번째인덱스값을반환 순천향대학교컴퓨터공학과 19 스타버즈코드 - 우수고객사이트 [ 실습 3] import urllib.request page = urllib.request.urlopen("http://cs.sch.ac.kr/prices-loyalty.py") text = page.read().decode("utf8") where = text.find(">$") start_of_price = where + 2 end_of_price = start_of_price + 4 price = text[start_of_price: end_of_price] print(price) 순천향대학교컴퓨터공학과 20

시험주행 순천향대학교컴퓨터공학과 21 원하는가격이될때알림 스타버즈 CEO 는커피원두가격이 $4.74 이하로내려가는때를알고싶어함 프로그램은가격이내려갈때까지 Beans R US 웹사이트를계속감시 프로그램에루프를추가해서원두가원하는가격이될때실행을멈춤 순천향대학교컴퓨터공학과 22

스타버즈코드 - 원하는가격알림 import urllib.request price = 99.99 while price > 4.74: page = urllib.request.urlopen("http://cs.sch.ac.kr/pricesloyalty.py") text = page.read().decode("utf8") where = text.find(">$") start_of_price = where + 2 end_of_price = start_of_price + 4 price = text[start_of_price: end_of_price] print("buy!") 순천향대학교컴퓨터공학과 23 시험주행 TypeErrorr 가의미하는것은? 순천향대학교컴퓨터공학과 24

스트링형과숫자형 프로그램에서스트링과숫자를비교해서에러 price > 4.74 변수를참조할때데이터형 (type) 을고려 두데이터가서로다른형이라면서로비교할수없음 서로같은형이되도록형변환 형변환예 알아맞히기게임 guess = int(g) -> 스트링 g 를정수형으로변환하여 guess 에저장 float("4.99") -> 부동소수점숫자 ( 실수 ) 로변환 순천향대학교컴퓨터공학과 25 스타버즈코드 - 원하는가격알림 [ 실습 4] import urllib.request price = 99.99 while price > 4.74: page = urllib.request.urlopen("http://cs.sch.ac.kr/pricesloyalty.html") text = page.read().decode("utf8") where = text.find(">$") start_of_price = where + 2 end_of_price = start_of_price + 4 price = float(text[start_of_price: end_of_price]) print("buy!") 순천향대학교컴퓨터공학과 26

시험주행 순천향대학교컴퓨터공학과 27 Beans R US 서버과부하 Beans R US 서버에과부하를유발 price 값이 4.74 보다크면루프를반복하고다시요청 프로그램은시간당수천개의요청을전송 전세계모든스타버즈매장이같은프로그램을사용하여수많은요청을서버에전송 가격정보요청을천천히전송하는방법은? 순천향대학교컴퓨터공학과 28

라이브러리 시간라이브러리 (library) 를사용하여매 15 분마다요청 라이브러리란? 프로그램에서사용할수있도록미리작성된코드들 < 라이브러리이름 >.< 함수이름 > 라이브러리사용예 import urllib.request -> urllib.request 라이브러리를사용하겠다고선언 page = urllib.request.urlopen("http://...") -> urllib.request 라이브러리의 urlopen() 함수호출 순천향대학교컴퓨터공학과 29 파이썬시간라이브러리 함수 time.clock() time.daylight() time.gmtime() time.localtime() time.sleep(secs) time.time() time.timezone() 함수가하는일 호출된이후부동소수점수로표현된초단위의경과시간 ( 윈도우 ) 현재일광절약시간 (daylight savings time, 서머타임 ) 이적용되어있지않으면 0을반환현재의 UTC(Universal Time Coordinated, 협정세계시 ) 날짜와시간을알려줌현재의지역시간을알려줌 지정한시간 ( 초 ) 동안아무일도하지않음 1970 년 1 월 1 일이후지나온시간을초단위로알려줌 UTC 표준시간대 ( 런던 ) 와지역표준시간대간의시차를시간단위로알려줌 순천향대학교컴퓨터공학과 30

스타버즈코드 : 웹요청지연 [ 실습 5] import urllib.request import time price = 99.99 while price > 4.74: time.sleep(900) page = urllib.request.urlopen("http://cs.sch.ac.kr/pricesloyalty.html") text = page.read().decode("utf8") where = text.find(">$") start_of_price = where + 2 end_of_price = start_of_price + 4 price = float(text[start_of_price: end_of_price]) print("buy!") 순천향대학교컴퓨터공학과 31 시험주행 순천향대학교컴퓨터공학과 32

프로그래밍도구상자 (1) 프로그래밍도구 스트링은일련의개별문자들로구성 스트링에서개별문자들은인덱스로참조 인덱스값은 0에서시작하는오프셋 메서드로변수에내장된기능을사용 라이브러리는미리구현된연관있는기능들의집합 변수안의데이터는값뿐만아니라데이터형도갖고있음 숫자는데이터형 스트링도데이터형 순천향대학교컴퓨터공학과 33 프로그래밍도구상자 (2) 파이썬도구 s[4] 는스트링인 s 변수의 5 번째글자를나타냄 s[6:12] 는스트링 s내의 7번째부터 13번째 ( 이것자체는제외 ) 까지의서브스트링을나타냄 s.find() 메서드는스트링을검색 s.upper() 메서드는스트링을대문자로변환 float() 는스트링을부동소수점수 ( 실수 ) 로변환 + 는더하기연산자 > 는보다크다연산자 urllib.request는웹접속을위한라이브러리 시간라이브러리 (time) 는날짜 / 시간에관한기능을제공 순천향대학교컴퓨터공학과 34

보충학습 ASCII 코드 ASCII 코드 American Standard Code for Information Interchange 미국에서표준화한정보교환용 7비트부호체계 000(0x00) 부터 127(0x7F) 까지총 128개의부호가사용 순천향대학교컴퓨터공학과 35 보충학습 유니코드 컴퓨터는 1,0 만을저장하므로문자는미리정의된 2 진값 ( 코드 ) 으로표현 유니코드 (Unicode) 는전세계문자를컴퓨터로표현하는산업표준 31 비트코드, 대부분 21 비트로표현 U+16 진수로표시 ASCII ( 영문, 숫자, 기호 ): U+00 U+7F ex) U+41 A,..., U+7A z 한글코드범위 : U+AC00 U+D7AF ex) U+AC00 가, U+AC01 각,..., U+D7A3 힣 http://ko.wikipedia.org/wiki/ 유니코드참조 순천향대학교컴퓨터공학과 36

보충학습 한글유니코드... 순천향대학교컴퓨터공학과 37 보충학습 UTF-8 UTF (Unicode Transformation Format) 유니코드를위한가변길이문자인코딩방식 UTF-8 유니코드한문자를나타내기위해 1-4 바이트사용 변환 U+0000 U+007F, 7 비트 => 그대로인코딩, ASCII 해당 U+0080 U+07FF, 11 비트 => 110xxxxx 10xxxxxx U+0800 U+FFFF, 16 비트 => 1110xxxx 10xxxxxx 10xxxxxx 한글해당 U+10000 U+1FFFFF, 21 비트 => 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx http://ko.wikipedia.org/wiki/utf-8 참조 순천향대학교컴퓨터공학과 38

보충학습 UTF-8 변환예 A, 가유니코드변환 A U+41 100 0001 7 비트 => 그대로인코딩 가 U+AC00 1010 1100 0000 0000 16 비트 => 1110xxxx 10xxxxxx 10xxxxxx 11101010 10110000 10000000 EA B0 80 순천향대학교컴퓨터공학과 39 2 장실습 [ 실습 1] 스타버즈첫코드 [ 실습 2] 스타버즈코드 - 가격정보추출 [ 실습 3] 스타버즈코드 - 우수고객사이트 [ 실습 4] 스타버즈코드 - 원하는가격알림 [ 실습 5] 스타버즈코드 : 웹요청지연 [ 실습 6] UTF-8 변환예 순천향대학교컴퓨터공학과 40

2 장과제 1. [ 실습 1] ~ [ 실습 6] 의프로그램작성및실행과정 2. 스타버즈코드 : 원하는가격알림 을수정하여작성하고실행 원하는가격이될때를알리고, 해당가격과시간도출력 3. 앞에서배운내용을사용한임의의프로그램작성 ( 임의의웹페이지접속하여분석하는프로그램추천 ) 프로그램설명 프로그램소스 실행결과 순천향대학교컴퓨터공학과 41