산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 문자열

파이썬 문자열

이 자습서에서는 Python에서 문자열을 생성, 형식 지정, 수정 및 삭제하는 방법을 배웁니다. 또한 다양한 문자열 연산과 기능을 소개합니다.

동영상:Python 문자열

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

문자열은 일련의 문자입니다.

문자는 단순히 상징입니다. 예를 들어 영어는 26자입니다.

컴퓨터는 문자를 다루지 않고 숫자(2진수)를 처리합니다. 화면에 문자가 보이더라도 내부적으로는 0과 1의 조합으로 저장되고 조작됩니다.

이 문자를 숫자로 변환하는 것을 인코딩이라고 하고 그 반대의 과정을 디코딩이라고 합니다. ASCII 및 유니코드는 널리 사용되는 인코딩 중 일부입니다.

Python에서 문자열은 유니코드 문자의 시퀀스입니다. 유니코드는 모든 언어의 모든 문자를 포함하고 인코딩의 균일성을 가져오기 위해 도입되었습니다. 파이썬 유니코드에서 유니코드에 대해 배울 수 있습니다.

<시간>

Python에서 문자열을 만드는 방법은 무엇입니까?

작은따옴표나 큰따옴표 안에 문자를 묶어 문자열을 만들 수 있습니다. 파이썬에서는 삼중 따옴표도 사용할 수 있지만 일반적으로 여러 줄 문자열과 독스트링을 나타내는 데 사용됩니다.

# defining strings in Python
# all of the following are equivalent
my_string = 'Hello'
print(my_string)

my_string = "Hello"
print(my_string)

my_string = '''Hello'''
print(my_string)

# triple quotes string can extend multiple lines
my_string = """Hello, welcome to
           the world of Python"""
print(my_string)

프로그램을 실행하면 다음과 같이 출력됩니다.

Hello
Hello
Hello
Hello, welcome to
           the world of Python
<시간>

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

인덱싱을 사용하여 개별 문자에 액세스하고 슬라이싱을 사용하여 문자 범위에 액세스할 수 있습니다. 색인은 0부터 시작합니다. 색인 범위를 벗어난 문자에 액세스하려고 하면 IndexError이 발생합니다. . 인덱스는 정수여야 합니다. float 또는 다른 유형을 사용할 수 없습니다. 결과는 TypeError이 됩니다. .

Python은 시퀀스에 대해 음수 인덱싱을 허용합니다.

-1의 색인 마지막 항목인 -2을 나타냅니다. 두 번째 마지막 항목 등. 슬라이싱 연산자 :를 사용하여 문자열의 항목 범위에 액세스할 수 있습니다. (콜론).

#Accessing string characters in Python
str = 'programiz'
print('str = ', str)

#first character
print('str[0] = ', str[0])

#last character
print('str[-1] = ', str[-1])

#slicing 2nd to 5th character
print('str[1:5] = ', str[1:5])

#slicing 6th to 2nd last character
print('str[5:-2] = ', str[5:-2])

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

str =  programiz
str[0] =  p
str[-1] =  z
str[1:5] =  rogr
str[5:-2] =  am

범위를 벗어난 인덱스에 액세스하거나 정수 이외의 숫자를 사용하려고 하면 오류가 발생합니다.

# index must be in range
>>> my_string[15]  
...
IndexError: string index out of range

# index must be an integer
>>> my_string[1.5] 
...
TypeError: string indices must be integers

슬라이싱은 아래와 같이 요소 사이에 인덱스를 고려하여 가장 잘 시각화할 수 있습니다.

범위에 액세스하려면 문자열에서 해당 부분을 슬라이스할 인덱스가 필요합니다.

<그림> <시간>

문자열을 변경하거나 삭제하는 방법

문자열은 변경할 수 없습니다. 이것은 문자열의 요소가 일단 할당되면 변경할 수 없음을 의미합니다. 같은 이름에 다른 문자열을 다시 할당하면 됩니다.

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

