문자열

생성

1. 큰따옴표 "abc"

2. 작은따옴표  'abc'

3. 큰따옴표 3개 """a

bc"""

4. 작은따옴표 3개 '''a

bc'''

 

여기서 3번과 4번은 여러 줄로 구성된 문자열을 저장할 수 있다.

ex)

>>> a= """
abc"""
>>> print(a)

abc

 

 

문자열 곱

 문자열 내에서 특정 문자열이 반복되는 경우 '*'를 사용하여 간소화가 가능하다.

ex)

>>> print("-" * 30)
------------------------------

 

 

문자열 슬라이싱

 문자열에서 원하는 부분을 뽑아낸다.

ex)

>>> b = "abc d"
>>> b[0:2]
'ab'
>>> b[2:-1]
'c '
>>> b[2:]
'c d'
>>> b[:2]
'ab'

 

주의점 : b[x1:x2]라면 범위는 x1<= b < x2 으로서 x2는 포함하지 않는다.

여기서 x2를 생략한다면 문자열 끝을 가리키고 x1을 생략한다면 문자열 맨 처음을 가리킨다.

 

 

문자열에서 문자변경

 파이썬에서 문자열은 요소값을 바꿀 수 없는 자료형이다. 그래서 기존의 다른 언어에서처럼 인덱스로 접근하여 문자를 바꿀려하면 에러가 발생한다.

 

하지만 슬라이싱 기능을 이용하여 유사하게 만들 수 있다.

>>> def chan(s, i, c) :
	return s[:i] + c + s[i+1:]

>>> c = "byphon"
>>> c
'byphon'
>>> c = chan(c, 0, 'p')
>>> c
'pyphon'
>>> c = chan(c, 2, 't')
>>> c
'python'

 

위 코드의 chan함수는 (문자열, 인덱스, 변경할 문자) 를 매개변수로 받고서 슬라이싱 기능을 이용하여서 해당 index의 문자를 변경한 문자열을 return해준다.

 

 

 

문자열 포맷팅

 문자열을 만들거나 표현할 때 사용한다. ',' 나 '+'를 사용할 수도 있지만 타입이 달라서 에러가 발생할 수 있고, 포맷팅 사용하면 직관적으로 변수의 변수형을 알 수 있다.

ex)

>>> print("hello %s" % "world")
hello world
>>> print("%d, %s" % (52, "Hi") )
52, Hi
>>> print("%d" % 52 , "%s %s" % ("hello", "world") )
52 hello world

- 한 문자열에서 여러 값이 있다면 괄호를 써주어 묶어준다.

 

- 3번 째 print문처럼 여러 문자열이 있다면 각 문자열 뒤에서 "% 값" 을 주어야 한다.

 

 

 

문자열 정렬

 포매팅을 이용하여서 문자열을 정렬할 수 있다.

ex)


>>> a = "hi"
>>> "{:<15}".format(a)
'hi             '
>>> "{:^15}".format(a)
'      hi       '
>>> "{:>15}".format(a)
'             hi'
>>> "{:-^15}".format(a)
'------hi-------'

왼쪽 정렬은 '<' 를 

가운데 정렬은 '^'를

오른쪽 정렬은 '>'를 사용하여 정렬할 수 있다.

 

 

 

 

문자열 함수들

ex)


>>> a = "ab cd"
>>> len(a)		# 문자열 길이 리턴
5
>>> a.find('c')		# 문자열에서 'c'를 찾아서 index 리턴
3
>>> a.find('e')		# 문자열에 없으면 -1 리턴
-1
>>> a.index('c')	# find와 같은 기능 단, 없는 문자면 에러 발생
3
>>> a.replace("ab", "ef")	# 인수 = (변경 될 문자열, 변경 할 문자열)
'ef cd'
>>> a.split()	# 인수를 주지 않았기 때문에 디폴트문자인 공백으로 문자열을 자른 후 리턴
['ab', 'cd']

