Python3-python-strings
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 |
文字列の最初の文字を大文字にします |
2 |
_fillchar_でパディングされた文字列を返します。元の文字列は_width_列の中央に配置されます。 |
3 |
開始インデックスの開始と終了インデックスの終了が指定されている場合、文字列または文字列の部分文字列でstrが発生する回数をカウントします。 |
4 |
エンコード用に登録されたコーデックを使用して文字列をデコードします。 エンコーディングのデフォルトはデフォルトの文字列エンコーディングです。 |
5 |
文字列のエンコードされた文字列バージョンを返します。エラーが発生した場合、デフォルトでは、「ignore」または「replace」でエラーが指定されない限り、ValueErrorが発生します。 |
6 |
文字列または文字列の部分文字列(開始インデックスの開始と終了インデックスの終了が指定されている場合)がサフィックスで終了するかどうかを決定します。そうであればtrueを、そうでなければfalseを返します。 |
7 |
文字列のタブを複数のスペースに展開します。 tabsizeが指定されていない場合、タブごとにデフォルトで8スペースが使用されます。 |
8 |
開始インデックスbegと終了インデックスendが指定されている場合、strがstringまたはstringのサブストリングにあるかどうかを判別します。見つかった場合はindexを返し、見つからない場合は-1を返します。 |
9 |
find()と同じですが、strが見つからない場合は例外が発生します。 |
10 |
文字列が少なくとも1文字で、すべての文字が英数字の場合はtrueを返し、それ以外の場合はfalseを返します。 |
11 |
文字列に少なくとも1文字が含まれ、すべての文字がアルファベットである場合はtrueを返し、そうでない場合はfalseを返します。 |
12 |
文字列に数字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。 |
13 |
文字列に少なくとも1つの大文字と小文字が含まれ、すべての大文字と小文字が小文字の場合はtrueを返し、そうでない場合はfalseを返します。 |
14 |
Unicode文字列に数字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。 |
15 |
文字列に空白文字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。 |
16 |
文字列が適切に「タイトルケース化」されている場合はtrue、そうでない場合はfalseを返します。 |
17 |
文字列に大文字と小文字が少なくとも1つあり、すべての大文字と小文字が大文字の場合はtrue、そうでない場合はfalseを返します。 |
18 |
シーケンスseqの要素の文字列表現を、セパレータ文字列を使用して文字列にマージ(連結)します。 |
19 |
文字列の長さを返します |
20 |
幅の列の合計に合わせて元の文字列を左寄せした、スペースが埋め込まれた文字列を返します。 |
21 |
文字列内のすべての大文字を小文字に変換します。 |
22 |
文字列の先頭の空白をすべて削除します。 |
23 |
変換機能で使用される変換テーブルを返します。 |
24 |
文字列strからアルファベットの最大文字を返します。 |
25 |
文字列strからアルファベットの最小文字を返します。 |
26 |
string内のoldのすべての出現を、maxが指定されている場合、新規または最大max個の出現に置き換えます。 |
27 |
find()と同じですが、文字列を逆方向に検索します。 |
28 |
index()と同じですが、文字列を逆方向に検索します。 |
29 |
幅の列の合計に合わせて右揃えされた元の文字列をスペースで埋めた文字列を返します。 |
30 |
文字列の末尾の空白をすべて削除します。 |
31 |
区切り文字str(指定されていない場合はスペース)に従って文字列を分割し、部分文字列のリストを返します。指定された場合、最大num個の部分文字列に分割されます。 |
32 |
splitlines( num=string.count('\n')) 文字列をすべて(またはnum)個の改行で分割し、改行を削除した各行のリストを返します。 |
33 |
文字列または文字列の部分文字列(開始インデックスの開始と終了インデックスの終了が指定されている場合)が部分文字列strで始まるかどうかを決定します。そうであればtrueを、そうでなければfalseを返します。 |
34 |
文字列に対してlstrip()とrstrip()の両方を実行します |
35 |
文字列内のすべての文字の大文字と小文字を逆にします。 |
36 |
文字列の「タイトルケース」バージョンを返します。つまり、すべての単語は大文字で始まり、残りは小文字です。 |
37 |
変換テーブルstr(256文字)に従って文字列を変換し、del文字列内の文字列を削除します。 |
38 |
文字列の小文字を大文字に変換します。 |
39 |
幅の文字の合計までゼロで左詰めされた元の文字列を返します。数値用に、zfill()は与えられた符号を保持します(ゼロが1つ未満)。 |
40 |
Unicode文字列に小数点文字のみが含まれる場合はtrueを、それ以外の場合はfalseを返します。 |