8장 문자열

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

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

14장 파일

3장 함수

A Review of C Programming

10장 리스트

확률 및 분포

쉽게 풀어쓴 C 프로그래밍


기술통계

PowerPoint 프레젠테이션

PowerPoint Presentation

C++-¿Ïº®Çؼ³10Àå

14장 파일

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Modern Javascript

단순 베이즈 분류기

쉽게 풀어쓴 C 프로그래밍

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

쉽게 풀어쓴 C 프로그래밍

소식지도 나름대로 정체성을 가지게 되는 시점이 된 거 같네요. 마흔 여덟번이나 계속된 회사 소식지를 가까이 하면서 소통의 좋은 점을 배우기도 했고 해상직원들의 소탈하고 소박한 목소리에 세속에 찌든 내 몸과 마음을 씻기도 했습니다. 참 고마운 일이지요 사람과 마찬가지로

C++ Programming

Java

PowerPoint Presentation

1

tkinter를 이용한 계산기 구현

Javascript.pages

PowerPoint 프레젠테이션

Week5

K&R2 Reference Manual 번역본

데이터 시각화

쉽게 풀어쓴 C 프로그래밍

01-OOPConcepts(2).PDF

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

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

adfasdfasfdasfasfadf

슬라이드 1

c

PowerPoint Presentation

슬라이드 1

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

Index

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

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

슬라이드 1

Microsoft PowerPoint - Java7.pptx

歯9장.PDF

초보자를 위한 C# 21일 완성

02 C h a p t e r Java

02장.배열과 클래스

07 자바의 다양한 클래스.key

Microsoft PowerPoint - 04-UDP Programming.ppt

12-file.key

PowerPoint Template

chap 5: Trees

PowerPoint 프레젠테이션

한눈에-아세안 내지-1


untitled

COVER.HWP

이슈분석 2000 Vol.1

가볍게읽는-내지-1-2

kbs_thesis.hwp


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

SIGPLwinterschool2012

Tcl의 문법

BMP 파일 처리

쉽게 풀어쓴 C 프로그래밍

