Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 문자열:Python에서 가장 인기 있는 데이터 유형 중 하나

문자열은 파이썬에서 가장 널리 사용되는 데이터 유형 중 하나입니다. 문자열은 높은 수준에서 일련의 문자로 구성된 개체입니다. 문자는 기호입니다. 예를 들어 영어의 알파벳에는 26개의 문자가 있습니다.

Python 문자열은 만들고 조작하기 쉽습니다. 지금 바로 학습을 시작할 수 있습니다. 이 문서에서는 Python의 문자열, 작동 방식, 문자열에 사용되는 일반적인 작업을 살펴봅니다.

파이썬에서 문자열이란 무엇입니까?

작은 따옴표(') 또는 큰 따옴표(")가 될 수 있는 따옴표로 문자를 묶는 것만으로 Python에서 문자열을 생성할 수 있습니다. 변수에 할당하여 문자열을 시작하고 선언합니다.

doubleQuoteString = "I'm a string"
singleQuoteString = 'I\'m a string' # needs escaped single quote to treat it as a string value as opposed to end of input. 

기억하십시오:작은 따옴표로 묶인 문자열 내부에 아포스트로피를 사용해야 하는 경우 "\"로 이스케이프 처리해야 합니다. 이렇게 하면 따옴표가 문자열의 끝이 아닌 문자열의 일부로 처리됩니다.

독스트링 및 여러 줄 문자열

독스트링은 파이썬의 또 다른 유형의 문자열입니다. 그것들은 삼중 따옴표("")로 묶여 있으며 함수나 클래스의 첫 번째 줄에서 여러 줄 주석으로 처리됩니다.

def printString(str):
 ''' takes in a string and prints it to the console '''
 print(str)

독스트링은 코드 블록의 목적이 무엇인지 설명합니다. 논리에서 독스트링을 사용하려는 경우 독스트링을 변수에 할당하면 됩니다. 변수에 할당하면 독스트링은 여러 줄 문자열이 됩니다.

multiline = '''     I'm a multi-line string that can be assigned to a variable. The format
follows exactly
   the
         way
             YOU
                 input it. 
                
                
                 '''
print(multiline)

여러 줄 문자열은 삼중 따옴표 안의 형식을 따릅니다. 변수 할당이 없으면 문자열은 주석으로 처리되어 건너뜁니다.

원시 문자열

Python은 원시 문자열이라는 개념을 사용합니다. 이 개념은 문자열 안의 모든 것을 사용자가 작성한 방식으로 처리합니다. 특히 백슬래시는 이스케이프 시퀀스로 사용되지 않습니다. 비교는 다음과 같습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

notRaw = "I'm a not a raw string, and escape chars DO matter \n\r\t\b\a"
rawString = r"I'm a raw string, where escape chars don't matter \n\r\t\b\a"
print(notRaw) # I'm not a raw string, and escape chars DO matter.
 
print(rawString) # I'm a raw string, where escape chars don't matter \n\r\t\b\a

원시 문자열은 문자 r이 접두어인 일반 문자열로 표시됩니다.

r”이것은 원시 문자열입니다.”

일종의 특수 이스케이프 시퀀스를 나타내지 않기 위해 백슬래시가 필요한 경우 원시 문자열을 사용하십시오.

문자열의 유니코드 문자

유니코드는 모든 언어에서 사용하는 모든 단일 문자를 고유한 코드로 할당하는 것을 목표로 하는 문자 사양입니다. 대부분의 문서에서 유니코드 값은 다음과 같이 표시됩니다.

U+<유니코드 16진수 값> ⇒ U+2661 ⇒ ♡

U+2661은 우리가 사용할 수 있는 유니코드 문자 유형의 한 예입니다. 세계의 모든 언어를 나타내는 수만 개의 문자 중에서 선택할 수 있습니다.

Python 3에서 유니코드 작성

Python 3에서 유니코드 문자를 작성하려면 \u로 시작하고 문자에 할당된 코드("+" 뒤에 오는 숫자)로 끝나는 일반 문자열에서 이스케이프 시퀀스를 사용하십시오.

unicodeString = '\u2661'
print(unicodeString) # ♡ 

한 행에 원하는 만큼 유니코드 문자를 연결할 수 있습니다.

일반 문자열에서 유니코드를 사용하는 이 프로세스는 Python 2에서 업데이트되었습니다. 이전 버전에서는 u’\u<unicode number here>’로 시작하는 고유한 유니코드 문자열이 있어야 했습니다. Python 2는 ASCII 값과 유니코드 값을 사용했기 때문입니다.

문자열 값에 액세스하는 방법

우리는 대괄호를 사용하여 Python에서 문자열의 값에 액세스합니다. 문자열은 다른 프로그래밍 언어와 마찬가지로 0부터 시작합니다. 이는 문자열의 첫 번째 문자가 0번째 인덱스에서 시작한다는 것을 의미합니다.

hello = "hello world"
 
print(hello[4]) # o

hello에서 네 번째 인덱스를 인쇄하면 콘솔에 "o"가 인쇄됩니다. 문자열의 일부가 아닌 인덱스에 액세스하려고 하면 IndexError: string index out of range가 표시됩니다. . 이 오류는 가지고 있는 인덱스 수보다 크거나 작은 인덱스에 액세스하려고 시도하고 있음을 의미합니다.

참고: C 또는 Java와 같은 프로그래밍 언어를 사용하는 경우 고유한 데이터 유형이 있는 문자에 익숙합니다. 이것은 Python의 경우가 아닙니다. 개별 문자는 단순히 길이가 1인 부분 문자열로 처리됩니다.

문자열의 여러 문자 액세스

문자열 슬라이싱을 사용하여 한 번에 문자열의 여러 문자에 액세스합니다. 구문은 다음과 같습니다.

string_name[first_index? : another_index?]

마지막 인덱스는 포함되지 않습니다. Hello[1:3] 이전 예에서는 el을 반환합니다. ell이 아니라 .

Python에서 슬라이싱에 대한 흥미로운 점은 슬라이싱에 인덱스 값이 필요하지 않다는 것입니다.

다음은 Python에서 문자열을 슬라이스하는 일반적인 방법입니다.

  • string_name[:]

    대괄호 안에 콜론을 사용하면 전체 문자열을 슬라이스하여 복사본을 만듭니다.
hello = "hello world"
copy = hello[:] + " ⇐ whole string"
print(copy) # hello world ⇐ whole string
  • string_name[first_index:]

    대괄호 안에 비워두면 마지막 인덱스 값을 몰라도 문자열 내부의 인덱스에서 끝까지 슬라이스할 수 있습니다.
hello = "hello world"
copy = hello[2:] + " ⇐ An index to end of string"
print(copy) # llo world ⇐ An index to end of string
  • string_name[:second_index]

    처음부터 다른 인덱스로 슬라이싱하는 것은 괄호 안의 첫 번째 인덱스가 들어갈 자리를 비워두는 방식으로 이루어집니다.
hello = "hello world"
copy = hello[:7] + " ⇐ beginning to index inside of string"
print(copy) # hello w ⇐ beginning to index inside of string
  • string_name[first_index:second_index]

    슬라이스하려는 두 개의 특정 인덱스가 있는 경우 슬라이스 방법은 포함되지 않음을 기억하십시오. 따라서 인덱스 1에서 인덱스 6까지의 문자열을 원하면 실제로는 hello[1:7] 형식으로 지정하고 싶을 것입니다. .
hello = "hello world"
copy = hello[1:7] + " ⇐ first index to another index"
print(copy) # ello w ⇐ beginning to another index inside of string

음수도 사용할 수 있습니다.

hello = "hello world"
copy = hello[-7:-2] + " ⇐ negative indexes"
print(copy) # o wor ⇐ negative indexes

문자열 슬라이싱을 사용하는 것은 문자열을 조작하지만 원래 문자열을 변경하지 않으려는 경우에 좋습니다. 선택한 인덱스의 메모리에 자체 복사본을 만들어 원래 문자열을 변경하지 않고 업데이트할 수 있습니다.

Python에서 문자열을 반복하는 방법

Python에서 배열을 처리하는 것과 거의 같은 방식으로 문자열을 처리합니다. for…in 구문을 사용하여 배열에 대해 수행하는 것처럼 문자열을 반복할 수 있습니다.

#for...in syntax
for <index> in <string>:
   #do logic here
 
 
#example
word = "career karma"
 
for letter in word:
   print(letter)    #prints each individual letter on each iteration

<인덱스>에 '문자'를 할당하고 <문자열>에 '단어'를 할당하여 "경력 업보"를 반복합니다. 모든 반복에서 콘솔에 해당 반복의 문자를 인쇄합니다.

문자열 길이를 찾는 방법

문자열의 길이를 찾으려면 len()을 사용하십시오. 방법.

lenExample = "The quick brown fox jumps over the lazy dog."
print(len(lenExample))

코드의 다른 곳에서 len 키워드를 사용하지 마십시오. 인터프리터는 함수를 명명된 변수와 혼동할 것입니다.

'in' 및 'not in' 사용 방법

파이썬 문자열에서 in 및 not in 키워드를 사용하여 문자열에 무언가가 포함되어 있는지 확인할 수 있습니다.

checkString = "Career Karma will help you make a career switch to the tech industry"

checkString은 다음 두 예제에 사용할 문자열입니다.

사용

in 키워드는 검색어가 변수에 할당된 문자열에 있는지 알고자 하는 Python 인터프리터에게 알려줌으로써 문자열에 무언가가 있는지 여부를 테스트하는 데 사용할 수 있습니다.

print("tech" in checkString) # True

Python은 쉽게 읽을 수 있기 때문에 배우기에 바람직한 언어입니다. 여기에 있는 구문은 본질적으로 다른 사람에게 질문하는 경우 해당 질문을 하는 방법입니다.

Q:"checkString에 "tech"가 있습니까?" (checkString의 "기술")

(문자열 스캔)

A:"네, 그렇습니다." (사실)

not in 사용

not in 핵심 구는 문자열에 없는지 여부를 테스트합니다. 이것은 마음을 감싸는 데 혼란스러울 수 있으므로 주의하십시오. 여기서 무언가가 문자열에 없는지 물으면 문자열에 없으면 "True"를 반환하고 문자열에 있으면 "False"를 반환합니다.

print("tech" not in checkString) # False

다음은 다른 사람과 이야기할 때 이 구문을 읽는 방법입니다.

Q:""tech"가 checkString에 없습니까?" (checkString에 없는 "기술")

(문자열 스캔)

답:“아니요. "tech"라는 단어는 checkString에 있습니다"(False)

문자열의 구성을 변경할 수 있습니까?

Python의 문자열은 변경할 수 없습니다. 문자열을 구성하는 문자는 초기 할당이 이루어진 후 어떤 식으로든 변경하거나 변경할 수 없습니다.

delString = "Can we delete this or change this?"
delString[2] = "b"
print(delString)

Python 인터프리터에서 이 코드를 실행해 보십시오. 결과는 다음과 같은 오류입니다.

Traceback (most recent call last):
 File "main.py", line no., in <module>
   delString[2] = "b"
TypeError: 'str' object does not support item assignment

여기서 TypeError는 파이썬의 문자열이 문자 재할당을 허용하지 않는다는 것을 알려줍니다. 개별 문자를 재할당하려면 생성하려는 새 문자열에 전체 문자열을 재할당해야 합니다.

delString = delString[:2] + "b" + delString[3:]
 
print(delString)

여기에 있는 코드는 delString[2] = “b”로 의도한 작업을 수행하는 올바른 방법입니다. 코드 줄. 문자열 개체를 변경하려면 전체 재할당이 필요합니다.

이것은 또한 문자열에서 단일 문자를 삭제할 수 없음을 의미합니다. 그러나 del을 사용하여 전체 문자열을 삭제할 수 있습니다. 키워드.

del delString
 
print(delString) #this will return an error or the linter will catch as being undefined

인기 있는 문자열 방법

Python 문자열과 관련된 여러 메서드가 있습니다. 최신 목록은 Python 문서를 확인하십시오.

다음은 가장 인기 있는 방법 중 일부입니다. testString 대부분의 방법을 시연하는 데 사용할 샘플 문자열입니다.

testString = "this is a test string."

대화()

대문자 사용 방법은 문자열의 첫 글자를 대문자로 표시합니다.

capitalized = testString.capitalize()
print(capitalized) # This is a test string

찾기()

이 내장 메서드는 전달된 인수가 시작되는 인덱스를 반환합니다. 찾을 수 없으면 -1을 반환합니다.

found = testString.find("test")
notfound = testString.find("not")
 
print(found) # 10
print(notfound) # -1

가입()

join 메서드는 메서드에 전달된 반복 가능한 개체(문자열, 집합, 튜플 또는 목록이 될 수 있음)를 가져와서 반복하고 메서드가 호출되는 문자열 구분 기호를 추가합니다. 다음은 예입니다:

separator = ", " # this is our separator - this string is the one that the method gets called on
numbers = "123" # this is our iterable. In this instance, it is a string
 
joinedByComma = separator.join(numbers)
print(joinedByComma) # 1, 2, 3
입니다.

목록, 집합 또는 튜플과 같은 다른 이터러블을 사용하여 무엇을 할 수 있는지 보려면 조인 방법을 사용해 보십시오!

lower() 및 upper()

하위 및 상위 내장 함수는 문자열의 대소문자를 처리합니다. Lower는 문자열의 복사본을 모두 소문자로 만듭니다. upper는 모두 대문자로 된 문자열의 복사본을 생성합니다:

uppercase = testString.upper()
print(uppercase) # THIS IS A TEST STRING
 
lowercase = testString.lower() 
print(lowercase) # this is a test string

이러한 메서드는 문자열을 조작할 때 사용할 수 있는 몇 가지 메서드에 불과합니다. 이것을 배운 후에는 split()와 같은 다른 Python 문자열 메서드를 확인하십시오. , replace() , title()swapcase() .

결론

이 기사에서는 Python 문자열이 무엇인지, 어떻게 사용되는지, 사용할 수 있는 몇 가지 기본 제공 메서드를 살펴보았습니다. 이 가이드를 마스터한 후에는 Python의 문자열 형식 지정에 대한 기사를 살펴보고 학습을 더욱 발전시키세요!