프로그래밍에 사용되는 숫자, 문자열 등 자료형태의 모든 것,
Python의 자료형은 정수, 실수, 문자, 논리형 등의 기본 자료형 형태를 처리한다.
숫자형, 문자형, 논리형에 이어서
\
를 사용하여 '
와 "
문자열에 포함시키는 법>>> code = "I \'like' Python"
>>> code
"I 'like' Python"
작은따옴표 ' '
나 큰따옴표 " "
를 문자열에 포함시키는 또 다른 방법에는
백슬래시(\)
를 작은따옴표 ' '
나 큰따옴표" "
앞에 삽입하면 \
뒤에오는 ' '
와 " "
는 문자열을 둘러싸는 기호의 의미가 아닌 문자 그 자체를 뜻하게 된다.
작은따옴표 3개'''
또는 큰따옴표 3개"""
사용
>>> multiline=''' #작은따옴표를 사용한 경우
Nice to meet you
Where you been
I could show you incredible things
'''
>>> print(multiline)
Nice to meet you
Where you been
I could show you incredible things
>>> multiline=""" #큰따옴표를 사용한 경우
Magic madness heaven sin
Saw you there and I thought oh my god
"""
>>> print(multiline)
Magic madness heaven sin
Saw you there and I thought oh my god
1. 문자열 더하기
>>> tall = "Hello"
>>> venti = "world!"
>>> tall + venti
'Helloworld!'
Hello
라는 tall
의 변수와 world!
라는 venti
의 변수가 합쳐진 것
2. 문자열 곱하기
>>> a = "Python is fun!"
>>> a * 5
'Python is fun!Python is fun!Python is fun!Python is fun!Python is fun!'
3. 문자열 길이 구하기
>>> a = "Helloworld!"
>>> len(a)
11
len
함수는 print
함수와 같이 Python의 기본 내장 함수로 별다른 작업 없이 바로 사용할 수 있다.
Indexing과 Slicing은 문자열 뿐만 아니라
list
,tuple
에서도 사용할 수 있다.
변수의 문자열 특정 요소가 몇 번째에 있는지 알 수 있다. 띄어쓰기를 포함한 문자열의 모든 문자가 인덱스에 포함된다.
>>> str ="Nice to meet you"
>>> print(str[0], str[8])
N m
>>> print("str의 index 0번째 문자는 " + str[0] + "입니다.")
str의 index 0번째 문자는 N입니다. #Python의 숫자는 0부터 시작된다.
문자열의 끝 글자부터 음의 정수 번호를 매겨 값을 가져올 수 있는데,
>>> str ="Nice to meet you"
>>> print(str[-3], str[-2], str[-1])
y o u
str[-1]
즉, str[0]
을 기준으로 -1을 의미한다.
str
의 값은 "Nice to meet you" 이므로, str[0]
인 N
을 기준으로 -1은 u
이다.
인덱싱이 "Nice to meet you"의 한 요소의 값만 낼 수 있었다면, 슬라이싱은 0부터 번호의 값을 매겨 원하는 위치의 요소까지 값을 가져올 수 있다.
변수명[시작(start):끝(stop):간격(step)]
len(a)
함수를 사용한 것과 같다.>>> slicing = "123456789"
>>> slicing[1:9] #앞에서 1개의 요소만 제외하는 것과 같다.
'23456789'
>>> slicing[0:7] #앞에서 7개의 요소만 선택하는 것과 같다.
'1234567'
>>> slicing[3:7] #앞에서 7개의 요소를 선택하고 선택한 값의 앞에서 3개를 제외하는 것과 같다.
'34567'
>>> slicing = "Cos ah ah I’m in the stars tonight!"
>>> slicing[0:9]
'Cos ah ah'
>>> slicing[10:20]
'I'm in the'
>>> slicing[21:0]
'stars tonight!'
문자열 내의 특정한 값을 바꿔야 할 경우가 있을 때 사용한다.
Python 3.6 f문자열 포매팅
f문자열 포매팅은 변수 값을 생성한 후에 그 값을 참조할 수 있다.
f'문자열{변수} 문자열
>>> name = "라라"
>>> age = 2
>>> print (f"안녕하세요! 제 고양이 이름은 {name}이고, 나이는 {age}살 입니다.")
안녕하세요! 제 고양이 이름은 라라이고, 나이는 2살 입니다.
f문자열 포매팅 표현식
>>> age = 2
>>> print (f"제 고양이 이름은 {name}이고, 내년에 {age+1}살이 됩니다.")
제 고양이 이름은 라라이고, 내년에 3살이 됩니다.
count
, find
, index
, join
, upper
, lower
, strip
, replace
, split
>>> a = "pingpong"
>>> a.count('p')
2
>>> a = "pingpong"
>>> a.find('g')
3
>>> a.find('a') # 찾는 문자가 존재하지 않을 경우 -1을 반환한다.
-1
find
는 찾는 문자가 존재하지 않을 경우 -1을 반환하는 반면,
index
는 찾는 문자가 존재하지 않을 경우 오류가 발생한다.
>>> a = "So I’mma light it up like dynamite"
>>> a.index('l')
9
>>> a.index('r') # 찾는 문자가 존재하지 않을 경우
Traceback (most recent call last):
File "<pyshell#75>", line 1, in <module>
a.index('r')
ValueError: substring not found
>>> a = "Python"
>>> print(','join(a) )
P,y,t,h,o,n
>>> a = "Hello, it's me" #string:upper
>>> a.upper()
"HELLO, IT'S ME"
>>> a.lower() #string:lower
"hello, it's me"
>>> a = " apple "
>>> a.strip() #양쪽 공백을 지울 경우
'apple'
>>> a.lstrip() #왼쪽 공백을 지울 경우 'l'strip > left를 의미
'apple '
>>> a.rstrip() #오른쪽 공백을 지울 경우 'r'strip > right를 의미
' apple'
replace
함수는 문자열에만 사용 가능한 함수이다.
변수.replace("old","new",[count])
>>> a = "Hello everyone!"
>>> a.replace("Hello","Hi")
'Hi everyone!'
>>> "Dynnnnnanana, life is dynamite".replace("dynamite","python") #변수를 지정하지 않고 문자열에 바로 replace 함수를 사용할 경우
'Dynnnnnanana, life is python'
"xoxoxoxoxoxoxo, inah".replace("xo","♥",2) #시작하는 "xo" 문자를 2번 ♥로 변경
'♥♥xoxoxoxoxo, inah'
문자열의 특정 문자를 기준으로 삼아 리스트의 요소로 지정된다.
>>> a = "Dynnnnnanana eh"
>>> a.split()
['Dynnnnnanana', 'eh'] #기본값
>>> b = "Hello, my name is Inah!"
>>> print(b.split(sep=',')) #','을 기준으로 분할
['Hello', ' my name is Inah!']
>>> print(b.split(maxsplit=4)) #공백을 기준으로 4번 분할
['Hello,', 'my', 'name', 'is', 'Inah!']