PowerPoint 프레젠테이션

Similar documents
8장 문자열

A Review of C Programming

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

PowerPoint Presentation

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

adfasdfasfdasfasfadf

PowerPoint Presentation

OCW_C언어 기초

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

Microsoft PowerPoint - chap06-1Array.ppt

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

강의 개요

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

C++ Programming

C# Programming Guide - Types

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

02 C h a p t e r Java

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

01-OOPConcepts(2).PDF

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

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

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

쉽게 풀어쓴 C 프로그래밍

C 프로그램의 기본

Microsoft PowerPoint - 27.pptx

Observational Determinism for Concurrent Program Security

14장 파일

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

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

Tcl의 문법

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - [2009] 02.pptx

APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF 예제로보는 네트워크엔지니어를위한 Python 101

슬라이드 1

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

PowerPoint Presentation

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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Visual Basic 반복문

chap 5: Trees

슬라이드 1

282서비스업관리-마트

쉽게

쉽게 풀어쓴 C 프로그래밍

02장.배열과 클래스

PowerPoint Presentation


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

Design Issues

DocsPin_Korean.pages

본 강의에 들어가기 전

MySQL-.. 1

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

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

Microsoft PowerPoint - Java7.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

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

Microsoft PowerPoint 웹 연동 기술.pptx

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

문서의 제목 나눔고딕B, 54pt

PowerPoint Template

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - Chapter_04.pptx

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

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

PowerPoint Template

본책- 부속물

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

Microsoft PowerPoint - 2장 변수와 자료형 pptx

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

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

PowerPoint Presentation

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

JVM 메모리구조

11장 포인터

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

chap x: G입력

Microsoft PowerPoint - e pptx

PowerPoint Presentation


Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - Regular Expresssions.ppt

슬라이드 1

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

설계란 무엇인가?

중간고사

OCW_C언어 기초

Transcription:

Chapter 2 문자열 (string) 다루기형변환 (type casting) 2014. 5. 29

문자열 문자열은 (single quote) 또는 (double quote) 로묶인문자 (character) 들의열이다. Python 에서문자열은시퀀스 (sequence) 자료형이다. 시퀀스자료형 여러객체들을저장하는저장자료형 각객체들은순서를가짐 순서를가지므로각요소들은첨자 (index) 를이용하여참조가가능함.

시퀀스자료형인경우할수있는일 인덱싱 (indexing) [i] i 번위치의값하나를취함 슬라이싱 (slicing) [i:j] i 부터 j 사이구간의값을취함 연결하기 (concatenation ) - + 두시퀀스자료를붙여서새로운자료를생성 반복하기 (repetation) - * 시퀀스자료를여러번반복하여새로운자료를생성 멤버십테스트 (Membership test) - in 어떤값이시퀀스자료에속하는지를검사 길이정보 len 시퀀스자료의크기를나타냄

Offset 인덱싱 (indexing) 과슬라이싱 (slicing) 0 1 2 3 4 5 6 7 8 9 10 11 12 B I T E C P y t h o n [: 시퀀스의시작 -4-3 -2-1 :] 시퀀스의끝 인덱싱은 [offset] 형식으로사용 Offset 은 0 부터시작하며정수형이어야함 >>> string_test = 'BITEC Python' >>> string_test[0] 'C' >>> string_test[5] ' ' >>> string_test[8] 't' >>> string_test[-1] 'n' >>> string_test[-3] 'h' >>> string_test[-4] 't >>> string_test[100] Offset 범위를넘기는경우에러발생 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range 슬라이싱은 [ 시작 offset: 끝 offset] 형식으로사용 Offset 이생략가능 시작 offset 이생략되면 0 끝 offset 이생략되면마지막값으로처리 >>> string_test[1:4] ITE' >>> string_test[6:] 'Python' >>> string_test[:] 'BITEC Python' >>> string_test[:-1] 'BITEC Pytho' >>> string_test[0:5] 'BITEC' >>> string_test[5:12] ' Python >>> string_test[-100:100] 'BITEC Python' Offset 범위를넘기는경우범위내의값으로자동처리

