정보보안공부
python_문자열 본문
문자와 수식
- 문자 표현은 : '', "" -> '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이면 양쪽 공백을 지운다.
'Language > python' 카테고리의 다른 글
python_day06_input함수 이용하기 (0) | 2017.01.16 |
---|---|
python_day05_집합, 논리와 논리식 (0) | 2017.01.13 |
python_day04_리스트,튜플,딕셔너리 (0) | 2017.01.13 |
python_변수,사용자 입력과출력 (0) | 2017.01.13 |
python_연산자와 타입 (0) | 2017.01.12 |