본문 바로가기

처음부터 파이썬

점프 투 파이썬으로 파이썬 배우기! - 파이썬 프로그래밍의 기초, 자료형 <문자열>

반응형

자료형이란? : 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것.

프로그램의 기본이자 핵심 단위이며 어떤 것을 계산할지부터 알아야 하고, 데이터베이스 프로그램을 만드려면 어떤 자료를 저장할지부터 알아야 한다. 

2-1. 숫자형

정수형 (integer) : 정수 자료형 (123, -178, 0)

실수형 (floating-point) : 소수점이 포함된 숫자 (1.2, -3.45, 4.24E10)

8진수(octal), 16진수(hexadecimal) : (0o177 / 0x8ff)

1. 사칙 연산자 (=, +, -, *, / 제외)

x ** y : x의 y 제곱

x % y : x를 y로 나눈 나머지

x // y : x를 y로 나눈 몫

2-2. 문자 자료형

문자열 (string) : 문자, 단어 등으로 구성된 문자들의 집합

1. 문자열 만드는 방법

1) 큰 따옴표로 양쪽 둘러싸기 : ' ------ '

2) 작은 따옴표로 양쪽 둘러싸기 : " ------ "

3) 큰 따옴표 3개 연속으로 양쪽 둘러싸기 : " " " ------ " " "

4) 작은 따옴표 3개 연속으로 양쪽 둘러싸기 : ' ' ' ------ ' ' '

2. 방법이 여러 가지인 이유

1) 문자열에 ' 포함 : food = "Python 's favorite food is perl"

2) 문자열에 " 포함시키기 : say = ' "Python is very easy." he says.'

3) 백슬래시 (\)를 사용해서 ' 와 " 를 문자열에 포함시키기 - \ 를 ' 나 " 앞에 삽입하면 \ 뒤의 ' 나 " 는 문자열을 둘러싸는 기호의 의미가 아니라 문자 그 자체 : food = 'Python\'s favorite food is perl'

3. 여러줄인 문자열을 변수에 대입하고 싶을 때

1) 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기 : multiline = "Life is too short\nYou need python"

2) 연속된 ' ' ' 또는 " " " 사용하기 : multiline = ' ' ' ... Life is too short ... You need python ... ' ' '

문자열이 여러 줄인 경우 이스케이프 코드를 쓰는 것보다 따옴표를 연속해서 쓰는 것이 훨씬 깔끔하다.

이스케이프 코드 예시

2-2-1. 문자열 연산하기

1. 문자열 길이 구하기

문자열 길이(length)는 len 함수를 이용하여 나타낼 수 있다. space도 길이 1이다.

a = "Life is too short"                                                                                                                                                                len(a)                                                                                                                                                                                       

17

2. 문자열 인덱싱과 슬라이싱

1) 인덱싱(Indexing)은 가리킨다는 의미이다. 숫자는 0부터 센다.

a = "Life is too short, You need Python"                                                                                                                                    a[3]                                                                                                                                                                                           

'e'

a[-5]                                                                                                                                                                                         

'y'

2) 슬라이싱(Slicing)은 잘라낸다는 의미이다. 문자열을 요소를 바꿀 때 사용한다. 마지막 숫자는 포함하지 않는다.

a = "Life is too short, You need Python"                                                                                                                                    a[0:4]                                                                                                                                                                                       

'Life'

a[19:]                                                                                                                                                                                     

'You need Python'

a[:]                                                                                                                                                                                           

'Life is too short, You need Python'

3. 문자열 포매팅 

문자열 안의 특정한 값을 바꿔야 할 경우, 문자열 안에 어떤 값을 삽입하는 방법이다.

1) 숫자 바로 대입

"I eat %d apples." % 3                                                                                                                                                             

'I eat 3 apples.'

2) 문자 바로 대입

"I eat %s apples." % "five"                                                                                                                                                         

→  'I eat five apples.'

3) 숫자값을 나타내는 변수로 대입

number = 3                                                                                                                                                                                          "I eat %d apples." % number                                                                                                                                                   