문자열에서 문자를 삭제하거나 제거할 수 없습니다. 그러나 del을 사용하여 문자열을 완전히 삭제할 수 있습니다. 키워드.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined
<시간>

파이썬 문자열 작업

문자열을 사용하여 수행할 수 있는 작업이 많이 있으므로 Python에서 가장 많이 사용되는 데이터 유형 중 하나가 됩니다.

Python에서 사용할 수 있는 데이터 유형에 대해 자세히 알아보려면 Python 데이터 유형

을 방문하세요.

두 개 이상의 문자열 연결

둘 이상의 문자열을 하나로 결합하는 것을 연결이라고 합니다.

+ 연산자는 Python에서 이 작업을 수행합니다. 단순히 두 개의 문자열 리터럴을 함께 작성해도 연결됩니다.

* 연산자는 주어진 횟수만큼 문자열을 반복하는 데 사용할 수 있습니다.

# Python String Operations
str1 = 'Hello'
str2 ='World!'

# using +
print('str1 + str2 = ', str1 + str2)

# using *
print('str1 * 3 =', str1 * 3)

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

str1 + str2 =  HelloWorld!
str1 * 3 = HelloHelloHello

두 개의 문자열 리터럴을 함께 작성하면 +와 같이 연결됩니다. 연산자.

다른 줄의 문자열을 연결하려면 괄호를 사용할 수 있습니다.

>>> # two string literals together
>>> 'Hello ''World!'
'Hello World!'

>>> # using parentheses
>>> s = ('Hello '
...      'World')
>>> s
'Hello World'
<시간>

문자열 반복

for 루프를 사용하여 문자열을 반복할 수 있습니다. 다음은 문자열에서 'l'의 개수를 계산하는 예입니다.

# Iterating through a string
count = 0
for letter in 'Hello World':
    if(letter == 'l'):
        count += 1
print(count,'letters found')

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

3 letters found
<시간>

문자열 멤버십 테스트

in 키워드를 사용하여 문자열 내에 하위 문자열이 있는지 여부를 테스트할 수 있습니다. .

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False
<시간>

Python과 함께 작동하는 내장 함수

시퀀스와 함께 작동하는 다양한 내장 함수는 문자열에서도 작동합니다.

일반적으로 사용되는 것 중 일부는 enumerate()입니다. 및 len() . enumerate() 함수는 열거 객체를 반환합니다. 여기에는 문자열에 있는 모든 항목의 인덱스와 값이 쌍으로 포함됩니다. 이것은 반복에 유용할 수 있습니다.

마찬가지로 len() 문자열의 길이(문자 수)를 반환합니다.

str = 'cold'

# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str) = ', list_enumerate)

#character count
print('len(str) = ', len(str))

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

