티스토리 뷰
👉 문자열 (String)
📌 문자열 개념을 같이 다루고 싶어서 가져옴 (01-2. 데이터형 내용과 동일)
str1, str2, str3, str4, str5 = 'a', 'abc', '가나다', 'hello wolrd!', '010-1234-5678'
✔ 하나 또는 여러 문자로 구성된다. 문자열은 단 따옴표나 큰따옴표로 감싼다.
✔ 다른 형태의 데이터 타입이어도 따옴표로 감싸면 문자열로 인지한다.
✔ 다른 프로그래밍 언어와 달리 char형은 존재하지 않으며, 항상 문자열 즉 문자의 배열 형태로 저장된다.
str1 = 'ab'
print(str1) #ab
print(str1[0]) #a
print(str1[1]) #b
str2 = 'a'
print(str2) #a
print(str2[0]) #a
✔ 문자열은 항상 문자의 배열 형태이므로, 문자열 변수명은 곧 주소 값을 의미한다
✔ 문자열 변수명에 첨자를 사용하면 문자 하나하나에 접근할 수 있다.
✔ 문자를 하나 저장하더라도 문자열로 저장됨을 확인할 수 있다.
#배열명[start:end:step]
x = 'Hello Wolrd!'
print(x) #Hello Wolrd!
print(x[0]) #H
print(x[0:3]) #Hel
print(x[5:]) # World!
print(x[-1]) #!
print(x[-3:]) #rd!
print(x[-4:-2] #lr
print(x[0:5:2]) #Hlo
✔ 파이썬에서 배열의 인덱스는 다양한 방법으로 사용할 수 있다.
✔ 대괄호 내부에는 최대 3개의 값을 넣을 수 있다.
✔ 순서대로 index의 start 지점, end 지점 (기준은 미포함), step의 단위를 의미한다.
✔ step의 경우 생략되면 1로 증가 단위가 설정된다.
✔ 마지막 출력문은 0~4번째 문자를 index를 2 증가하면서 출력한다. 즉 index 0,2,4에 해당하는 Hlo를 출력한다.
✔ end 값을 미포함하는 이유는 index는 0부터 시작하기 때문이다.
👉 문자열 연산 (반복 *, 연결 +)
hello1 = '안녕' * 5
hello2 = 5 * '안녕'
print(hello1) #안녕안녕안녕안녕안녕
print(hello2) #안녕안녕안녕안녕안녕
#정수가 좌항에 와도 실행은 되긴하지만
#좌항이 기준이 되어야 하므로, 문자열을 좌항에 두자
✔ 산술 연산은 정수나 실수에 가능하지만 문자열에도 사용 가능하도록 오버로딩되어있다.
✔ 파이썬은 문자열도 연산 가능하도록 이미 오버로딩되어있지만, 언젠가 직접 구현해보도록 하자.
score = 80
# str1 = score + '점' #에러 발생
# print(str1)
str2 = str(score) + '점' #정상 실행
print(str2) #80점
✔ 문자열의 연결 연산을 하고자 할 때에는 반드시 한 가지 데이터형으로 통일해주어야 한다.
✔ 여러 데이터 형의 연산은 어떤 결과를 내야 하는지 결정하지 못해 에러가 발생한다.
👉 문자열 포맷팅 : 포맷 기호
포맷 기호 | 데이터 형 |
%d | 정수 |
%s | 문자열 |
%f | 실수 |
%05d | 정수 다섯 자리, 남는 부분은 0으로 채움 |
%.2f | 소수점 2자리까지 사용하는 실수 |
name1 = '짱구'
name2 = '%s는 못말려' %name1
print(name2)
age1 = 5
age2 = '%s는 %d살' %(name1,age1)
print(age2)
height1 = 130.5
print('%d살 %s의 키는 %.2f' %(age1,name1,height1))
✔ 출력 시에만 포맷 기호를 사용하는 것이 아니라 변수 초기화에도 사용할 수 있다.
✔ 쉼표가 필요 없고 %가 필요하니 주의하자.
print(0.1+.0.2) #0.30000000000000004
print(0.1 + 0.2 == 0.3) #False
👉 문자열 포맷팅 : format() 함수
name = '짱구'
age = 5
height = 130.5
n = '이름 : {}' .format(name)
a = '나이 : {}' .format(age)
h = '키 : {}' .format(height)
na = '{0}의 나이는 {1}살' .format(name,age)
nh1 = '{name}의 키는 {height}cn' .format(name=name, height=height)
nh2 = '{name}의 키는 {height}cn' .format(name='철수', height='135.7')
print(na)
print(nh1)
print(nh2)
✔. format() 함수를 사용해서 문자열 포맷팅이 가능하다.
✔ 하나의 값을 포맷팅 하려면 중괄호를 원하는 위치에 사용한다.
✔ 여러 값을 포맷팅하려면 순서를 중괄호 안에 넣어주거나, key값을 넣어주자.
✔. format() 함수를
👉 문자열 관련 메서드
문자열 메소드 | 설명 |
str.format() | 문자열 포맷팅 |
str.count() | 문자열 개수 세기 |
str.find() | 문자열 내부의 특정 문자열 찾기 |
str.upper() | 문자열을 모두 대문자로 변환 |
str.lower() | 문자열을 모두 소문자로 변환 |
str.replace() | 문자열 내부의 특정 문자열 바꾸기 |
str.split() | 문자열 분리 |
str.isspace() | 문자열에 공백 여부 확인 |
✔ 문자열 메서드의 예제는 따로 글 작성 예정 (지금까지 다루었던 함수만 아래에서 예제만 확인하자)
1. len(str) : 문자열 길이를 확인 (내장 함수)
str = 'hello world'
print(len(str)) #11
2. str(int) : 정수를 문자열로 바꾸어주는 함수
num = 10
str = str(num)
print(type(num))
print(type(str))
3. str.format() : 문자열 포맷팅
name = '짱구'
age = 5
height = 130.5
na = '{0}의 나이는 {1}살' .format(name,age)
nh1 = '{name}의 키는 {height}cn' .format(name=name, height=height)
print(na)
print(nh1)
👉 출력 함수 print()
1. 콤마(,)를 이용한 출력
name = '짱구'
age = 5
print(name,age)
2. 문자열 연결 기호(+)를 이용한 출력
name = '짱구'
age = 5
print('이름은 ' + name + ' 나이는 ' + str(age) + '살')
3. 문자열 포맷팅을 이용한 출력 (포맷 기호,. format() 메서드)
name = '짱구'
age = 5
print('이름 : %s' %name)
print('나이 : {}' .format(age))
print('{0}의 나이는 {1}살 입니다'.format(name,age))
4. 키워드 sep를 이용한 출력
year = 2021
month = 3
day = 15
print(year,month,day, sep='/')
5. 키워드 end를 이용한 출력
str1 = '안녕'
str2 = '만나서 반가워'
print(str1)
print(str2+'\n\n')
print(str1, end='! ')
print(str2)
#출력 함수 print()는 항상 개행으로 출력으로 마무리한다
#키워드 end를 사용해 마지막 출력 형태를 설정할 수 있다
👉 입력 함수 input()
n1 = int(input('첫번째 숫자 입력 : '))
n2 = int(input('두번째 숫자 입력 : '))
sum = n1 + n2
print(sum)
✔ 키보드 입력을 통해 읽어온 값은 모두 문자열로 읽어온다
✔ 만약 입력받은 값을 정수로 바꾸어 사용하고 싶다면 형 변환이 필요하다
👉 널(Null)과 개행 문자(\n)
✔ Null : 빈 문자열을 뜻한다. 파이썬에서는 None으로 표현한다
✔ 개행 문자(\n) : 줄 바꿈 할 때에 사용한다. 라인피드(Line Feed)라고도 부른다
[참고] 엘리스 트랙-혼자 공부하는 파이썬 / 길벗-파이썬 코딩 도장 / 엘리스 트랙 - 예제 중심의 파이썬 입문 / 위키백과
'BackEnd > Python' 카테고리의 다른 글
[파이썬 기초] 01-5. 조건문 / 반복문 (0) | 2021.03.16 |
---|---|
[파이썬 기초] 01-4. 비트 연산자 / 논리 검증 (0) | 2021.03.16 |
[파이썬 기초] 01-2. 데이터형 / 변수의 의미 / 연산자 (0) | 2021.03.16 |
[파이썬 기초] 01-1. 파이썬의 특징과 기본 문법 (0) | 2021.03.15 |
[파이썬 기초] 00-2. 파이썬 기초 속성 복습 (0) | 2021.03.09 |