연결하기와반복하기, 멤버십테스트, 길이정보 >>> string_concat = 'BITEC' + ' ' + 'Python' >>> string_concat 'BITEC Python [ 연결하기 ] + 연산자를이용해문자열을연결함 >>> string_repeat = 'Python' >>> string_repeat * 3 'PythonPythonPython [ 반복하기 ] Python 이란문자열을 3 번반복 + 연산자로 3 번더한것과동일함 >>> string_repeat + string_repeat + string_repeat 'PythonPythonPython' >>> string_test = 'BITEC Python' >>> 'Python' in string_test True >>> 'python' in string_test False 대소문자구분 [ 멤버십테스트 ] string_test 변수값안에 Python 이라는문자열이존재하는가? >>> len(string_test) 12 [ 문자열길이구하기 ] len() 함수를이용해문자열길이를구함

문자열정의하기 문자열은 또는 로묶인문자들의모임. >>> string1 = "Python is simple" >>> string1 = 'Python is simple' >>> string2 = "Python is great" >>> string3 = "It's extraordinary" >>> string4 = 'It\'s extraordinary' >>> string4 = 'It's extraordinary' File "<stdin>", line 1 string4 = 'It's extraordinary' ^ SyntaxError: invalid syntax \ 를사용하여 자체를문자로인식시켰다. \( 역슬래시 ) 는이스케이프문자 (escape character) 라고부른다 문자 \ 라인연속 의미 \ 문자그자체 \ 문자그자체 \n 줄바꾸기 ( 개행문자 ) \t 탭문자 >>> long_string = "File parsing is the computational method \ of reading a file, piece by piece.\nthe size of the pieces can be..." \ 는라인연속이다. \ 입력후엔터를치더라도한줄로인식한다. \n 는줄바꾸기이다. 엔터를치지않았더라도위문자를만나면줄을바꿔준다. >>> print long_string File parsing is the computational method of reading a file, piece by piece The size of the pieces can be...

여러줄문자열 또는 를세개연속해서사용함. 표현식내의모든텍스트는쓰여진그대로표현됨 >>> long_string = '''Python's standard documentation is substantial; download your own copy or browse it online! See also the complete list of documentation by Python version. If you're not sure where to go, try the help page.''' >>> >>> print long_string Python's standard documentation is substantial; download your own copy or browse it online! See also the complete list of documentation by Python version. If you're not sure where to go, try the help page. Escape 문자를사용하지않고도 및엔터가그대로표현됨

문자열자체는변경불가능한 (immutable) 자료형 >>> string1 = "BITEC Python" >>> string1[0] 'C' >>> string1[0] ='A' 문자열은 immutable 하기때문에값을변경하려하면에러가발생한다. Traceback (most recent call last): File "<pyshell#85>", line 1, in <module> string1[0] ='A' TypeError: 'str' object does not support item assignment 내장자료형중변경가능한자료형은리스트 (list) 와사전 (dictionary) 뿐입니다.

문자열포매팅 (formatting) 1/2 % 연산자를문자열작업에이용 >>> text = "Python" >>> "Hello %s" % text 'Hello Python' >>> "The number of students : %d" % 36 'The number of students : 36' Hello %s % text The number of students : %d % 36 >>> "Hello %s. The number of students is %d" % ('BITEC Python Course', 36) 'Hello BITEC Python Course. The number of students is 36' "Hello %s. The number of students is %d" % ('BITEC Python Course', 36) 포맷문자열 설명 %s 문자열혹은임의의객체를문자열로변환 >>> "t = %f df = %f p-value = %e" % ( -3.4325, 8.791, 0.007745 ) 't = -3.432500 df = 8.791000 p-value = 7.745000e-03' "t = %f df = %f p-value = %e" % ( -3.4325, 8.791, 0.007745 ) %c 길이 1의문자 %d 10진정수 %u 부호없는정수 %e 실수를지수형태로표현 %E %e 와동일하지만지수표현을대문자 E 로표현 두개이상의값을출력할때는튜플형태로입력 %f 실수를표현 %g 실수를편의에따라소수점형식또는지수형식으로표현 %G %g 와같지만지수표현을대문자 E 로함 %% % 자체를출력

