스터디/파이썬 스터디 강의자료

[2팀/김세연] 6차시 파이썬 스터디 - 문자열

알 수 없는 사용자 2023. 5. 1. 21:30

6차시_문자열_강의안.pdf
0.93MB
6차시_문자열_과제.pdf
0.16MB

문자열의 이해

:문자열을 이해하기 위해서는 문자열의 특징을 이해해야함

:문자열은 시퀀스 자료형으로 리스트처럼 데이터를 순차적으로 저장

 

문자열과 메모리 공간


:영문자 한 글자당 1바이트의 메모리 공간을 사용

:컴퓨터는 문자를 직접 인식하지 못함

:컴퓨터는 문자를 숫자로 변환하려 인식함

:사람들은 문자를 숫자로 변환하기 위한 규칙을 만듦

:일반적으로 이 규칙은 1개의 영문자를 1바이트,

2의 8승 정도의 공간에 저장함


-문자열 인덱싱

:리스트와 같이 문자하나 하나가 상대적인 주소를 갖음

a = "abcde"

print(a [0], a [4])
a e

print(a [-1], a [-5])
e a


-문자열 슬라이싱(=리스트 슬라이싱)

: 문자열의 주소값을 이용해 문자열의 부분값을 추출해내는 기법

a = "TEAMLAB MOOC, AWESOME Python"

print(a [0:6], " AND ", a[-9:])
TEAMLA AND ME Python

print(a[:])
TEAMLAB MOOC, AWESOME Python

print(a [-50:50]) #인덱스 범위를 벗어나도 출력
TEAMLAB MOOC, AWESOME Python

print(a[::2], " AND ", a[::-l]) #처음~끝 2글자씩, 글자의 역순 출력
TALBMO,AEOEPto AND nohtyP EMOSEWA ,C00M BALMAET

-문자열 연산(=리스트 연산)

a = "TEAM"
b = "LAB"

print(a + "" + b)
TEAM LAB

print(a * 2 + "" + b * 2)
TEAMTEAM LABLAB

if 'A' in a: 
    print(a)
    else: print(b)

TEAM

-문자열 함수
문자열 함수 사용법

변수.문자열 함수명 으로 호출

 

 

title = "TEAMLAB X Inflearn"

title.upper() # 모두 대문자
'TEAMLAB X INFLEARN'

title.lower() #모두 소문자
'teamlab x inflearn'
title = "TEAMLAB X Inflearn"
title.count("a") # ’a’가 몇 개 있는지 
1
title.upper().count("a") # 대문자로 만든 후, 'a'가 몇 개 있는지 개수 반환
0

title.isdigit() # title 변수의 문자열이 숫자인지
False
title.startswith("a") # title 변수가 ‘a’로 시작하는지
False

-파이썬 특수문자

:문자열에서 표현하기 어려운 여러 문자를 표현하도록 도움 (역슬래쉬 - 원)

-서식 지정의 개념

:print( ) 함수는 기본적으로 변수와 값을 콤마(,)로 띄어쓰기 하여 출력

:통화 단위. 세 자리 숫자 단위로 띄어쓰기, % 출력 등 다양한 형식에 맞추어 출력할 때, 이를 서식 지정이라고 함.

 

-%서식과 format 함수

%서식

print(l, 2, 3)
printC"a" + "" + "b" + "" + "c")
print("%d %d %d" % (1, 2, 3))
print(”{}{}{}’’.format("a", "b", "c"))

123
abc
123
abc
print('I eat %d apples." % 3)
print(”I eat %s apples." % "five")

I eat 3 apples.
I eat five apples.

format() 함수

: % 서식과 사용법이 거의 같지만 문자열 형태의 인수를 사용한다는 차이점

format()은 함수이므로 “{자료형}”.format(인수) 으로 서식지정

 

age =40; name = 'Sungchul Choi'
print("I'm {0} years old.".format(age))
print("My name is {0} and {1} years old.".format(name, age))
print("Product: {0}, Price per unit: {l:.2f}.".format("Apple", 5.243))

I'm 40 ye ars old.
My name is Sungchul Choi and 40 ye ars old.
Product Apple , Pric e per unit 5.24.

-패딩

:여유 공간을 지정하여 글자 배열을 맞추고 소수점 자릿수를 맞추는 기능, % 서식과 format() 함수 모두 패딩 기능을 제공

 

%서식의 패딩

print("%10d" % 12) # 10자리 공간 확보, 우측 정렬로 12출력
          12

print("%-10d"%12) # 좌측 정렬은 -부호
12
print("%10.3f" % 5.94343) # 10자리를 확보하고 소수점 셋째 자리까지 출력
          5.943

print("%10.2f" % 5.94343) # 10자리를 확보하고 소수점 둘째 자리까지 출력
          5.94

print("%-10.2f" % 5.94343)
5.9

 

format()함수의 패딩

" {l >10.5f } . " .format("Apple " , 5.243) # 10자리 확보(소수점 포함), 소수점 다섯 번째 자리
'   5.24300.'

" {l:<10.5f } . " .format("Apple " , 5.243) # 좌측정렬(<부호)
'5.2430    .'

문자열의 분리 및 결합

: 특정 값을 기준으로 문자열을 분리하여 리스트 형태로 변환

-문자열의 분리: split() 함수

 

items = 'zero one two three'.split() # 빈칸을 기준으로 문자열을 분리
print(items)
['zero', 'one', 'two', 'three']
example = 'python,jqueryJavascript' # 를 기준으로 문자열 나누기
example.split(",")
['python' 'jquery1', 'javascript']

a, b, c = example.split(”,") # 리스트에 있는 각 값을 a, b, c 변수로 언패킹
print(a, b, c)
python jquery javascript

example = '[theteamlab.univ.edu](<http://theteamlab.univ.edu/>)'
subdomain, domain, tld = example.split('.') "."을 기준으로 문자열 나누기 - 언패킹
print(subdomain, domain, tld)
theteamlab univ edu

-문자열의 결합: join() 함수

:문자열로 구성된 리스트를 합쳐 하나의 문자열로 만들 때 사용

colors = ['red', 'blue', 'green', 'yellow']
result = ".join(colors)
print(result)
'redbluegreenyellow'
result = ' '.join(colors) # 연결 시 1칸 띄고 연결
print(result)
'red blue green yellow'

result = ','.join(colors) # 연결 시 ','로 연결
print(result)
'red, blue, green, yellow'

result = '-'.join(colors) # 연결 시 '-'로 연결 
print(result)
'red-blue-green-yellow'