본문 바로가기

Etc/Python

#03 자료형-1(숫자형, 문자열 자료형)

[ 숫자형 ]


정수형(integer) : 양의 정수와 음의정수,0

>>> a = 5


실수형(Floating-point) : 소수점이 포함된 숫자

>>> a = -2.5

 - 실수형의 소수점 표현방식 : E or e 뒤에 n값을 붙이면 *10^n으로 표현된다.

 >>> a = 4.24e-10

 위의 결과는 4.24*10^-10과 같다.


8진수(Octal)와 16진수(Hexadecimal) : 8진수는 0o 또는 0O (숫자 0 + 알파벳 o or O)로 시작하면되고 16진수는 0x로 시작하면 된다.

>>> a = 0o156

>>> a = 0x6af




[ 문자열 자료형 ]


문자열 만드는 법

1. " 로 양쪽 둘러싸기

"Hello World"

2. ' 로 양쪽 둘러싸기

'Hello World'

3. " 3개를 연속으로 써서 양쪽 둘러싸기

"""Hello World"""

4. ' 3개를 연속으로 써서 양쪽 둘러싸기

'''Hello World'''


문자열 안에 ' 이나 " 포함시키기

1. 문자열에 " 포함시키기

>>> '"Hello World" is tedious'

2. 문자열에 ' 포함시키기

>>> "Hello World's power"

3. \(백슬래시)를 붙인 출력서식문자 이용 

>>> "\"Hello World!\" is tedious"


여러줄인 문자열을 변수에 대입시키기

1. 이스케이프 코드 \n 삽입하기

>>> 'Hello World\nNice To Meet You'

2. 연속된 ' or " 3개 이용

>>> multiline='''

...    Life is so boring

...    isn't it?

...    '''

 



문자열 연산

1. 문자열 더해서 연결하기(Concatenation)

>>> head = "Python" >>> tail = " is fun!" >>> head + tail 'Python is fun!'


2. 문자열 곱하기

>>> a = "python"

>>> a * 2 'pythonpython'

 직관적으로 보시다시피 반복을 의미한다.


3. 문자열 곱하기 응용

# multistring.py print("=" * 50) print("My Program"

print("=" * 50)

↓↓↓↓↓↓↓↓↓

C:\Users>cd C:\Python

C:\Python>python multistring.py

==================================================

My Program

==================================================




문자열 인덱싱

 L

i 

f 

e 

 

i 

s 

 

t

o

o


s

h

o

r 

t 

, 

 

Y 

o 

u 

 

 0

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 0

3 

위와 같이 문자에 숫자를 붙이는 것이 인덱싱이다.


 인덱싱 활용

>>> a = "Life is too short, You Need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'
위와 같이 인덱싱하여 특정 문자를 뽑아낼 수 있으며, -를 붙이면 뒤에서부터 인덱싱할 수 있다.



문자열 슬라이싱

슬라이싱은 문자열에서 특정 문자에서 특정 문자까지를 모두 뽑아내는 기법이다. 방식은 [시작번호:끝번호]로 끝번호의 문자는 포함되지않는다.

>>> a = "Life is too short, You Need Python"

>>> a[0:4]
'Life'
>>> a[0:3]
'Lif'
 (0 <= a <3)
슬라이싱할때 번호를 생략하면 끝까지를 표현한다.
>>> a[19:]
'You need Python'
>>> a[:]
'Life is too short, You need Python'
>>> a[19:-7]
'You need'


문자열 포매

문자열 내의 특정한 값을 바꿔야 할 경우가 있을 때 이것을 가능하게 해주는 것이 바로 문자열 포매팅 기법이다.

쉽게 말해 문자열 내에 어떤 값을 삽입하는 방법이다.

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

'I eat 3 apples.'

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

'I eat five apples.'

 C와 유사한 형태로 문자열 포맷코드 %d와 %s를 사용하여 표현하는 것을 확인할 수 있다.

>>> number = 3
>>> "I eat %d apples." % number 'I eat 3 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)
%c문자 1개(character)
%d정수 (Integer)
%f부동소수 (floating-point)
%o8진수
%x16진수
%%Literal % (문자 %자체) 

포맷 코드는 c와 같이 정렬/공백, 소수점 표현 모두 동일하게 %10.4f 등으로 표현 가능하다.



문자열 관련함수

 문자열 자료형은 자체적으로 가지고 있는 함수들이 있고 이들을 문자열 내장함수라고 한다.

이 내장함수를 사용하려면 문자열 변수 이름 뒤에 '.'를 붙인 다음에 함수 이름을 써주면 된다.

 문자 개수 세기(count)

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

문자열 중 문자 b의 개수를 반환한다.

 위치 알려주기1(find)

>>> a = "Python is best choice"
>>> a.find('b')
10
>>> a.find('k')
-1

문자열 중 문자 b가 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.

위치 알려주기2(index)

>>> 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

문자열 중 문자 t가 맨 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킨다. 앞의 find 함수와 다른 점은 문자열 안에 존재하지 않는 문자를 찾으면 오류가 발생한다는 점이다.

문자열 삽입(join)

>>> a= ","
>>> a.join('abcd')
'a,b,c,d'

abcd라는 문자열의 각각의 문자 사이에 변수 a의 값인 ','를 삽입한다.

소문자를 대문자로 바꾸기(upper)

>>> a = "hi"
>>> a.upper()
'HI'

upper() 함수는 소문자를 대문자로 바꾸어 준다. 만약 문자열이 이미 대문자라면 아무런 변화도 일어나지 않을 것이다.

대문자를 소문자로 바꾸기(lower)

>>> a = "HI"
>>> a.lower()
'hi'

lower() 함수는 대문자를 소문자로 바꾸어 준다.

왼쪽 공백 지우기(lstrip)

>>> a = " hi "
>>> a.lstrip()
'hi '

문자열 중 가장 왼쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다. lstrip에서 l은 left를 의미한다.

오른쪽 공백 지우기(rstrip)

>>> a= " hi "
>>> a.rstrip()
' hi'

문자열 중 가장 오른쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다. rstrip에서 r은 right를 의미한다.

양쪽 공백 지우기(strip)

>>> a = " hi "
>>> a.strip()
'hi'

문자열 양쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다.

문자열 바꾸기(replace)

>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'

replace(바뀌게 될 문자열, 바꿀 문자열)처럼 사용해서 문자열 내의 특정한 값을 다른 값으로 치환해 준다.

문자열 나누기(split)

>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> a = "a:b:c:d"
>>> a.split(':')
['a', 'b', 'c', 'd']

a.split()처럼 괄호 안에 아무런 값도 넣어 주지 않으면 공백을 기준으로 문자열을 나누어 준다. 만약 a.split(':')처럼 괄호 안에 특정한 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 이렇게 나눈 값은 리스트에 하나씩 들어가게 된다. ['Life', 'is', 'too', 'short']나 ['a', 'b', 'c', 'd']는 리스트라는 것인데 리스트는 향후 배울 예정이다.



'Etc > Python' 카테고리의 다른 글

#06 자료형의 참과 거짓, 변수  (0) 2016.11.27
#05 자료형-3(딕셔너리, 집합 자료형)  (0) 2016.11.27
#04 자료형-2(리스트, 튜플)  (0) 2016.11.24
#02 기초문법  (0) 2016.11.22
#01 Python  (0) 2016.11.22