Python 기본 입문 튜토...login
Python 기본 입문 튜토리얼
작가:php.cn  업데이트 시간:2022-04-18 16:14:50

파이썬 문자열


문자열은 Python에서 가장 일반적으로 사용되는 데이터 유형입니다. 따옴표(' 또는 ")를 사용하여 문자열을 만들 수 있습니다.

문자열을 만드는 것은 변수에 값을 할당하는 것만큼 간단합니다. 예:

var1 = 'Hello World !'
var2 = "Python php"

Python은 문자열의 값에 액세스합니다

Python은 단일 문자 유형을 지원하지 않으며 단일 문자는 다음에서도 사용할 수 있습니다. Python은 문자열로 사용됩니다.

Python은 다음 예와 같이 대괄호를 사용하여 문자열을 가로챌 수 있습니다.

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python php"

print "var1[0]: ", var1[0]
print "var2[1: 5]: ", var2[1:5]

위 예제의 실행 결과:

var1[0]: H
var2[1: 5]: ytho

Python 문자열 업데이트

다음 예와 같이 기존 문자열을 수정하여 다른 변수에 할당할 수 있습니다.

#!/usr/bin/python
# -*- 코딩: UTF-8 -*-

var1 = 'Hello World!'

print "업데이트 문자열: - " , var1[:6] + 'php!'

위 예제의 실행 결과

업데이트 문자열:- Hello php!

Python 이스케이프 문자

문자에 특수 문자를 사용해야 하는 경우 Python은 다음 표와 같이 백슬래시()를 사용하여 문자를 이스케이프합니다.

转义字符描述
(在行尾时)续行符
\反斜杠符号
'单引号
"双引号
a响铃
b退格(Backspace)
e转义
00
n换行
v纵向制表符
t横向制表符
r回车
f换页
oyy八进制数,yy代表的字符,例如:o12代表换行
xyy十六进制数,yy代表的字符,例如:x0a代表换行
other其它的字符以普通格式输出
.

Python 문자열 연산자

다음 표에서 인스턴스 변수 a의 값은 문자열 "Hello"이고, 변수 b의 값은 "Python"입니다.

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 TrueH in a 输出结果 1
not in成员运算符 - 如果字符串中不包含给定的字符返回 TrueM not in a 输出结果 1
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。print r'n' 输出 n 和 print R'n' 输出 n
%格式字符串请看下一章节

예제는 다음과 같습니다.

#!/usr/bin/python
# -*- 코딩: UTF-8 -*-

a = " Hello"
b = "Python"

print "a + b 출력 결과:", a + b
print "a * 2 출력 결과:", a * 2
print " a[1 ] 출력 결과: ", a[1]
print "a[1:4] 출력 결과: ", a[1:4]

if( "H" in a) :
print "H는 변수 a에 있습니다"
else :
print "H는 변수 a에 없습니다"

if( "M" not in a) :
print "M 변수 a에 없습니다.
else :
print "M이 변수 a에 있습니다."

print r'n'
print R'n'

위 프로그램의 실행 결과는 :

a + b 출력 결과: HelloPython
a * 2 출력 결과: HelloHello
a[1] 출력 결과: e
a [1:4] 출력 결과: ell
H는 변수 a에 있습니다.
M은 변수 a에 없습니다
n
n

Python 문자열 형식

Python은 형식화된 문자열 출력을 지원합니다. 여기에는 매우 복잡한 표현식이 포함될 수 있지만 가장 기본적인 사용법은 문자열 형식화 문자 %s를 사용하여 문자열에 값을 삽입하는 것입니다.

Python에서 문자열 형식 지정은 C의 sprintf 함수와 동일한 구문을 사용합니다.

다음 예:

#!/usr/bin/python

print "내 이름은 %s이고 몸무게는 %dkg입니다!" ' Zara', 21)

위 예시 출력 결과:

제 이름은 Zara이고 몸무게는 21kg입니다!

python 문자열 형식 지정 기호:


기호 설명
%c 형식 문자 및 해당 ASCII 코드
%s 형식 문자열
%d 형식화된 정수
%u 부호 없는 정수 형식
%o 부호 없는 8진수 형식
%x 서식이 지정된 부호 없는 16진수
%X 부호 없는 16진수 형식(대문자)
%f 부동 소수점 숫자 형식, 소수점 이하의 정밀도를 지정할 수 있습니다
%e 부동 소수점 형식 과학 표기법의 숫자
%E %e와 동일, 과학 표기법의 부동 소수점 숫자 형식
%g %f 및 %e의 약어
%G %f 및 %E의 약어
%p 10개 사용 16진수 형식 변수의 주소

형식 연산자 보조 명령:

기호함수
符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
<🎜><🎜>*<🎜><🎜>너비 또는 소수점 정밀도 정의<🎜><🎜>< 🎜><🎜> -<🎜><🎜>는 왼쪽 정렬에 사용됩니다<🎜><🎜><🎜><🎜>+<🎜><🎜>양수 앞에 더하기 기호(+) 표시<🎜><🎜 ><🎜 ><🎜><sp><🎜><🎜>양수 앞에 공백 표시<🎜><🎜><🎜><🎜>#<🎜><🎜>8진수('0') 앞에 0을 표시하고, 16진수 앞에 '0x' 또는 '0X'('x' 또는 'X' 사용 여부에 따라 다름)<🎜><🎜><🎜><🎜>0<🎜><🎜 >표시된 숫자 앞에는 기본 공백 대신 '0' <🎜><🎜><🎜><🎜>%<🎜><🎜> '%%'는 단일 '%'를 출력합니다 <🎜><🎜> <🎜><🎜>( var)<🎜><🎜>맵 변수(사전 매개변수)<🎜><🎜><🎜><🎜>m.n.<🎜><🎜>m은 디스플레이의 최소 전체 너비, n은 디스플레이 뒤의 자릿수입니다. 소수점(사용 가능한 경우)<🎜><🎜><🎜><🎜>

Python 삼중 따옴표

Python의 삼중 따옴표는 복잡한 문자열을 복사할 수 있습니다.

Python 삼중 따옴표를 사용하면 문자열이 여러 줄, 문자에 걸쳐 있을 수 있습니다. 문자열에는 줄 바꿈, 탭 및 문자가 포함될 수 있습니다. 다른 특수 문자.

삼중따옴표의 구문은 연속된 작은따옴표 또는 큰따옴표의 쌍입니다(보통 쌍으로 사용됨).

>>> hi = '''안녕
거기''
>>> 안녕 # repr()
'거기'
>>> print hi # str()
hi
거기

삼중 따옴표는 프로그래머를 따옴표와 특수 문자열의 수렁에서 해방시키고 일관성을 유지합니다. 작은 문자열의 형식은 소위 WYSIWYG(What You See Is What You Get) 형식입니다.

일반적인 사용 사례는 HTML 또는 SQL이 필요한 경우 문자열 조합을 사용하는 경우 특수 문자열 이스케이프가 매우 번거롭습니다.

errHTML = '''
<HTML><HEAD><TITLE>
친구 CGI 데모</TITLE></HEAD>
<BODY> ;<H3>오류</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=버튼 VALUE=뒤로
ONCLICK="창 .history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE 사용자(
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')

유니코드 문자열

파이썬에서 유니코드 문자열을 정의하는 것은 일반 문자열을 정의하는 것만큼 간단합니다:

>>> u'Hello World !'
u'Hello World ! 🎜>
따옴표 앞의 소문자 "u"는 여기서 유니코드 문자열이 생성되었음을 나타냅니다. 특수 문자를 포함하려면 Python의 Unicode-Escape 인코딩을 사용할 수 있습니다. 다음 예와 같이:

>>> u'Hellou0020World !'
u'Hello World !'

대체된 u0020 식별자는 주어진 위치에 인코딩 값이 0x0020인 유니코드 문자(공백 문자)를 삽입하는 것을 의미합니다.


Python의 내장 문자열 함수

문자열 메서드는 python1.6에서 2.0으로 천천히 추가되었으며 Jython에도 추가되었습니다.

이러한 메서드는 문자열 모듈의 메서드 대부분을 구현합니다. 다음 표에는 현재 내장 문자열에서 지원되는 메서드가 나열되어 있으며, 일부 메서드는 유니코드용으로 특별히 설계되었습니다.

문자열 문자열의 탭 기호를 공백으로 변환합니다. 탭 기호의 기본 공백 수는 8입니다. 문자열에 최소한 하나의 문자가 있고 모든 문자가 문자 또는 숫자인 경우 문자열에 문자가 하나 이상 있고 모든 문자가 문자이면 True를 반환하고, 문자열에 십진수만 포함되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.string.partition(str)
방법설명

string.capitalize()

문자열의 첫 번째 문자를 대문자로 표시

string.center(width)

원래 문자열을 중앙에 두고 길이 너비만큼 공백을 넣은 새 문자열을 반환합니다.

string.count (str, beg=0, end=len(string))

str이 문자열에 나타나는 횟수를 반환합니다. beg 또는 end가 지정된 경우 지정된 숫자는 다음과 같습니다.

string.decode(encoding='UTF-8',errors='strict')

범위에서 str의 발생 횟수를 반환합니다.

인코딩에 지정된 인코딩 형식으로 문자열을 디코딩합니다. 오류가 발생하면 오류에 '무시' 또는 '교체'가 지정되지 않는 한 기본적으로 ValueError 예외가 보고됩니다.

string.encode(encoding='UTF-8', error='strict')

다음에서 지정한 인코딩 형식으로 문자열을 인코딩합니다. 인코딩 오류가 발생하면 오류가 '무시' 또는 '교체'를 지정하지 않는 한 기본적으로 ValueError 예외가 보고됩니다. (obj, beg=0, end=len(string))

