정보보안공부

python_문자열 본문

Language/python

python_문자열

Steady_sp 2017. 1. 13. 02:26

문자와 수식

- 문자 표현은 : '', "" -> '2'는 문자

- 예외적인 문자: 변수이름, 함수이름, 논리식

- 공백도 문자이다.

- 빈문자는 다음과 같이 표현 : ' '

 

 

 

Escape Sequence

- 문자로 표현되기 힘든 문자들 : 엔터, 탭, 백스페이스

- 문자로 표현될 수 없는 문자들 : 숫자, 널문자(0)

 

예)

출력 : hello, "korea"

 

해결1 : 'hello, "korea"' , 혹은 "hello, 'korea'"

해결2 : "hello, \"korea\""

 

 

출력 : hello, \korea\

해결 : print( 'hello, \\korea\\' )

 

 

출력 : hello

       korea

해결 : print( "hello \nkorea" )

 

 

 

* \ : \\

* 탭 : \t

* 백스페이스 : \b

* 엔터 : \n

 

 

 

 

문자에서 사용가능한 연산자 : +, *

+ : 문자와 문자간의 연결

두 문자를 하나로 합치는 경우

(공백을 할경우 "hello " + "korea" or "hello" + " " + "korea")

 

 

'hello' + str(10)

->`hello10'

int('10') + 10

-> 20

 

 

 

* : 문자의 반복(str * int)

str('hello') * 3 or str('hello' * 3)

-> hellohellohello

 

 

표현식 (expression)

- 수식, 문자식, 논리식

- 연산 가능한 모든 표현들을 표현식이라고 부른다.

- 수를 연산하면 수가 결과로 나오고

- 문자를 연산하면 문자가 결과로 나오고

- 논리식을 연산하면 논리식으로 결과가 나온다.

 

func(expression) -> 수식이 들어갈수 있음을 나타낸다.

func(value) 혹은 func(변수,값) -> 표현식이 들어갈 수 없다. 값 형태만 가능

 

변수(variable)

- 대수식 : 미지수 x, a, b 에 대한 다항식, ...

- 변수를 사용하면 프로그래밍이 간결해진다.

- 값을 저장해놓고 사용한다.

 

assignment(배정문, 할당문, 지정문, ...)

변수이름 = 값 혹은 표현식

 

python3에서의 변수이름

- 한글도 변수이름으로 사용이 가능

- 숫자가 앞에 올 수는 없다.

- 10, 10base (x)

- 변수 이름은 한글, 영문 대/소문자로 시작해야 한다.

- base10 (o)

- 특수문자는 사용할 수 없다. (예외 : '_')

- base_10 (o), base-10 (x)

- 예약어는 사용할 수 없다. (쳤을때 색깔바뀌는 경우)

- true, False, if, while, ...

 

* 암묵적인 룰

- 꼭 지켜야 할 내용은 아니다.

- 클래스의 이름은 대문자로 시작한다.

- 함수와 변수의 이름은 소문자로 시작한다.

- 변수의 이름은 단일문자를 사용하지 않는다.

- a, b, c

- 변수에 저장되는 값을 표현할 수 있는 단어들로 구성

- 사과의 개수를 저장하는 변수

- num_of_apple

- numOfApple

 

* 예외적으로 단일 문자를 변수 이름으로 허용하는 경우

- i, j, k, x, y

 

## 아래를 통해 다양한 문자열형태를 알아보자.

 

#1. 문자열을 더하거나 곱해서 결과를 얻을 수 있다.

 

 

--> 문자열을 더해서 각각의 문자열이 연결되는 것을 확인할 수 있다.

--> 문자열을 정수와 곱하게되면 곱한 수만큼 문자열이 반복되는 것을 확인 할 수 있다.

 

#2. 문자열 슬라이싱

-> 문자열 변경시 슬라이싱

 

 

--> 문자열 슬라이싱을 하기위해 기본적인 인덱싱을 알아보자. 위와같은 문자열이 있을때 맨처음 h는 0번째로 지정된다. 문자열에서는 띄어쓰기도 무시하지않고 인덱싱이 되므로 주의하자.

 

 

--> 문자열이 저장된 변수 a를 a[:8]을 통해 0번부터7번까지인 부분 13100275만 나타낸다.

--> a[8:]은 8번째부터 마지막까지 부분 정성필을 나타낸다.

--> : 을 기준으로 : 왼쪽은 해당번호부터를 나타내고 : 오른쪽은 해당번호 -1까지를 나타낸다.

 

** 문자열을 변경할때 슬라이싱을 활용한다. (문자열, 튜플 등의 자료형은 요소값을 변경 할 수 없다.) 따라서 슬라이싱을 이용해 바꾼다.

 

 

--> 문자열은 그 값을 변경할 수 없으므로 아래와같이 사용한다.

 

 

--> 슬라이싱을 이용해 바꾸려는 부분을 제외한 나머지부분을 자르고 해당부분을 + 를 이용해 문자열을 이어준다.

 

#3. 문자열 포매팅

 

 

--> 문자열안에 숫자를 넣고싶은 자리에 %d를 이용하고 삽입할 숫자는 가장뒤에 % 문자 다음에 작성한다.

--> 문자열안에 문자열을 넣고싶은 자리에 %s를 이용하고 삽입할 문자는 가장뒤 %문자 다음에 작성한다.

--> 문자열안에 해당 변수값을 넣고싶을땐 변수의 자료형을 고려하고 %문자뒤에 변수명을 작성한다.

 

 

--> 문자열안에 2개 이상의 값을 넣을때는 %문자뒤에 ( ) 안에 , 로 구분한다.

 

--> %d와 %를 같이 사용하고 싶을때는 %%를 이용한다.

 

#4. 포맷 코드와 숫자를 함께 사용하기

 

 

--> 포맷코드와 숫자를 함께 사용하면 숫자만큼 전체길이중에 문자열 공간을 제외한 나머지 공간에 공백이 생기는 것을 확인할 수 있다. 양수이면 오른쪽으로 문자열이 정렬되고 음수이면 왼쪽으로 문자열이 정렬된다.

 

 

--> 앞서 한것처럼 양수는 문자열 전체길이를 나타내고 소숫점 0.4는 소수 4번째 자리까지 반올림한 값을 만들어준다.

 

** 다른 방법의 문자열 포매팅도 있다. 아래를 통해 확인해보자.

 

 

--> %포맷코드 %포맷하려는 변수 대신에 {0} .format(포맷하려는 변수) 를 사용할 수도 있다. 두개 이상의 값을 넣을때는 {0} {1}을 이용하고 .format( , )를 이용해 작성한다.

--> { } 안에 변수 x를 사용해 {x}로 작성했을 때는 .format(x=값설정)을 이용해 작성할 수 있다. 이같은 경우는 name = value의 형태의 입력값이 있어야만한다.

 

 

--> 10%d 와같이 문자열길이를 설정하고 오른쪽 정렬되게하는 것과 마찬가지로 {0} fomat방식도 정렬방식이 있다. 왼쪽 정렬을 하려면 :<10을 이용해 {0:<10}을 작성하고 오른쪽 정렬은 :>10 가운데 정렬은 :^10을 이용한다.

--> 공백을 채우고 싶을때는 :뒤에 공백을채울 문구를 입력하면된다.

--> 포매팅한 값이 { } 가 사용되도록 하려면 {{ }} 형태로 사용할 수도 있다.

 

#5. 여러가지 문자열 관련 함수

 

*** find / index

 

 

--> find와 index모두 위치를 알려준다. 다만 존재하지 않은 위치일때 find는 -1을 출력하고 index는 오류가 발생하는 점이 다르다.

 

*** join / upper / lower

 

--> join을 이용하면 문자열 사이사이에 해당문자를 삽입할 수 있다. 변수에 해당문자를 집어넣고 join( ) 안에 해당 문자열을 넣는다.

--> upper은 대문자로 바꾸어준다.

--> lower은 소문자로 바꾸어준다.

 

*** replace / split

 

 

--> replace는 ( , ) 안에 첫번째는 기존 문자열 두번째는 바꾸려는 문자열을 입력해서 문자열을 바꿀 수 있다.

--> split()은 ( ) 안에 아무값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터)를 기준으로 문자열을 나눠준다. split(",")의 경우 ,를 기준으로 나누어준다.

 

*** strip / lstrip / rstrip

--> strip()은 공백을 지워주는 역할을 한다. lstrip이면 왼쪽 공백을 지우고 rstrip이면 오른쪽 공백을 지우고 strip이면 양쪽 공백을 지운다.

Comments