Python3-文字列
文字列は、Pythonで最も人気のあるタイプの1つです。文字を引用符で囲むだけで作成できます。Pythonは、一重引用符を二重引用符と同じように扱います。文字列の作成は、変数に値を割り当てるのと同じくらい簡単です。例-
var1 = 'Hello World!'
var2 = "Python Programming"
文字列の値へのアクセス
Pythonは文字タイプをサポートしていません。これらは長さ1の文字列として扱われるため、部分文字列とも見なされます。
部分文字列にアクセスするには、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
エスケープ文字
次の表は、円記号で表すことができるエスケープ文字または印刷不可能な文字のリストです。
エスケープ文字が解釈されます。一重引用符と二重引用符の文字列。
バックスラッシュ表記 | 16進文字 | 説明 |
---|---|---|
\ a | 0x07 | ベルまたはアラート |
\ b | 0x08 | バックスペース |
\ cx | Control-x | |
\ Cx | Control-x | |
\ e | 0x1b | 逃れる |
\ f | 0x0c | フォームフィード |
\ M- \ Cx | Meta-Control-x | |
\ n | 0x0a | 改行 |
\ nnn | nが0.7の範囲にある8進表記 | |
\ r | 0x0d | キャリッジリターン |
\ s | 0x20 | スペース |
\ t | 0x09 | タブ |
\ v | 0x0b | 垂直タブ |
\バツ | 文字x | |
\ xnn | nが0.9、af、またはAFの範囲にある16進表記 |
文字列特殊演算子
文字列変数を想定 a 'Hello'と変数を保持します b 'Python'を保持し、次に−
オペレーター | 説明 | 例 |
---|---|---|
+ | 連結-演算子のいずれかの側に値を追加します | a + bはHelloPythonを与えます |
* | 繰り返し-新しい文字列を作成し、同じ文字列の複数のコピーを連結します | a * 2は-HelloHelloを与えます |
[] | スライス-指定されたインデックスから文字を与えます | a [1]はeを与えます |
[:] | 範囲スライス-指定された範囲の文字を指定します | a [1:4]はエルを与える |
に | メンバーシップ-指定された文字列に文字が存在する場合はtrueを返します | のHは1を与えます |
ありませんで | メンバーシップ-指定された文字列に文字が存在しない場合はtrueを返します | 意志のないMは1を与える |
r / R | 生の文字列-エスケープ文字の実際の意味を抑制します。生の文字列の構文は、生の文字列演算子である引用符の前にある文字「r」を除いて、通常の文字列とまったく同じです。「r」は小文字(r)または大文字(R)にすることができ、最初の引用符の直前に配置する必要があります。 | print r '\ n'は\ nを印刷し、R '\ n'は\ nを印刷します |
% | フォーマット-文字列フォーマットを実行します | 次のセクションを参照してください |
文字列フォーマット演算子
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!
これは、%−と一緒に使用できる記号の完全なセットのリストです。
シニア番号 | フォーマット記号と変換 |
---|---|
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の短い方 |
サポートされているその他の記号と機能を次の表に示します。
シニア番号 | シンボルと機能 |
---|---|
1 | * 引数は幅または精度を指定します |
2 | - 左揃え |
3 | + サインを表示する |
4 | <sp> 正の数の前に空白を残します |
5 | # 'x'または 'X'のどちらが使用されたかに応じて、8進数の先行ゼロ( '0')または16進数の先行 '0x'または '0X'を追加します。 |
6 | 0 左からゼロで埋める(スペースの代わりに) |
7 | % '%%'は、単一のリテラル '%'を残します |
8 | (var) マッピング変数(辞書引数) |
9 | m.n. mは最小合計幅、nは小数点以下に表示する桁数です(該当する場合)。 |
トリプルクォート
Pythonの三重引用符は、文字列が逐語的なNEWLINE、TAB、およびその他の特殊文字を含む複数の行にまたがることを可能にすることによって救いの手を差し伸べます。
三重引用符の構文は、3つの連続したもので構成されます single or double 引用符。
#!/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)
上記のコードを実行すると、次のような結果になります。「上」の間の文字列の最後にある最後のNEWLINEまで、すべての特殊文字がどのように印刷された形式に変換されたかに注意してください。三重引用符を閉じます。また、NEWLINEは、行末の明示的なキャリッジリターンまたはそのエスケープコード(\ 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として格納されるため、Unicodeにするには「u」を付加する必要があります。今はもう必要ありません。
組み込みの文字列メソッド
Pythonには、文字列を操作するための次の組み込みメソッドが含まれています-
シニア番号 | 方法と説明 |
---|---|
1 | Capitalize() 文字列の最初の文字を大文字にします |
2 | center(width、fillchar) 元の文字列が幅の列の合計の中央に配置された、fillcharが埋め込まれた文字列を返します。 |
3 | count(str、beg = 0、end = len(string)) 開始インデックスbegと終了インデックスendが指定されている場合、strが文字列または文字列の部分文字列で発生する回数をカウントします。 |
4 | decode(encoding = 'UTF-8'、errors = 'strict') エンコード用に登録されたコーデックを使用して文字列をデコードします。エンコーディングはデフォルトでデフォルトの文字列エンコーディングになります。 |
5 | encode(encoding = 'UTF-8'、errors = 'strict') 文字列のエンコードされた文字列バージョンを返します。エラーの場合、デフォルトでは、「ignore」または「replace」でエラーが発生しない限り、ValueErrorが発生します。 |
6 | extendswith(suffix、beg = 0、end = len(string)) 文字列または文字列の部分文字列(開始インデックスbegと終了インデックスendが指定されている場合)が接尾辞で終わるかどうかを決定します。その場合はtrueを返し、そうでない場合はfalseを返します。 |
7 | expandtabs(tabsize = 8) 文字列内のタブを複数のスペースに展開します。tabsizeが指定されていない場合、デフォルトでタブごとに8スペースになります。 |
8 | find(str、beg = 0 end = len(string)) 開始インデックスbegと終了インデックスendが指定されている場合、strが文字列で発生するか、文字列の部分文字列で発生するかを判別します。 |
9 | index(str、beg = 0、end = len(string)) 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(文字列) 文字列の長さを返します |
20 | ljust(width [、fillchar]) 元の文字列が幅の列の合計に左寄せされた、スペースが埋め込まれた文字列を返します。 |
21 | lower() 文字列内のすべての大文字を小文字に変換します。 |
22 | lstrip() 文字列の先頭の空白をすべて削除します。 |
23 | maketrans() 変換関数で使用される変換テーブルを返します。 |
24 | max(str) 文字列strから最大アルファベット文字を返します。 |
25 | min(str) 文字列strから最小アルファベット文字を返します。 |
26 | replace(old、new [、max]) 文字列内の古いオカレンスをすべて新しいオカレンスに置き換えます。maxが指定されている場合は最大で最大オカレンスに置き換えます。 |
27 | rfind(str、beg = 0、end = len(string)) find()と同じですが、文字列を逆方向に検索します。 |
28 | rindex(str、beg = 0、end = len(string)) index()と同じですが、文字列を逆方向に検索します。 |
29 | rjust(width、[、fillchar]) スペースが埋め込まれた文字列を返します。元の文字列は、幅の列の合計に右寄せされます。 |
30 | rstrip() 文字列の末尾の空白をすべて削除します。 |
31 | split(str = ""、num = string.count(str)) 区切り文字str(指定されていない場合はスペース)に従って文字列を分割し、部分文字列のリストを返します。与えられた場合、最大でnum個の部分文字列に分割します。 |
32 | splitlines(num = string.count( '\ n')) 文字列をすべて(またはnum)のNEWLINEで分割し、NEWLINEを削除した各行のリストを返します。 |
33 | startwith(str、beg = 0、end = len(string)) 文字列または文字列の部分文字列(開始インデックスbegと終了インデックスendが指定されている場合)が部分文字列strで始まるかどうかを決定します。その場合はtrueを返し、そうでない場合はfalseを返します。 |
34 | strip([chars]) 文字列に対してlstrip()とrstrip()の両方を実行します |
35 | swapcase() 文字列内のすべての文字の大文字と小文字を反転します。 |
36 | 題名() 文字列の「タイトル付き」バージョンを返します。つまり、すべての単語は大文字で始まり、残りは小文字です。 |
37 | translate(table、deletechars = "") 変換テーブルstr(256 chars)に従って文字列を変換し、del文字列内の文字列を削除します。 |
38 | アッパー() 文字列内の小文字を大文字に変換します。 |
39 | zfill(幅) ゼロが左に埋め込まれた元の文字列を合計幅の文字に返します。数値を対象としたzfill()は、指定された任意の符号(ゼロが1つ未満)を保持します。 |
40 | isdecimal() Unicode文字列に10進文字のみが含まれている場合はtrueを返し、それ以外の場合はfalseを返します。 |