문자열포매팅 (formatting) 2/2 보조포맷문자열을이용해출력양식을조절 >>> "t = %.3f df = %.3f p-value = %.3e" % ( -3.4325, 8.791, 0.007745 ) 't = -3.433 df = 8.791 p-value = 7.745e-03' >>> "%d" % 2 '2' >>> "%5d" % 2 ' 2' >>> "%-5d" % 2 '2 ' >>> "%05d" % 2 '00002' >>> "%.2e" % 1200 '1.20e+03' >>> "%.3f" % 1246.89768 '1246.898' 소수점 3 자리까지실수형태로출력 앞자리 5 개자리확보 앞자리 5 개확보및왼쪽으로맞추어출력 좌측빈공간을 0 으로채움 소수점 2 자리까지지수형태로출력 m m.n 보조포맷문자열 %.3f : 소수점 3 자리까지만출력 설명 m 개의최소자리를확보 M 개의최소자를확보하고 N 개의소수점이하자리를출력 - 왼쪽으로맞추어서출력 + +/- 부호출력 공백양수일때공백을삽입. # 8 진수출력시 0 을, 16 진수출력시 0x 또는 0X 를붙임 0 좌측빈공간을 0 으로채움

Object Oriented Programming( OOP ) class Dog: eyes ears legs Class - 실체화 (instance) 되지않는추상적부류 사물이지니고있는 ( 동적이지않은 ) 속성 (attribute) mydog = Dog() mydog.run() mydog.bark() def eat(): def bark(): def run(): mydog 은 Dog class 의실체 (instance) 내강아지가달린다 : mydog.run(). 함수 () 를이용하여 method 호출 동적인요소를지닌부분메쏘드 (method) eat(), bark(), run() 이라는메쏘드가어떻게작성되어있는지는알필요가없음단지 먹는다, 짖는다, 달린다 라는기능을한다는것만알고사용하면됨