>>> b = ' b,c,d,b '
>>> b.split(',')	# 문자열에서 ','를 기준으로 자른 후 리스트 리턴
[' b', 'c', 'd', 'b ']
>>> b
' b,c,d,b '
>>> b.lstrip()		# left(왼쪽) 공백 제거
'b,c,d,b '
>>> b.rstrip()		# right(오른쪽) 공백 제거
' b,c,d,b'
>>> b.strip()		# 왼쪽, 오른쪽 공백 제거
'b,c,d,b'

>>> b.count('b')	# 문자열에서 문자의 개수 리턴
2
>>> '~'.join(b)		# 문자열에서 각 문자 사이에 문자를 삽입한다.
' ~b~,~c~,~d~,~b~ '

>>> '@'.join(b.strip().split(','))		# 처음 b에서 ','을 '@'로 바꾼다
'b@c@d@b'

>>> c = "AbCd"
>>> c
'AbCd'
>>> c.upper()		# 대문자로 변경
'ABCD'
>>> c.lower()		# 소문자로 변경
'abcd'

 

- len() : 문자열 길이 리턴

 

- find() : 문자열에서 문자를 찾아 인덱스 리턴, 없으면 -1을 리턴

 

- index() : find()와 마찬가지로 문자열에서 문자를 찾아 인덱스 리턴. 단, 없으면 에러 발생

 

- replace() : 문자열에서 지정한 문자열 변경

 

- split() : 문자열을 나누어 리스트로 반환한다. 인수를 주지 않으면 기본으로 ' '(공백)으로 나뉜다.

 

- lstrip() : 왼쪽 공백 제거

 

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

 

- strip() : 양쪽 공백 제거

 

- count() : 문자열에서 인수로 준 문자의 개수를 리턴한다.

 

- join() : 문자열에서 문자들 사이에 문자를 삽입한다.

 

- upper() : 대문자로 바꾼다.

 

- lower() : 소문자로 바꾼다.

'Python' 카테고리의 다른 글

파이썬 자료형 - 숫자  (0) 2019.04.09

정수형(10진수) :  양의 정수, 음의 정수, 0 

ex)  >>> num = 50

     >>> num = -99

 

 

2진수(Binary) : 숫자 0 + (소문자 b 또는 대문자 B) + 2진수 숫자

ex)  >>> num = 0B111     => 10진수=7

 

※ 주의점 : 0~1 숫자만 사용해야한다. 그렇지 않으면 SyntaxError: invalid token 가 발생한다.

 

 

8진수(Octal) : 숫자 0 + (소문자 o 또는 대문자 O) + 8진수 숫자

ex)  >>> num = 0o77     => 10진수=63

 

※ 주의점 : 0~7 숫자만 사용해야한다. 그렇지 않으면 SyntaxError: invalid token 가 발생한다.

 

 

16진수(Hexadecimal) : 숫자 0 + ( 소문자 x 또는 대문자 X) + 16진수 숫자

ex)  >>> num = 0x50      =>  10진수=80

 

※ 주의점 : 0~9 숫자를 다 사용할 수 있다. 하지만 10~15 숫자의 해당하는 알파벳 a~f만 사용하지 않으면 SyntaxError: invalid token 가 발생한다.

 

 

실수형 : 우리가 평소 사용하던 소수점을 포함한 숫자를 나타낸다.

ex)  >>> num = 9.8

 

또한, 파이썬에서는 "지수식 표현"으로써 ( 실수 + 소문자 e 또는 대문자 E + 10의 승수 )

ex)  >>> num = 1.23E5      (=> 1.23  * 10^5 )

      >>> num = 4.56e-3     (=> 4.56 * 10^-3 )

 

 

 

 

 

연산자

 

 - a ** b :  a^b,  a의 b제곱을 반환한다.

 

 - a % b :  a를 b로 나눈 후 나머지 부분을 반환한다.

 

 - a // b :  a를 b로 나눈 후 몫 부분만을 반환한다.

 

 

'Python' 카테고리의 다른 글

파이썬 자료형 - 문자열  (0) 2019.04.11

+ Recent posts