Python3-python-strings

提供:Dev Guides
移動先:案内検索

Python 3-文字列

文字列は、Pythonで最も人気のある型の1つです。 文字を引用符で囲むだけで簡単に作成できます。 Pythonは、単一引用符を二重引用符と同様に扱います。 文字列の作成は、変数に値を割り当てるのと同じくらい簡単です。 たとえば-

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

文字列の値へのアクセス

Pythonは文字タイプをサポートしていません。これらは長さ1の文字列として扱われるため、部分文字列とも見なされます。

部分文字列にアクセスするには、スライスに角括弧を使用してインデックスを作成し、部分文字列を取得します。 たとえば-

#!/usr/bin/python3

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

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

上記のコードが実行されると、次の結果が生成されます-

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

文字列の更新

変数を別の文字列に(再)割り当てることにより、既存の文字列を「更新」できます。 新しい値は、以前の値またはまったく異なる文字列に関連付けることができます。 たとえば-

#!/usr/bin/python3

var1 = 'Hello World!'
print ("Updated String :- ", var1[:6] + 'Python')

上記のコードが実行されると、次の結果が生成されます-

Updated String :-  Hello Python

エスケープ文字

次の表は、バックスラッシュ表記で表現できるエスケープ文字または非印刷文字のリストです。

エスケープ文字が解釈されます。単一引用符と二重引用符で囲まれた文字列で。

Backslash notation Hexadecimal character Description
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx Control-x
\C-x Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x Meta-Control-x
\n 0x0a Newline
\nnn Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x Character x
\xnn Hexadecimal notation, where n is in the range 0.9, a.f, or A.F

文字列特殊演算子

文字列変数 a が 'Hello’を保持し、変数 b が 'Python’を保持すると仮定します-

Operator Description Example
PLUS Concatenation - Adds values on either side of the operator a PLUS b will give HelloPython
* Repetition - Creates new strings, concatenating multiple copies of the same string a*2 will give -HelloHello
[] Slice - Gives the character from the given index a[1] will give e
[ : ] Range Slice - Gives the characters from the given range a[1:4] will give ell
in Membership - Returns true if a character exists in the given string H in a will give 1
not in Membership - Returns true if a character does not exist in the given string M not in a will give 1
r/R Raw String - Suppresses actual meaning of Escape characters. The syntax for raw strings is exactly the same as for normal strings with the exception of the raw string operator, the letter "r," which precedes the quotation marks. The "r" can be lowercase (r) or uppercase ® and must be placed immediately preceding the first quote mark. print r'\n' prints \n and print R'\n’prints \n
% Format - Performs String formatting See at next section

文字列フォーマット演算子

Pythonの最も優れた機能の1つは、文字列形式演算子%です。 この演算子は文字列に固有であり、Cのprintf()ファミリーの関数を含むパックを補います。 以下は簡単な例です-

#!/usr/bin/python3

print ("My name is %s and weight is %d kg!" % ('Zara', 21))

上記のコードが実行されると、次の結果が生成されます-

My name is Zara and weight is 21 kg!

以下は、%とともに使用できるシンボルの完全なセットのリストです-

Sr.No. Format Symbol & Conversion
1

%c

キャラクター

2

%s

フォーマット前のstr()による文字列変換

3

%i

符号付き10進整数

4

%d

符号付き10進整数

5

%u

符号なし10進整数

6

%o

8進整数

7

%x

16進整数(小文字)

8

%X

16進整数(大文字)

9

%e

指数表記(小文字の「e」付き)

10

%E