NLTK 6: 텍스트 분류 학습 (` `%%%`#`&12_`__~~~ౡ氀猀攀)

Microsoft PowerPoint - chap06-4 [호환 모드]

*세지6문제(306~316)OK

歯처리.PDF

DIY 챗봇 - LangCon

Chapter 4. LISTS

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

October 2014 BROWN Education Webzine vol.8 울긋불긋 가을이야기 목차 From Editor 앉아서 떠나는 여행 Guidance 그림책 읽어주는 기술 Homeschool 다양한 세계문화 알아보기 Study Trip 올 가을!풍요로운 낭만축

slide2

설계란 무엇인가?

Microsoft PowerPoint 세션.ppt

5.스택(강의자료).key

비긴쿡-자바 00앞부속

03장.스택.key

untitled

chap8.PDF


PowerPoint 프레젠테이션


2007 학년도 하반기 졸업작품 아무도 모른다 (Nobody Knows) 얄리, 보마빼 (AIi, Bomaye) 외계인간 ( 外 界 人 間 ) 한국예술종합학교 연극원 극작과 예술전문사 안 재 승

PowerPoint Presentation

Microsoft PowerPoint 웹 연동 기술.pptx

중학영어듣기 1학년

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

OCaml

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

Transcription:

8 장문자열 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 1 / 24

학습내용 문자열 (string) 훑기 (traversal) 부분추출 (slicing) print 함수불변성 (immutablity) 검색 (search) 세기 (count) Method in 연산자비교 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 2 / 24

문자열 I 인덱스 >>> fruit = banana >>> letter = fruit[1] >>> print(letter) a >>> letter = fruit[0] >>> print(letter) b >>> letter = fruit[1.5] Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: string indices must be integers 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 3 / 24

문자열 II len 함수 >>> len(fruit) 6 >>> length = len(fruit) >>> last = fruit[length-1] >>> print(last) a >>> print(fruit[-1]) # last a >>> print(fruit[-2]) # last - 1 n 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 4 / 24

문자열 III 특수문자 (escape sequence) >>> sentence = "He said, \"This parrot s dead.\"" >>> sentence He said, "This parrot\ s dead." >>> print(sentence) He said, "This parrot s dead." >>> subjects = Physics\nChemistry\nBiology >>> subjects Physics\nChemistry\nBiology >>> print(subjects) Physics Chemistry Biology 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 5 / 24

문자열 IV >>> print("languages:\n\tpython\n\tc\n\tjavascript") Languages: Python C JavaScript 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 6 / 24

훑기 I 문자열을훑어가며한글자씩출력 index = 0 while index < len(fruit): letter = fruit[index] print(letter) index = index + 1 # or for char in fruit: print(char) 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 7 / 24

훑기 II 문자열합치기 (concatenation) >>> prefixes = JKLMNOPQ >>> suffix = ack >>> for letter in prefixes: print(letter + suffix) Jack Kack Lack Mack Nack Oack Pack Qack 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 8 / 24

부분추출 >>> s = Monty Python >>> print(s[0:5]) Monty >>> print(s[6:12]) Python >>> fruit[:3] ban >>> fruit[3:] ana >>> fruit[3:3] 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 9 / 24

print 함수 I >>> heading = Index of Dutch Tuplip Prices >>> line = + + - *16 + - *14 + + >>> print(line, heading, line, Nov 23 1636 100, Nov 25 1636 673, line, sep= \n ) +------------------------------+ Index of Dutch Tuplip Prices +------------------------------+ Nov 23 1636 100 Nov 25 1636 673 +------------------------------+ >>> import math >>> print("pi is %10.4f" % math.pi) Pi is 3.1416 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 10 / 24

print 함수 II >>> print("pi is %2.7f" % math.pi) Pi is 3.1415927 # or >>> print("pi is {:10.4f}".format(math.pi)) Pi is 3.1416 >>> print("pi is {:2.7f}".format(math.pi)) Pi is 3.1415927 >>> St1="Hello my friend" >>> "{:s} : {:2.5f}".format(St1, math.pi) Hello my friend : 3.14159 >>> number = 10 >>> day = "three" >>> "I ate {0} apples. so I was sick for {1} days.".format(number, day) I ate 10 apples. so I was sick for three days. 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 11 / 24

print 함수 III >>> "I ate {number} apples. so I was sick for {day} days.". format(number=10, day=3) I ate 10 apples. so I was sick for 3 days. >>> "{0:<10}".format("hi") hi >>> "{0:>10}".format("hi") hi >>> "{0:^10}".format("hi") hi >> "{0:=^10}".format("hi") ====hi==== 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 12 / 24

불변성 기존의문자열은변경이불가능함. 즉불변임 >>> greeting = Hello, world! >>> greeting[0] = J Traceback (most recent call last): File "<pyshell#78>", line 1, in <module> greeting[0] = J TypeError: str object does not support item assignment >>> new_greeting = J + greeting[1:] >>> print(new_greeting) Jello, world! 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 13 / 24

검색 주어진단어에서문자찾기 def find(word, letter): index = 0 while index < len(word): if word[index] == letter: return index index = index + 1 return -1 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 14 / 24

세기 문자열에서단어 a 의출현횟수 word = banana count = 0 for letter in word: if letter == a : count = count + 1 print(count) 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 15 / 24

문자열메소드 I 메소드 (method) 는함수와유사 >>> word = banana >>> new_word = word.upper() >>> print(new_word) BANANA >>> word.find( na ) 2 >>> word.find( na, 3) 4 >>> name = bob >>> name.find( b, 1, 2) -1 >>> a = java python c++ fortran >>> a.isalpha() False >>> b = a.title() 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 16 / 24

문자열메소드 II >>> b Java Python C++ Fortran >>> c = b.replace(,!\n ) >>> c Java!\nPython!\nC++!\nFortran >>> print(c) Java! Python! C++! Fortran >>> c.index( Python ) 6 >>> St1 = "This is NICE" >>> St2 = "2017" >>> St3 = "WOW" >>> St4 = "Year 12345" >>> St1.isalnum() # all char s are numbers? 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 17 / 24

문자열메소드 III False >>> St2.isdigit() # all digits True >>> St3.isupper() # all upper case? True >>> St4.endswith( 5 ) # ends with 5? True >>> a = "hobby" >>> a.count("b") 2 >>> ",".join("abcd") a,b,c,d >>> a = " hi " >>> a.lstrip() hi 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 18 / 24

문자열메소드 IV >>> a.rstrip() hi >>> a.strip() hi >>> a = "Life is too short" >>> a.split() # blank [ Life, is, too, short ] >>> b = "a:b:c:d" >>> b.split(":") # : [ a, b, c, d ] 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 19 / 24

in 연산자 두번째문자열에첫번째문자열이나타나면 True 없으면 False >>> a in banana True >>> seed in banana False >>> def in_both(word1, word2): for letter in word1: if letter in word2: print(letter) >>> in_both( apples, oranges ) a e s 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 20 / 24

비교 Python 에서는대문자가소문자보다앞서나옴 if word == banana : print( All right, bananas. ) if word < banana : print( Your word, + word +, comes before banana. ) elif word > banana : print( Your word, + word +, comes after banana. ) else: print( All right, bananas. ) 대소문자를피하기위해모두소문자로바꾼후에비교할수있음 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 21 / 24

디버깅 I 문자열의순서가반대인지체크하는함수 >>> def is_reverse(word1, word2): if len(word1)!= len(word2): return False i = 0 j = len(word2) while j > 0: print(i, j) if word1[i]!= word2[j]: return False i = i + 1 j = j - 1 return True 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 22 / 24

디버깅 II >>> is_reverse( pots, stop ) 0 4 Traceback (most recent call last): File "<pyshell#102>", line 1, in <module> is_reverse( pots, stop ) File "<pyshell#101>", line 10, in is_reverse if word1[i]!= word2[j]: IndexError: string index out of range 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 23 / 24

디버깅 III j = len(word2) - 1 로수정하면바르게작동 >>> is_reverse( pots, stop ) 0 3 1 2 2 1 True 박창이 ( 서울시립대학교통계학과 ) 8 장문자열 24 / 24