문자열이 obj로 끝나는지 확인하세요. beg 또는 end가 지정된 경우 지정된 범위가 끝나는지 확인하세요. obj이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string.expandtabs(tabsize=8)

string.find(str, beg=0, end=len(string))

문자열에 str이 포함되어 있는지 확인하세요. beg와 end가 범위를 지정하면, 지정된 범위에 포함되는지 확인하세요. 그렇다면 시작 인덱스 값을 반환하세요. 그렇지 않으면 -1을 반환하세요.

string.index(str, beg=0, end=len(string))

과 동일 find() 메서드만 해당. 그러나 str이 문자열에 없으면

string.isalnum()

이 보고됩니다.
는 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string.isalpha()

그렇지 않으면 False를 반환합니다

string.isdecimal()

string.isdigit()

문자열에 숫자만 포함되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string.islower()

문자열에 대소문자 구분 문자가 하나 이상 포함되어 있고 이러한(대소문자 구분) 문자가 모두 소문자이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string.isnumeric()

문자열에 숫자만 포함되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string .isspace()

문자열에 공백만 포함되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

string.istitle()

문자열에 제목이 있으면 True를 반환하고(title() 참조), 그렇지 않으면 False를 반환합니다

string.isupper()

string에 대소문자 구분 문자가 하나 이상 포함되어 있고 이러한 모든 (대소문자 구분) 문자가 모두 대문자인 경우 True가 반환되고, 그렇지 않으면 True가 반환됩니다. False가 반환됩니다.

문자열을 구분 기호로 사용하여 seq의 모든 요소(문자열 표현)를 새 문자열로 결합합니다.

string.ljust( width)

원래 문자열을 왼쪽 정렬하고 길이 너비만큼 공백으로 채운 새 문자열을 반환합니다

string.lower ()

문자열의 모든 대문자를 소문자로 변환합니다.

string.lstrip()

문자열 왼쪽 공백 자르기

string.maketrans(intab, outtab])

maketrans() 메서드는 문자 매핑을 위한 변환 테이블을 생성하는 데 사용됩니다. 두 개의 매개 변수를 허용하는 가장 간단한 호출 메서드의 경우 첫 번째 매개 변수는 변환해야 하는 문자를 나타내는 문자열이고 두 번째 매개 변수는 문자열 표현 변환의 대상이기도 합니다.

max(str)

문자열

str

에서 가장 큰 문자를 반환합니다.

min(str)

문자열 str

에서 가장 작은 문자를 반환합니다.

find() 및 분할과 약간 유사 ( ), str이 나타나는 첫 번째 위치부터 시작하여 문자열 string을 3개 요소 튜플(string_pre_str, str, string_post_str)로 나눕니다. string에 str이 포함되어 있지 않으면 string_pre_str == string.

string.replace(str1, str2, num=string.count(str1))

문자열의 str1을 다음으로 바꿉니다. str2. num을 지정하면 교체 횟수가 num회를 초과하지 않습니다.

string.rfind(str, beg=0,end=len (string) )

은 find() 함수와 유사하지만 오른쪽부터 검색합니다.

string.rindex( str, beg=0,end=len(string))

은 index()와 유사하지만 오른쪽부터 시작합니다.

string.rjust(width)

원래 문자열을 오른쪽 정렬하고 길이 너비만큼 공백을 넣은 새 문자열을 반환합니다.

string.rpartition(str)

partition() 함수와 유사하지만 오른쪽부터 시작합니다.

string.rstrip()

문자열 문자열 끝의 공백을 제거하세요.

string.split(str="", num= string .count(str))

str을 구분 기호로 사용하여 문자열을 분할합니다. num에 지정된 값이 있으면 num개의 하위 문자열만 구분됩니다.

string.splitlines(num=string.count('n'))

행별로 구분하여 각 행을 포함하는 목록을 반환합니다. 요소로 num을 지정하면 num개의 행만 슬라이스됩니다.

string.startswith(obj, beg=0,end=len(string) )

문자열이 obj로 시작하는지 확인하고, 그렇다면 True를 반환하고, 그렇지 않으면 False를 반환합니다. beg, end 값을 지정하는 경우 지정된 범위 내에서 확인하세요.

string.strip([obj])

string에서 lstrip() 및 rstrip() 실행

string.swapcase()

문자열의 대소문자 역순

string.title()

"제목 지정" 문자열로 돌아갑니다. , 모든 단어는 대문자로 시작하고 나머지 문자는 소문자입니다(istitle() 참조)

string.translate(str , del="" )

str이 제공하는 테이블에 따라 문자열의 문자를 변환합니다(256자 포함).

필터링할 문자를 del에 넣습니다. 매개변수

string.upper()

문자열의 소문자를 대문자로 변환

string.zfill(width)

길이 너비의 문자열을 반환합니다. 원래 문자열 문자열은 오른쪽 정렬되고 앞에 채워집니다. 0

string.isdecimal()

isdecimal() 메서드는 문자열에 소수 문자만 포함되어 있는지 확인합니다. 이 방법은 유니코드 객체에만 존재합니다.