指数表記(大文字の 'E’を使用)

11

%f

浮動小数点実数

12

%g

%fと%eのうち短い方

13

%G

%fと%Eのうち短い方

他のサポートされている記号と機能は、次の表に記載されています-

Sr.No. Symbol & Functionality
1 引数は幅または精度を指定します
2

-

左揃え

3

PLUS

サインを表示する

4

<sp>

正の数の前に空白を残します

5

#

'x’または 'X’が使用されたかどうかに応じて、8進数の先頭のゼロ( '0')または16進数の先頭の '0x’または '0X’を追加します。

6

0

(スペースの代わりに)左からゼロを埋める

7

%

「%%」は、単一のリテラル「%」を残します

8

(var)

マッピング変数(辞書引数)

9

m.n.

mは最小合計幅、nは小数点の後に表示する桁数です(appl。の場合)。

トリプルクォート

Pythonのトリプルクォートは、文字列が逐語的な改行、TAB、およびその他の特殊文字を含む複数行にまたがることを可能にすることにより、助けになります。

三重引用符の構文は、3つの連続した*単一引用符または二重引用符で構成されます。

#!/usr/bin/python3

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print (para_str)

上記のコードが実行されると、次の結果が生成されます。 「up」の間の文字列の最後にある最後の改行まで、すべての特殊文字がどのように印刷形式に変換されたかに注意してください。トリプルクォートを閉じます。 また、改行は、行の末尾に明示的な改行が含まれているか、エスケープコード(\ n)が付いていることに注意してください-

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.

生の文字列は、バックスラッシュを特殊文字としてまったく扱いません。 あなたが生の文字列に入れたすべての文字は、それを書いたままです-

#!/usr/bin/python3

print ('C:\\nowhere')

上記のコードが実行されると、次の結果が生成されます-

C:\nowhere

それでは、生の文字列を利用しましょう。 次のように式を* r’expression '*に入れます-

#!/usr/bin/python3

print (r'C:\\nowhere')

上記のコードが実行されると、次の結果が生成されます-

C:\\nowhere

Unicode文字列

Python 3では、すべての文字列はUnicodeで表されます。Python2では、8ビットASCIIとして内部的に保存されるため、「u」を付加してUnicodeにする必要があります。 今はもう必要ありません。

組み込みの文字列メソッド

Pythonには、文字列を操作するための次の組み込みメソッドが含まれています-

Sr.No. Methods & Description
1

capitalize()

文字列の最初の文字を大文字にします

2

center(width, fillchar)

_fillchar_でパディングされた文字列を返します。元の文字列は_width_列の中央に配置されます。

3

count(str

開始インデックスの開始と終了インデックスの終了が指定されている場合、文字列または文字列の部分文字列でstrが発生する回数をカウントします。

4

decode(encoding = 'UTF-8'

エンコード用に登録されたコーデックを使用して文字列をデコードします。 エンコーディングのデフォルトはデフォルトの文字列エンコーディングです。

5

encode(encoding = 'UTF-8'

文字列のエンコードされた文字列バージョンを返します。エラーが発生した場合、デフォルトでは、「ignore」または「replace」でエラーが指定されない限り、ValueErrorが発生します。

6

endswith(suffix

文字列または文字列の部分文字列(開始インデックスの開始と終了インデックスの終了が指定されている場合)がサフィックスで終了するかどうかを決定します。そうであればtrueを、そうでなければfalseを返します。

7

expandtabs(tabsize = 8)

文字列のタブを複数のスペースに展開します。 tabsizeが指定されていない場合、タブごとにデフォルトで8スペースが使用されます。

8

find(str

開始インデックスbegと終了インデックスendが指定されている場合、strがstringまたはstringのサブストリングにあるかどうかを判別します。見つかった場合はindexを返し、見つからない場合は-1を返します。

9

index(str

find()と同じですが、strが見つからない場合は例外が発生します。

10

isalnum()

文字列が少なくとも1文字で、すべての文字が英数字の場合はtrueを返し、それ以外の場合はfalseを返します。

11

isalpha()

文字列に少なくとも1文字が含まれ、すべての文字がアルファベットである場合はtrueを返し、そうでない場合はfalseを返します。

12

isdigit()

文字列に数字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。

13

islower()

文字列に少なくとも1つの大文字と小文字が含まれ、すべての大文字と小文字が小文字の場合はtrueを返し、そうでない場合はfalseを返します。

14

isnumeric()

Unicode文字列に数字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。

15

isspace()

文字列に空白文字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。

16

istitle()

文字列が適切に「タイトルケース化」されている場合はtrue、そうでない場合はfalseを返します。

17

isupper()

文字列に大文字と小文字が少なくとも1つあり、すべての大文字と小文字が大文字の場合はtrue、そうでない場合はfalseを返します。

18

join(seq)

シーケンスseqの要素の文字列表現を、セパレータ文字列を使用して文字列にマージ(連結)します。

19

len(string)

文字列の長さを返します

20

ljust(width[, fillchar)]

幅の列の合計に合わせて元の文字列を左寄せした、スペースが埋め込まれた文字列を返します。

21

lower()

文字列内のすべての大文字を小文字に変換します。

22

lstrip()

文字列の先頭の空白をすべて削除します。

23

maketrans()

変換機能で使用される変換テーブルを返します。

24

max(str)

文字列strからアルファベットの最大文字を返します。

25

min(str)

文字列strからアルファベットの最小文字を返します。

26

replace(old, new [, max)]

string内のoldのすべての出現を、maxが指定されている場合、新規または最大max個の出現に置き換えます。

27

rfind(str

find()と同じですが、文字列を逆方向に検索します。

28

rindex( str

index()と同じですが、文字列を逆方向に検索します。

29

rjust(width,[, fillchar)]

幅の列の合計に合わせて右揃えされた元の文字列をスペースで埋めた文字列を返します。

30

rstrip()

文字列の末尾の空白をすべて削除します。

31

split(str=""

区切り文字str(指定されていない場合はスペース)に従って文字列を分割し、部分文字列のリストを返します。指定された場合、最大num個の部分文字列に分割されます。

32

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

文字列をすべて(またはnum)個の改行で分割し、改行を削除した各行のリストを返します。

33

startswith(str

文字列または文字列の部分文字列(開始インデックスの開始と終了インデックスの終了が指定されている場合)が部分文字列strで始まるかどうかを決定します。そうであればtrueを、そうでなければfalseを返します。

34

strip([chars)]

文字列に対してlstrip()とrstrip()の両方を実行します

35

swapcase()

文字列内のすべての文字の大文字と小文字を逆にします。

36

title()

文字列の「タイトルケース」バージョンを返します。つまり、すべての単語は大文字で始まり、残りは小文字です。

37

translate(table

変換テーブルstr(256文字)に従って文字列を変換し、del文字列内の文字列を削除します。

38

upper()

文字列の小文字を大文字に変換します。

39

zfill (width)

幅の文字の合計までゼロで左詰めされた元の文字列を返します。数値用に、zfill()は与えられた符号を保持します(ゼロが1つ未満)。

40

isdecimal()

Unicode文字列に小数点文字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。