본문 바로가기

프로그래밍언어/Python

ch02. 파이썬 프로그래밍 자료형 (숫자형, 문자열)

반응형

1. 숫자형 (Number)

◼︎ 숫자형 종료

1) 정수형 (Integer)

2) 실수형 (Float)

3) 8진수 (Octal)

4) 16진수 (Hexadecimal)

◼︎ 연산자

- 사칙 연산자: +, -, *, /

- 제곱 연산자: **

- 나머지 연산자: %

- 몫 연산자: //

2. 문자열 (String)

◼︎ 문자열 생성방법

- "1234": 큰 따옴표

- '1234': 작은 따옴표

- """1234""": 큰 따옴표 * 3

- '''1234''': 작은 따옴표 * 3

※문자열 안에 ', "를 포함시키기 위해서 여러가지 문자열 생성방법이 존재한다.

백슬래시를 이용해서 작은 따옴표, 큰 따옴표 출력 가능 => \', \"

ex) 'Python\'s favorite food is perl' / "\"Python is very easy.\" he says."

◼︎ 여러줄의 문자열 생성

1) 개행문자 삽입 -> \n

2) 작은 따옴표 3개 (''')나 큰 따옴표 3개 (""") 사용

※ 이스케이프 코드 (escape code)

◼︎ 문자열 연산

- 더하기: + ex) "python" + "python" -> "pythonpython"

- 곱하기: * ex) "python" * 2 -> "pythonpython"

◼︎ 인덱싱, 슬라이싱

- 인덱싱

- 문자열은 각 문자가 0부터 인덱스를 가지게 된다.

- 인덱스를 통해 각 문자에 접근 가능

- 슬라이싱

- 문자의 인덱스를 통해서 원하는 구간을 잘라낼수 있다.

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

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

- 문자열[ 시작번호 : 끝번호 ]: 시작번호부터 끝번호까지의 문자열을 슬라이싱한다.

(끝번호의 문자는 미포함이다.)

- 문자열[ : 끝번호 ]: 문자열 처음부터 끝번호까지의 문자열 슬라이싱

- 문자열[ 시작번호 : ] : 문자열 시작번호부터 끝까지의 문자열 슬라이싱

- 문자열 [ : ]: 문자열 전체 슬라이싱

- 인덱스에 음수도 설정 가능

※ 음수 인덱스의 경우 문자열의 끝에서부터의 번호를 의미한다

※ 문자열의 인덱스를 통해서 값을 변경할 수는 없다.

문자열은 요소값을 변경할 수 없는 immutable한 타입의 자료형이다.

◼︎ 문자열 포맷팅

ex) 문자열 포맷팅 사용 예제

"I eat %d apples." % 3         # I eat 3 apples.

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

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

day = "three"
"I ate %d apples. so I was sick for %s days." % (number, day)
# I ate 3 apples. so I was sick for three days.

 

- 포맷팅 응용

"%10s" % "hi"          # '        hi' => 왼쪽을 공백으로 채운 길이가 10인 문자열의 생성
"%-10sjane." % 'hi'    # 'jane        hi' => 오른쪽을 공백으로 채운 길이 10의 문자열 공간 생성
"%0.4f" % 3.42134234   # '3.4123' => 소수점 아래 4자리수까지 표현

 

- format 함수 사용

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

number = 3
"I eat {0} apples".format(number)
# '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.'
# {0}, {1} 과 같이 인덱스에 맞춰 format 함수의 파라미터 값이 사용된다.

"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 three days.'
# format 함수의 파라미터의 이름값으로 사용가능.

"{0:<10}".format("hi")
# 'hi        '
# 길이 10인 문자열, 왼쪽 정렬

"{0:>10}".format("hi")
# '        hi'
# 길이 10인 문자열, 오른쪽 정렬

"{0:^10}".format("hi")
# '    hi    '
# 길이 10인 문자열, 중앙 정렬

"{0:=^10}".format("hi")
# '====hi===='
# 공백이 아닌 문자로 채우기

"{0:!<10}".format("hi")
# 'hi!!!!!!!!'
# 공백이 아닌 문자로 채우기

 

- f 문자열 포맷팅

※ 파이썬 3.6버전부터 f 문자열 포맷팅 가능

문자열 앞에 f 문자를 붙여서 포맷팅 사용

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

f'나는 내년이면 {age+1}살이 된다.'
# '나는 내년이면 20살이 된다.'
# +,-와 같은 수식을 사용한다.

d = {'name':'홍길동', 'age':30}
f'나의 이름은 {d["name"]}입니다. 나이는 {d["age"]}입니다.'
# '나의 이름은 홍길동입니다. 나이는 30입니다.'
# 딕셔너리 자료형 사용

 

◼︎ 문자열 함수

- count(): 문자 개수 세기

- find('b'): 문자('b')가 가장 먼저 나온 위치를 반환. 존재하지 않는 경우 -1을 반환한다.

- index('b'): 문자('b')가 가장 먼저 나온 위치를 반환. 존재하지 않는 경우 오류를 발생시킨다.

- join('...'): 문자열 사이에 각 문자를 위치시킨다.

','.join('abcd') # 'a,b,c,d'

- uppper(): 문자열을 대문자로 변환한다.

- lower(): 문자열을 소문자로 변환한다.

- lstrip(): 왼쪽 공백 제거

- rstrip(): 오른쪽 공백 제거

- strip(): 양쪽 공백 제거

- replace("a", "b"): 'a'문자를 'b'로 치환해준다.

- split(":"): ':' 문자를 기준으로 문자열을 나누어 리스트로 반환한다. 아무것도 입력하지 않는 경우 모듣 문자를 기준으로 나눈다.

반응형