티스토리 뷰

👉  문자열 (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)라고도 부른다

 

 

 

 

 

 

[참고] 엘리스 트랙-혼자 공부하는 파이썬 / 길벗-파이썬 코딩 도장 / 엘리스 트랙 - 예제 중심의 파이썬 입문 / 위키백과

댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
최근에 올라온 글
글 보관함
Total
Today
Yesterday