빅데이터 프로그래밍/Python

[Python] 04. 시퀀스, 자료형 문자열의 실습, 문자열 선언, 슬라이싱, 연결, 반복, 문자열의 크기, 멤버체크, 문자열 포맷팅

밍글링글링 2017. 8. 2.
728x90

1. 시퀀스 자료형의 공통 특성

1. 시퀀스 다루기

- mutable(가변) 시퀀스: list(*), bytes, bytearray

- immutable(불변) 시퀀스: str(*), tuple(*), range

- 인덱싱: 0부터 인덱스 시작

- 슬라이싱: 문자열의 분할

- 연결: '+'을 이용하여 문자열을 연결하여 새로운 시퀀스 자료 생성

- 반복: '*'를 이용하여 시퀀스 자료를 여러번 반복하여 새로운 시퀀스 자료 생성

- 멤버 체크: 'in'을 이용하여 특정 값이 시퀀스 자료로 속해 있는지 검사

- 크기 정보: len()함수를 이용하여 문자열의 크기나 개수를 산출

 

2. 문자열 포맷

- %s: 하나의 문자열 대응

- %c: 문자나 하나의 기호에 대응

- %f: 하나의 실수에 대응

- %d: 하나의 정수에 대응

- %%: '%' 기호의 출력

 

3. 이스케이프 문자

- \n: 줄 바꾸기

- \t: Tab

- \ + Enter: 줄계속

- \\: '\' 출력

- \',\": ',"의 출력

 

1. String 타입 실습1

 

[실행 화면]

W
g
Web
True
False
***W***
***e***
***b***
Web Site Scraping
▶ String1.py
# -*- coding: utf-8 -*-
name = 'Web Scraping'
print(name[0])
print(name[-1])
print(name[0:3])

print('Web' in name)
print('web' in name)

for i in name:
    print('***' + i + '***')
    
    if (i == 'b'):
        break;
    
print(name[0:3] + ' Site ' + name[4:12])
     
      
-------------------------------------------------------------------------------------

 

 

 

2. String 타입 실습2

 

[출력 화면]

봄 여행
Spring travel
 
    Lost 1
    Lost 2
    Lost 3
 
 
    Walking
    Dead
 
인공지능'배틀스타 갤럭티카'
피어더 워킹데드 "시즌3" 시작
------------------------------------------
I
!
IME 
TIME IS 
ONEY!!
TIME IS MONE
Y!!
TIME IS MONEY!!
TM SMNY!
------------------------------------------
I love Python
------------------------------------------
청군응원 힘내라~힘내라~힘내라~
------------------------------------------
13
14
------------------------------------------
True
False
------------------------------------------
나는 자바보다 파이썬에 더 익숙합니다.
파이썬은 자바보다 5배 더 쉽습니다.
5 + 10 = 15
작년 세계 경제 성장률은 전년에 비해   1.25% 포인트 증가했다.
----------------------------------------------------------------
나는 파이썬을 사랑합니다.
파이썬은 자바보다 훨씬 쉽습니다.
성명: John Smith 성별: Male 나이: 22
이 문장은 화면폭에 비해 너무 길어 보기가 힘듭니다.   그래서 \Enter키를 이용해 문장을 다음줄과 연속되도록 했습니다.
작은따옴표(')와 큰 따옴표(")는 문자열을 정의할 때 사용합니다.
▶ String2.py
# -*- coding: utf-8 -*-

# 문자열 선언
strdata1 = '봄 여행'
print(strdata1)

strdata2 = "Spring travel"
print(strdata2)

strdata3 = '''
    Lost 1
    Lost 2
    Lost 3
'''
print(strdata3)

strdata4 = """
    Walking
    Dead
"""
print(strdata4)

strdata5 = "인공지능'배틀스타 갤럭티카'"
print(strdata5)
strdata5 = '피어더 워킹데드 "시즌3" 시작'
print(strdata5)
print("------------------------------------------")

# 문자열 슬라이싱
strdata = "TIME IS MONEY!!"
#             0...                ← -1 
print(strdata[5])   # I
print(strdata[-2])  # !
print(strdata[1:5]) # IME
print(strdata[:8])   # TIME IS
print(strdata[9:])   # ONEY!!
print(strdata[:-3])  # TIME IS MONE  
print(strdata[-3:])  # Y!!
print(strdata[:])     # TIME IS MONEY!!
print(strdata[::2])   # T M S M N Y !
print("------------------------------------------")

# 문자열 연결
strdata1 = 'I love '; strdata2 = 'Python'
print(strdata1 + strdata2)
print("------------------------------------------")

# 문자열 반복
str1 = '청군'
str2 = '힘내라~'
str_tot = str1 + '응원 ' + str2 * 3 # 청군응원 힘내라~힘내라~힘내라~
print(str_tot)
print("------------------------------------------")

# 문자열 크기
strdata1 = "I love python"
strdata2 = '나는 파이썬을 사랑합니다.'

print(len(strdata1))  # 13이 출력됨
print(len(strdata2))  # 14이 출력됨
print("------------------------------------------")

# 멤버 체크
strdata = 'abcde'
ret3 = 'c' in strdata
print(ret3)
ret3 = 'A' in strdata;
print(ret3)
print("------------------------------------------") 

# 문자열 포맷팅
txt1 = '자바'; txt2='파이썬'
num1= 5; num2=10; num3 = 1.25
print('나는 %s보다 %s에 더 익숙합니다.' %(txt1, txt2))
print('%s은 %s보다 %d배 더 쉽습니다.' %(txt2, txt1, num1))
print('%d + %d = %d'  %(num1, num2, num1+num2))
# 전체 자리수.소수자리수f, 1.250000%, 반올림 안됨  
print('작년 세계 경제 성장률은 전년에 비해 %6.2f%% 포인트 증가했다.' %num3)
print("----------------------------------------------------------------")

# 이스케이프 문자
print('나는 파이썬을 사랑합니다.\n파이썬은 자바보다 훨씬 쉽습니다.')
print('성명: John Smith\t성별: Male\t나이: 22')
print('이 문장은 화면폭에 비해 너무 길어 보기가 힘듭니다. \
  그래서 \\Enter키를 이용해 문장을 다음줄과 연속되도록 했습니다.')
print('작은따옴표(\')와 큰 따옴표(")는 문자열을 정의할 때 사용합니다.')


-------------------------------------------------------------------------------------
 

 

 

 

728x90

댓글