문자열메쏘드 (method) 1/2 대소문자변환과관련된 method >>> text = 'i like python' >>> text.upper() 'I LIKE PYTHON' >>> text = 'I like python' >>> text.swapcase() 'i LIKE PYTHON' >>> text.capitalize() 'I like python' >>> text.title() 'I Like Python' 검색과관련된 method >>> text = 'I like python. I like programming' >>> text.count('like') 2 >>> text.find('python') 7 >>> text.startswith('i like') True >>> text.endswith( swimming') False upper() : 문자열을대문자로변환 lower() : 문자열을소문자로변환 swapcase() : 대문자는소문자로, 소문자는대문자로변환 capitalize() : 첫문자를대문자로변환 title() : 문자열을제목형태로변환 count( like ) : like 라는부문자열 (substrig) 이발생한횟수를리턴 find( python ) : python 이란문자열의 offset 을리턴 startwith( I like ) : I like 로시작하는가? endswith( swimming ) : swimming 로끝나는가? 편집및치환과관련된 method >>> text = ' BITEC Python Programming ' >>> text.strip() 'BITEC Python Programming' >>> text.rstrip() ' BITEC Python Programming' >>> text.lstrip() 'BITEC Python Programming ' >>> text.replace('python', 'JAVA') ' BITEC JAVA Programming >>> text.replace(' ', '') # 문자열의공백을모두제거 'BITECPythonProgramming' strip() : 좌우공백을제거 rstrip() : 오른쪽공백만을제거 lstrip() : 왼쪽공백만을제거 replace( A, B ) : A 라는문자 ( 열 ) 을 B 로치환

문자열메쏘드 (method) 2/2 문자열분리와결합 >>> text.split() ['BITEC', 'Python', 'Programming'] >>> text.split('python') [' BITEC ', ' Programming '] split() : 안에아무런인자가없으면공백을기준으로문자열을분리후리스트형태로반환한다. split( Python ) : Python 이라는부분문자열을기준으로문자열을분리한다. split() 안에들어가는인자를 구분자 (separator) 라고부릅니다. >>> t= text.split() >>> t ['BITEC', 'Python', 'Programming'] >>> ':'.join(t) 'BITEC:Python:Programming' >>> print '\n'.join(t) BITEC Python Programming >>> lines = '''first line second line third line''' >>> lines.splitlines() ['first line', 'second line', 'third line'] 분리한문자열을 t 라는리스트에넣는다. t 리스트에들어있는문자열을 : 로결합해서출력한다. splitlines() : 개행문자를기준으로문자열을분리한다.

형변환 ( type casting ) 경우에따라데이터타입을다른형으로변환해야될필요가있음 >>> a = '1' >>> type(a) <type 'str'> >>> a = int(a) >>> type(a) <type 'int'> 로감싸여있는경우는숫자라할지라도문자형임 문자형을정수형으로형변환 >>> a = 1 >>> b = 2 >>> c = 5 >>> 정수형 / 정수형 = 정수형 >>> ( a + b ) / c 0 >>> float(a + b) / c 실수형으로형변환 0.59999999999999998 >>> 문자열타입과정수형타입을연결할수없다는에러 >>> a = 1 >>> b = 2 >>> print 'a + b = ' + a + b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects >>> print 'a + b = ' + str(a + b) a + b = 3 a + b 를문자형으로형변환

Homework (1/2) 제출기한 : 2013 년 11 월 23 일 ( 토 ) 수업시작전까지 E-mail : chanchan@snu.ac.kr, 박찬희이메일제목맨앞에 [BITEC 성함 ] 을명시할것. 예 ) [BITEC 홍길동 ] 2 강 Homework 입니다. 파일형식 : ms-word 또는한글파일또는 pdf 파일프로그래밍하는부분은반드시소스코드를기입해서제출해야합니다 1. Central Nervous System Neoplasms 라는문자열을 string 이라는변수에저장후 slicing 을이용하여 1. Central Nervous 2. Nervous System 3. System Neoplasms 4. 를뽑아서출력하시오 2. string 변수에저장된문자열을 upper() method 를이용하여모두대문자로바꾼후다시 string 변수에저장하시오 3. string 변수에저장된문자열을 split() method 를이용하여공백단위로분리한후 str_split 이라는변수에저장하시오 4. str_split 에저장된문자열을 join() method 를이용하여 로붙여서출력하시오 1. 결과는 CENTRAL-NERVOUS-SYSTEM-NEOPLASMS 입니다.

Homework (2/2) 5. http://www.ncbi.nlm.nih.gov/nuccore/306518607?report=fasta 는 CYP3A5 유전자의 mrna 서열정보입니다. 1) 염기서열부분만 copy 해서여러줄문자열 ( 또는 ) 기호를이용하여 sequence 라는변수에할당하시오. 2) 염기서열데이터는 A 또는 T 또는 G 또는 C 또는 N 으로이루어져있을것입니다. 경우에따라소문자로된데이터가있을수있으므로계산의편의성을위해 sequence 변수에있는모든알파벳을대문자로변환한후다시 sequence 변수에할당하시오. 3) sequence 변수안에는웹페이지를 copy 해서얻은데이터라개행문자 (\n) 및공란 ( ) 이들어있을것입니다. replace 메쏘드를이용하여개행문자및공란을제거한후다시 sequence 변수에할당하시오. 4) 염기서열의 GC contents 는아래와같이계산할수있습니다. GC contents = ( base G 의개수 + base C 의개수 ) / 염기서열의총길이 * 100% GC contents 를계산후 formatting 을이용하여아래와같은 format 으로출력하시오 (format 을아래와정확히동일하게출력해야함 / GC Contents 값은소수점 2 자리까지만출력 ) ( base G 나 C 의개수를세기위해서는 count() method 를이용하면됨 ) Sequence length = 1726 No.of G = 374 No. of C = 387 GC contents = 44.09%