카테고리 없음

인공지능과 미래사회(문자열 정리)

20308박동진 2023. 4. 16. 22:49
문자열이란?

- 따옴표(큰따옴표, 작은따옴표 등)로 감싸져서 표현된 문자, 단어들의 묶음
- 큰 따옴표 3개, 작은 따옴표 3개도 가능

"blue"
"123"
lies = "영기쌤 잘생겼어요"
"""ㄹㅇ"""
'''ㅋㅋ'''

하지만 모든 경우에 문자 자체를 그대로 출력 할 수 있는 것은 아닙니다.
<ul>
   <li>따옴표 안에 같은 종류의 따옴표를 사용한 경우</li>
   <li>이스케이프 시퀸스(Escapep sequence)를 사용한 경우</li>
   <li>문자열 포매팅을 한 경우</li>
</ul>
<!--(왜 이렇게 해놨냐구요? 저번에 웹 수행평가 본 게 뇌에 박혀서요;;)-->
에는 특별하게 인식됩니다.
문자열에 "' 를 넣고 싶은 경우 \"\' 를 사용하거나, 원하는 문장 내에 " "' ' 를 삽입하면 됩니다. 
+ 문자열 내에서 Enter를 사용하려는 경우 """ (Enter)원하는 문구 (Enter)"""형태로 기입 가능합니다.

str = "리퍼는 "뭐든"가능합니다."
str1 = """
리퍼님,
제가 하나하나 거절하기 힘드니까,
파티 신청 넣지 말랬져?
"""

print(str, str1)
--> 리퍼는 "뭐든"가능합니다. 리퍼님,
제가 하나하나 거절하기 힘드니까,
파티 신청 넣지 말랬져?

 
이스케이프 시퀸스란 무엇일까요?
- 문자열에서 표현하기 어려운 특정 문자를 백 슬래쉬(\)로 표현하는 것.
이전에 설명한 느낌이 들지만 아마 문장에 넣을 수 있는 상황과 예시는 말 안 한 것 같아 다시 설명하겠습니다.

\n문자열 안에서 줄을 바꿀 때 사용
\t문자열 사이에 탭 간격을 줄 때 사용
\\문자 \를 그대로 표현할 때 사용
\'작은따옴표(')를 그대로 표현할 때 사용
\"큰따옴표(")를 그대로 표현할 때 사용
\r캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b백 스페이스
\000널 문자

이스케이프 시퀸스의 종류이며 해당 코드들은 원하는 문자열 어디에든 넣어줘도 상관 없습니다.

str = "오늘은 왠지\n파이썬 공부가 하고 싶어지는 날인걸?"

같이요.
 
그렇다면 모든 곳에서 쓰였던 + 라던가 *은 사용할 수 없을까요?
아닙니다.
참 똑똑하죠? 파이썬 만든사람?
각각 + 는 앞과 뒷 문자열을 이어주는 역할을 하며(띄어쓰기 없음), 
*는 해당 문자열을 몇 번 출력할 것인지를 알려주는 역할을 합니다.( *3이면 3번)

str = "나는"
str1 = "파이썬이 좋다"
print(str + str) --> 나는파이썬이 좋다.
print(str*1, str*2) --> 나는 파이썬이 좋다파이썬이 좋다

 
 
인덱싱과 슬라이싱
 
인덱싱이란 문자열에 포함된 각 문자에 대해 순차적으로 번호를 매기는 것입니다.
라고 쓰여는 있는데.... 이렇게만 보면 어렵죠? 
간단한 예시와 함께 봅시다.

a = "Computer security"
b = a[0] + a[9]
print(b) --> C s(공백도 하나의 인덱스로 처리)

C언어의 배열처럼 만들 수 있는 것을 보실 수 있습니다.
파이썬과 C언어 모두 첫 번째 문자열의 인덱스값은 0이며, 공백도 하나의 인덱스로 처리합니다.
외에도 a[-2]따위의 문법도 존재하는데 이는 뒤에서부터 수를 세어 주시면 됩니다.(단 뒤에서는 a[-1]부터 시작하며 a[-0]은 a[0]의 값과 동일합니다.
 
 
슬라이싱이란단어 그대로 지정 범위만큼 데이터 요소를 잘라내는 기능을 합니다.
이번에는 말이 굉장히 쉽죠?
라고 생각하신다면 이미 어떻게 작동하시는지 알고 계신게 분명합니다.

a = "Sunrin security"
b = a[0:5]

print(b) --> Sunri

처럼 처음 지정한 범위부터 ~까지 의 문법으로 통일되는데 맨 처음과 맨 끝을 말하고 싶다 하시면 공백으로 비워놔도 상관 없습니다. 이 역시 인덱싱의 영역으로 -로 출력이 가능합니다.

a = "Sunrin security"
b = a[0:-5]
print(b) --> Sunrin sec