01 숫자형
- 숫자형(Number)은 숫자 형태로 이루어진 자료형이다.
- 익히 써왔듯이 정수형, 실수형, 8진수와 16진수 등을 표현한다.
- ** 연산자는 x의 y제곱을 나타내며, // 연산자는 나눗셈 후 몫을 반환한다.
02 문자열 자료형
문자열(String)은 문자, 단어 등으로 구성된 문자들의 집합이다.
02-1 문자열 만들기
- 문자열을 만들 땐 큰따옴표("), 작은따옴표('), 큰따옴표 3개("""), 작은따옴표 3개(''')를 사용한다.
- 문자열에 따옴표를 포함시키고 싶을 땐 백 슬래시(\)를 사용한다.
>>> food = 'Python\'s favorite food is perl'
>>> print(food)
여러 줄인 문자열을 변수에 대입하고 싶을 땐 연속된 따옴표('''혹은 """)를 사용한다.
>>> multiline = '''
... Life is too short
... You need python
... '''
>>> print(multiline)
02-2 문자열 연산하기
파이썬에서는 문자열을 더하거나 곱할 수 있다.
문자열을 더해보자.
>>> head = "Python"
>>> tail = "is fun!"
>>> head + tail
'Pythonis fun!'
문자열을 곱해보자
>>> a = "python"
>>> a * 2
'pythonpython'
문자열의 길이를 구할 때는 len 함수를 사용한다.
>>> len(a)
6
02-3 문자열 인덱싱과 슬라이싱
인덱싱(Indexing)은 무엇인가를 가리킨다는 의미이고, 슬라이싱(Slicing)은 무엇인가를 잘라낸다는 의미이다.
인덱싱의 예시를 보자.
>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[-1]
'n'
문자의 배열이라고 생각하면 된다. 자릿수는 0부터 세며, 뒤에서부터 읽을 땐 마이너스(-) 기호를 사용한다.
* 0과 -0은 똑같기 때문에 변수명[0]과 변수명[-0]은 같은 값을 반환한다.
슬라이싱의 예시를 보자. 한 문자가 아닌 단어를 출력할 땐 슬라이싱을 사용한다.
>>> a[0:5]
'Life '
- 슬라이싱은 변수명[시작 번호:끝 번호]와 같이 사용한다.
- 끝 번호에 해당하는 것은 포함하지 않는다(수식으로 나타내면 0 <= 변수명 < 5).
- 공백 문자 역시 다른 문자와 동일하게 취급한다.
- 아래 코드처럼 끝 번호를 생략하면 시작 번호 부터 그 문자열의 끝까지, 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 출력한다.
>>> a[19:]
'You need Python'
>>> a[:17]
'Life is too short'
슬라이싱은 다음과 같이 응용이 가능하다.
>>> a = "20210303Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2021'
>>> day
'0303'
>>> weather
'Rainy'
문자열을 수정하고 싶을 땐 인덱싱이 아닌 슬라이싱으로 접근한다.
>>> a = 'pithon'
>>> a[:1] + 'y' + a[2:]
'python'
위 예제를 a[1] = 'y'처럼 바꿀 수는 없다.
02-4 문자열 포매팅
문자열 안의 특정한 값을 바꿔야 할 경우(예) '현재 온도는 18도 입니다'에서 숫자 부분만 변경) 문자열 포매팅(Formatting) 기법을 사용한다. 문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.
문자열 포매팅 기법의 종류는 다음과 같다.
숫자 바로 대입하기
>>> "I eat %d apples." %3
'I eat 3 apples.'
문자열 바로 대입하기
>>> "I eat %s apples" %"five"
'I eat five apples'
숫자 값을 나타내는 변수로 대입하기
>>> "I eat %d apples" %number
'I eat 4 apples'
2개 이상의 값 넣기
>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days" %(number, day)
'I ate 10 apples. so I was sick for three days'
* %s는 문자열(string)을 변환하는 포맷 코드인데, 문자열이 아니더라도 어떤 형태의 값이든 변환해 넣을 수 있다.
포맷 코드와 숫자 함께 사용하기
>>> "%10s" %"hi"
' hi'
포맷 코드 사이에 숫자를 넣으면 숫자만큼의 공간이 생기며 오른쪽으로 정렬된다(왼쪽 정렬 시 마이너스 기호 사용)
>>> "%0.5f" %3.42153264698
'3.42153'
포맷 코드 사이에 소수점 포인트를 넣으면 소수점 뒤 숫자를 원하는 자리까지 나타낼 수 있다.
format 함수 사용하기
앞서 본 예제를 format 함수를 사용해 구현하면 다음과 같다.
>>> "I eat {0} apples".format(3)
'I eat 3 apples'
>>> "I eat {0} apples".format("five")
'I eat five apples'
>>> number = 3
>>> "I eat {0} apples".format(number)
'I eat 3 apples'
2개 이상의 값을 넣을 수도 있다. 아래 예시는 인덱스와 name = value 형태를 혼용한 것이다.
>>> "I ate {0} apples. so I was sick for {day} days".format(10, day=3)
'I ate 10 apples. so I was sick for 3 days'
*format 함수에서 중괄호를 쓰고싶을 땐 {{}}처럼 두 개를 연속해서 사용해야 한다.
f 문자열 포매팅 사용하기
문자열 앞에 f 접두사를 붙여 사용한다.
>>> age = 24
>>> f'나는 내년에 {age+1}살이 된다'
'나는 내년에 25살이 된다'
* f 문자열 포매팅 기법은 파이썬 3.6부터 가능하다.
딕셔너리를 사용할 수도 있다.
>>> d = {'name':'동해', 'age':24}
>>> f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]} 입니다.'
'나의 이름은 동해입니다. 나이는 24 입니다.'
* 딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다.
format 함수와 f 문자열 포매팅 둘 다 정렬, 공백 채우기, 소수점 표현이 가능하다.
02-5 문자열 관련 함수
- 문자열 자료형은 자체 함수를 가지고 있다.
- 문자열 내장 함수라고도 한다.
- 이 함수를 사용하려면 문자열 변수 뒤에 '.'를 붙인 다음 함수 이름을 쓰면 된다.
대표적인 문자열 관련 함수는 다음과 같다.
변수.count(원하는 문자) | 문자열 속 원하는 문자 개수 세기 |
변수.find(원하는 문자) | 해당 문자가 처음 나온 위치 알려주기 |
변수.index(원하는 문자) | 해당 문자가 처음 나온 위치 알려주기(존재하지 않으면 오류 발생) |
원하는 문자.join(변수) | 각각의 문자 사이에 원하는 문자 삽입 |
변수.lower / 변수.upper | 알파벳을 소문자 / 대문자로 바꾸기 |
변수.lstrip / 변수.rstrip | 왼쪽 / 오른쪽 공백 지우기 |
replace(바뀌게 될 문자열, 바꿀 문자열) | 문자열 바꾸기 |
변수.split(기준) | 기준에 따라 문자열 나누기(나눈 값은 리스트로 들어감) |
자료형을 배우니까 파이썬을 왜 인간다운 언어라고 하는지 알겠다. 이거 이거 C 조금 써본 나한테도 완전 신세계잖아😮
이 글은 책 『Do it! 점프 투 파이썬』을 읽은 후 작성한 글입니다.
'Programming > Python' 카테고리의 다른 글
Do it! 공부단 3일차 | ch03 제어문_while문과 for문 (2) | 2021.03.05 |
---|---|
Do it! 공부단 3일차 | ch03 제어문_if 문 (0) | 2021.03.04 |
Do it! 공부단 2일차 | ch02 자료형_딕셔너리, 집합, 불 (0) | 2021.03.04 |
Do it! 공부단 2일차 | ch02 자료형_리스트와 튜플 (0) | 2021.03.04 |
Do it! 공부단 1일차 | ch01 파이썬이란 무엇인가? (2) | 2021.03.03 |