→ 'I eat 3 apples.'

4) 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.'

문자열 포맷 코드 예시

5) 포맷 코드와 숫자 함께 사용하기

포맷 코드를 숫자와 함께 사용하면 더 유용하게 사용할 수 있다.

"%10s" % "hi" # 양수는 오른쪽 정렬, 음수는 왼쪽 정렬                                                                                                           

 '       hi'

"%0.4f" % 3.42134234                                                                                                                                                             

'3.4213'

"%10.4f" % 3.42134234                                                                                                                                                           

'         3.4213'

6) format 함수를 사용한 포매팅

"I eat {0} apples".format(3)                                                                                                                                                           

'I eat 3 apples'

number = 10                                                                                                                                                                                        day = "three"                                                                                                                                                                                    "I ate {0} apples. so I was sick for {1} days.".format(number, day)                                                                                          

→ 'I ate 10 apples. so I was sick for three days.'

"I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)                                                                  

→ 'I ate 10 apples. so I was sick for 3 days.'

왼쪽 정렬 : "{0:<10}".format("hi") → 'hi        '                                                                                                                           

오른쪽 정렬 : "{0:>10}".format("hi") → '       hi'                                                                                                                         

가운데 정렬 : "{0:^10}".format("hi") '    hi    '                                                                                                                         

공백 채우기 : "{0:=^10}".format("hi") '====hi===='                                                                                                             

} or { 문자 표현하기 : "{{ and }}".format() → ' { and } '

 

7) 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 기능을 사용할 수 있다.

name = '홍길동'                                                                                                                                                                                  age = 30                                                                                                                                                                                              f'나의 이름은 {name}입니다. 나이는 {age}입니다.'                                                                                                                 

'나의 이름은 홍길동입니다. 나이는 30입니다.'

age = 30                                                                                                                                                                                             f'나는 내년이면 {age+1}살이 된다.'  # 표현식 : 문자열 안에서 변수와 +, - 와 같은 수식을 함께 사용하는 것                         

'나는 내년이면 31살이 된다.'

4. 문자열 관련 함수들

count : 문자 개수 세기

a = "hobby"                                                                                                                                                                                a.count('b')                                                                                                                                                                               

→ 2

find : 위치 알려주기1, 가장 처음 나온 위치를 반환하고 존재하지 않는 문자열이면 -1을 반환한다.

a = "Python is the best choice"                                                                                                                                                a.find('b')                                                                                                                                                                                 

→ 14                                                         

a.find('k')                                                                                                                                                                                   

-1

index : 위치 알려주기, 가장 처음 나온 위치를 반환하고 존재하지 않는 문자열이면 error가 발생한다.

a = "Life is too short"                                                                                                                                                        a.index('t')                                                                                                                                                                                 

8

a.index('k')                                                                                                                                                                               

→ Traceback (most recent call last):                                                                                                                                                 File "<stdin>", line 1, in <module>                                                                                                                                             ValueError: substring not found

join : 문자열을 삽입한다. 리스트나 튜플도 입력으로 사용할 수 있다.

",".join('abcd')                                                                                                                                                                           

→ 'a,b,c,d'

",".join(['a', 'b', 'c', 'd']) # 리스트                                                                                                                                                

→ 'a,b,c,d'

strip : 공백을 지운다.

a = "   hi    "                                                                                                                                                                                a.strip()                                                                                                                                                                                     

→ 'hi'

replace : 문자열을 바꾼다. 

a = "Life is too short"                                                                                                                                                                 a.replace("Life", "Your leg") # (바꿀 문자열, 바뀔 문자열)                                                                                                       

→ 'Your leg is too short'

split : 문자열을 나눈다.

a = "Life is too short"                                                                                                                                                                a.split() # 기본값으로 공백을 기준으로 문자열을 나눈다.                                                                                                       

→ ['Life', 'is', 'too', 'short']                                                                                                                                                       

b = "a:b:c:d"                                                                                                                                                                              b.split(':') # 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다.                                                                                           

→ ['a', 'b', 'c', 'd']

반응형