list(enumerate(str) =  [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')]
len(str) =  4
<시간>

파이썬 문자열 서식

이스케이프 시퀀스

"무엇이 있습니까?" 와 같은 텍스트를 인쇄하려면 , 우리는 작은 따옴표나 큰 따옴표를 사용할 수 없습니다. 그러면 SyntaxError이 됩니다. 텍스트 자체에 작은따옴표와 큰따옴표가 모두 포함되어 있기 때문입니다.

>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

이 문제를 해결하는 한 가지 방법은 삼중 따옴표를 사용하는 것입니다. 또는 이스케이프 시퀀스를 사용할 수 있습니다.

이스케이프 시퀀스는 백슬래시로 시작하고 다르게 해석됩니다. 작은 따옴표를 사용하여 문자열을 나타내는 경우 문자열 내의 모든 작은 따옴표를 이스케이프해야 합니다. 큰따옴표의 경우도 비슷합니다. 위의 텍스트를 표현하는 방법은 다음과 같습니다.

# using triple quotes
print('''He said, "What's there?"''')

# escaping single quotes
print('He said, "What\'s there?"')

# escaping double quotes
print("He said, \"What's there?\"")

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

He said, "What's there?"
He said, "What's there?"
He said, "What's there?"

다음은 Python에서 지원하는 모든 이스케이프 시퀀스의 목록입니다.

이스케이프 시퀀스 설명
\newline 백슬래시 및 개행 무시
\\ 백슬래시
\' 작은따옴표
\" 큰따옴표
\a ASCII 벨
\b ASCII 백스페이스
\f ASCII 폼피드
\n ASCII 줄바꿈
\r ASCII 캐리지 리턴
\t ASCII 수평 탭
\v ASCII 세로 탭
\ooo 8진수 값이 ooo인 문자
\xHH 16진수 값이 HH인 문자

다음은 몇 가지 예입니다.

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib

>>> print("This is printed\nin two lines")
This is printed
in two lines

>>> print("This is \x48\x45\x58 representation")
This is HEX representation
<시간>

이스케이프 시퀀스를 무시하는 원시 문자열

때로는 문자열 내부의 이스케이프 시퀀스를 무시하고 싶을 수도 있습니다. 이를 위해 r를 배치할 수 있습니다. 또는 R 문자열 앞에서. 이것은 그것이 원시 문자열이고 그 안에 있는 모든 이스케이프 시퀀스가 ​​무시된다는 것을 의미합니다.

>>> print("This is \x61 \ngood example")
This is a
good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example
<시간>

문자열 서식 지정을 위한 format() 메서드

format() string 개체와 함께 사용할 수 있는 메서드는 문자열 서식 지정에서 매우 다양하고 강력합니다. 형식 문자열에 중괄호 {} 포함 대체되는 자리 표시자 또는 대체 필드로 사용됩니다.

위치 인수 또는 키워드 인수를 사용하여 순서를 지정할 수 있습니다.

# Python string format() method

# default(implicit) order
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)

# order using positional argument
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)

# order using keyword argument
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.

--- Default Order ---
John, Bill and Sean

--- Positional Order ---
Bill, John and Sean

--- Keyword Order ---
Sean, Bill and John

format() 메서드는 선택적 형식 사양을 가질 수 있습니다. 콜론을 사용하여 필드 이름과 구분됩니다. 예를 들어 <를 왼쪽 정렬할 수 있습니다. , > 오른쪽 정렬 또는 센터 ^ 주어진 공간의 문자열입니다.

정수 형식을 2진수, 16진수 등으로 지정할 수도 있으며 부동 소수점을 반올림하거나 지수 형식으로 표시할 수도 있습니다. 사용할 수 있는 서식이 많이 있습니다. format()에서 사용할 수 있는 모든 문자열 형식을 보려면 여기를 방문하세요. 방법.

>>> # formatting integers
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'

>>> # formatting floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'

>>> # round off
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'

>>> # string alignment
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter    |  bread   |       ham|'
<시간>

이전 스타일 서식

이전 sprintf()과 같은 문자열 형식도 지정할 수 있습니다. C 프로그래밍 언어에서 사용되는 스타일. %을 사용합니다. 이 작업을 수행하는 연산자입니다.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
The value of x is 12.35
>>> print('The value of x is %3.4f' %x)
The value of x is 12.3457
<시간>

일반적인 Python 문자열 메서드

string 개체와 함께 사용할 수 있는 여러 메서드가 있습니다. format() 위에서 언급한 방법도 그 중 하나입니다. 일반적으로 사용되는 방법 중 일부는 lower()입니다. , upper() , join() , split() , find() , replace() 등. 다음은 Python에서 문자열로 작업하는 모든 내장 메서드의 전체 목록입니다.

>>> "PrOgRaMiZ".lower()
'programiz'
>>> "PrOgRaMiZ".upper()
'PROGRAMIZ'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'

python

  1. C# 문자열
  2. 파이썬 사전
  3. 자바 문자열
  4. 자바 열거형 문자열
  5. Python 문자열:바꾸기, 결합, 분할, 반전, 대문자 및 소문자
  6. EXAMPLE이 있는 Python String strip() 함수
  7. 예제가 있는 Python 문자열 count()
  8. Python String format() 예제로 설명
  9. 파이썬 문자열 길이 | len() 메서드 예제
  10. 예제가 있는 Python 문자열 find() 메서드