숫자형이란 숫자 형태로 이루어진 자료형입니다. 정수, 실수, 8진수, 16진수 등이 있습니다.
a = 123
a = -178
a = 0
a = 1.2
a = -3.45
a = 4.24E10
a = 4.24e-10
위는 일반적으로 볼 수 있는 실수형의 소수점 표현 방식입니다.
8진수(octal)를 만들기 위해서 숫자가 0o 또는 0O로 시작하면 된다.
a = 0o166
16진수(Hexadecimal)를 만들기 위해서는 0x로 시작하면 된다.
a = 0x8ff
b = 0xABC
문자열(string)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미합니다.
"Life is too short, You need Python"
"a"
"123"
123은 숫자형으로 보이는 훼이크입니다. 따옴표("") 안에 들어가 있으니 문자열입니다.
"Hello, World"
'Python is fun'
"""I want to be rich."""
'''I want to be an engineer.'''
위의 문장을 food라는 변수 안에 저장하고 싶다면
food = "Python's favorite food is perl"
큰 따옴표를 사용해서 둘러싸면 됩니다.
say = '"Python is very easy." he says'
이것도 작은 따옴표를 사용하여 둘러싸면 됩니다.
food = 'Python\'s favorite food is perl'
say = "\"Python is very easy.\" he says"
multiline = "Life is too short\nYou need python"
multiline = '''
Life is too short
You need python
'''
multiline = """
Life is too short
You need python
"""
>>> head = "Python"
>>> tail = "is fun!"
>>> head + tail
'Python is fun!'
a = 'Python'
a * 2
>>> 'PythonPython'
>>> print("=" * 50)
>>> print("My Program")
>>> print("=" * 50)
==================================================
My program
==================================================
>>> a = "Python"
>>> len(a)
6
인덱싱(indexing)이란 무엇인가를 '가리킨다'는 의미이고 '슬라이싱(slicing)'은 무엇인가를 '잘라낸다'는 의미입니다.
인덱스는 첫 번째 자리에 나오는 값부터 0부터 시작합니다.
>>> a = "Life is too short, You need Python"
>>> a[3]
e
a[0] : 'L', a[1] : 'i', a[2] : 'f', a[3] : 'e', a[4] : ' ', ...
>>>a[-0]
'L'
인덱스 -0은 0과 같은 것이기 떄문에 a[0], a[-0]은 같습니다.
>>> a[-1] # 뒤에서 첫 번째 문자
'n'
>>> a[-2] # 뒤에서 두번째 문자
'o'
단순히 한 문자만 뽑아내는 것이 아닌 'Life', 'is' 등을 출력하고 싶다면 어떻게 해야 할까요?
>>> b = a[0] + a[1] + a[2] + a[3]
b
'Life'
의 방법도 있지만
>>> b = a[0:4]
b
'Life'
의 방법도 있습니다. 이를 슬라이싱이라 합니다. [0:4]의 뜻은 0부터 4까지의 문자를 뽑아낸다는 뜻입니다. 대신 [0:4]는 0, 1, 2, 3까지만 뽑아냅니다.
a[시작 번호: 끝 번호] 를 지정할 때 '끝 번호'에 지정되는 인덱스까지는 뽑아주지 않습니다.
[0:3]은 0 <= a < 3 과 같습니다.
>>> a[0:5]
'Life'
위의 예는 아까 보았던 것과 같습니다.
슬라이싱할 때 항상 시작 번호가 0일 필요는 없습니다.
>>> a[0:2]
'Li'
>>> a[5:7]
'is'
>>> a[12:17]
'short'
a[시작번호:끝번호]의 형식이기 때문에 원하는 부분을 슬라이싱 할 수 있습니다.
>>> a[:17]
'Life is too short'
시작 번호를 생략하면 자동으로 처음부터 끝까지 번호를 뽑아냅니다.
>>> a[:]
'Like is too short, You need Python'
[:] 는 처음부터 끝까지라는 의미입니다. 그래서 문자열 전체를 뽑아냅니다.
>>> a[19:-7]
'You need'
슬라이싱에서도 인덱싱과 마찬가지로 마이너스(-) 기호를 사용할 수 있습니다. 위 소스 코드에서 뜻하는 것은 a[19] 부터 a[-8]까지를 가져옵니다.
>>> a = '20010331Rainy'
>>> date = a[:8]
>>> weather = a[8:]
>>> date
'20010331'
>>> weather
'Rainy'
위는 문자열 a를 두 부분으로 나누는 기법입니다. 숫자 8을 기준으로 한 번씩 슬라이싱했습니다.
>>> a = '20010331Rainy'
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2001'
>>> date
'0331'
>>> weather
'Rainy'
이렇게 세 부분으로 나눌 수도 있습니다.
여기까지 인덱싱과 슬라이싱에 대해 살펴보았습니다. 인덱싱과 슬라이싱은 프로그래밍 할 때 매우 자주 사용되는 기법이라고 합니다!
문자열의 요소값은 변경이 불가능합니다. 문자열 자료형은 요솟값을 변경할 수 없어서 immutable한 자료형이라고도 합니다.
만약 a = 'Pithon" 이라고 y 대신 i 의 오타가 들어간 문자열 자료가 있다면 굉장히 오타를 바꿔주고 싶을 겁니다!
>>> a = 'Pithon'
>>> a[1]
'i'
>>> a[1] = 'y'
error!
>>> a = 'Pithon'
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'
그렇다면 위의 값을 변수 a 에 다시 저장해준다면
>>> a = a[:1] + 'y' + a[2:]
>>> a
'Python'
으로 바꿔줄 수 있겠습니다.👏