logo

Python 文字列

文字列は、一連の文字を表す Python プログラミングのデータ構造です。これは不変のデータ型であり、文字列を一度作成すると変更することはできません。 Python 文字列は、テキスト データの保存と操作、名前、住所、テキストとして表現できるその他の種類のデータの表現など、さまざまなアプリケーションで広く使用されています。

目次



Python の文字列とは何ですか?

パイソン プログラミングには文字データ型はありません。単一の文字は単に長さ 1 の文字列です。 Python 文字列構文 :

Python の文字列データ型の構文

string_variable = 'Hello, world!'>

Python の文字列データ型の例

パイソン
string_0 = 'A Computer Science portal for geeks' print(string_0) print(type(string_0))>

出力:



A Computer Science portal for geeks>

Python で文字列を作成する

Python の文字列 一重引用符、二重引用符、さらには三重引用符を使用して作成できます。 Python で文字列を定義する方法、または Python で文字列を記述する方法を見てみましょう。

例:

この例では、Python 文字列を作成するさまざまな方法を示します。一重引用符 (‘ )、二重引用符 ( )、および三重二重引用符 ( ) を使用して文字列を作成します。三重引用符は、Python で複数行の文字列を宣言するために使用できます。



パイソン
# Creating a String # with single Quotes String1 = 'Welcome to the Geeks World' print('String with the use of Single Quotes: ') print(String1) # Creating a String # with double Quotes String1 = 'I'm a Geek' print('
String with the use of Double Quotes: ') print(String1) # Creating a String # with triple Quotes String1 = '''I'm a Geek and I live in a world of 'Geeks'''' print('
String with the use of Triple Quotes: ') print(String1) # Creating String with triple # Quotes allows multiple lines String1 = '''Geeks  For  Life''' print('
Creating a multiline String: ') print(String1)>

出力:

String with the use of Single Quotes: Welcome to the Geeks World String with the use of Double Quotes: I'm a Geek String with the use of Triple Quotes: I'm a Geek and I live in a world of 'Geeks' Creating a multiline String: Geeks For Life>

Python 文字列内の文字へのアクセス

Python プログラミング チュートリアルでは、インデックス作成の方法を使用して文字列の個々の文字にアクセスできます。インデックス付けにより、負のアドレス参照で文字列の後ろの文字にアクセスできるようになります。 -1 は最後の文字を指し、-2 は最後から 2 番目の文字を指します。以下同様です。

範囲外のインデックスにアクセスすると、 インデックスエラー 。インデックス、浮動小数点、またはその他の型として渡すことができるのは整数のみです。 タイプエラー

Python 文字列のインデックス作成

Python 文字列構文のインデックス作成

Python 文字列のポジティブインデックス付け

この例では、Python プログラミングで文字列を定義し、ポジティブ インデックスを使用してその文字にアクセスします。 0 番目の要素は文字列の最初の文字になります。

パイソン
String1 = 'GeeksForGeeks' print('Initial String: ', String1) # Printing First character print('First character of String is: ', String1[0])>

出力:

Initial String: GeeksForGeeks First character of String is: G>

Python 文字列のネガティブインデックス付け

この例では、負のインデックスを使用してその文字にアクセスします。 -3 番目の要素は、文字列の最後から 3 番目の文字です。

パイソン
String1 = 'GeeksForGeeks' print('Initial String: ', String1) # Printing Last character print('Last character of String is: ', String1[-3])>

出力

Initial String: GeeksForGeeks Last character of String is: e>

文字列スライスPython

Python プログラミング チュートリアルでは、 文字列のスライス メソッドは、文字列内の文字範囲にアクセスするために使用されます。文字列のスライスは、スライス演算子、つまりコロン (:) を使用して行われます。このメソッドを使用する際に留意すべき点の 1 つは、スライス後に返される文字列には、開始インデックスの文字は含まれるが、最後のインデックスの文字は含まれないということです。

この例では、文字列スライス方法を使用して、元の文字列の部分文字列を抽出します。 [3:12] は、文字列の 3 番目のインデックスから 12 番目のインデックス (12 番目の文字は含まれません) まで文字列のスライスが開始されることを示します。文字列のスライスに負のインデックスを使用することもできます。

パイソン
# Creating a String String1 = 'GeeksForGeeks' print('Initial String: ') print(String1) # Printing 3rd to 12th character print('
Slicing characters from 3-12: ') print(String1[3:12]) # Printing characters between # 3rd and 2nd last character print('
Slicing characters between ' + '3rd and 2nd last character: ') print(String1[3:-2])>

出力:

Initial String: GeeksForGeeks Slicing characters from 3-12: ksForGeek Slicing characters between 3rd and 2nd last character: ksForGee>

Python 文字列の反転

Python プログラミング チュートリアルでは、文字列から文字にアクセスすることで、次のこともできます。 Python で文字列を反転する プログラミング。文字列スライスメソッドを使用して文字列を反転できます。

この例では、インデックスにアクセスして文字列を反転します。スライスの最初の 2 つの部分を指定しませんでしたが、これは開始インデックスから最後のインデックスまでの文字列全体を考慮していることを示しています。

10/40
パイソン
#Program to reverse a string gfg = 'geeksforgeeks' print(gfg[::-1])>

出力:

skeegrofskeeg>

Python の BuildIn 逆関数

組み込みを使用して文字列を逆にすることもできます 参加する そして 逆転した 関数を呼び出し、文字列をパラメータとして reversed() 関数に渡します。

パイソン
# Program to reverse a string gfg = 'geeksforgeeks' # Reverse the string using reversed and join function gfg = ''.join(reversed(gfg)) print(gfg)>

出力:

skeegrofskeeg>

文字列からの削除/更新

Python では、文字列からの文字の更新または削除は許可されません。文字列からの項目の割り当てまたは項目の削除はサポートされていないため、これによりエラーが発生します。ただし、組み込みの del キーワードを使用すると、文字列全体を削除できます。これは、文字列が不変であるため、文字列の要素は一度割り当てられると変更できないためです。同じ名前に再割り当てできるのは、新しい文字列のみです。

キャラクターを更新する

Python では、まず文字列を次の文字列に変換することで、文字列の文字を更新できます。 Python リスト 次に、リスト内の要素を更新します。リストは本質的に変更可能なものであるため、文字を更新してからリストを文字列に変換して戻すことができます。

もう 1 つの方法は、文字列スライス方法を使用することです。更新する文字の前の文字列をスライスし、新しい文字を追加し、最後に文字列のスライスによって文字列の他の部分を再度追加します。

例:

この例では、リストと文字列スライス方法の両方を使用して文字を更新しています。 String1 をリストに変換し、特定の要素の値を変更してから、Python を使用して文字列に戻しました。 文字列結合() 方法。

文字列スライス方法では、更新する文字まで文字列をスライスし、新しい文字を連結し、最後に文字列の残りの部分を連結します。

パイソン
# Python Program to Update # character of a String String1 = 'Hello, I'm a Geek' print('Initial String: ') print(String1) # Updating a character of the String ## As python strings are immutable, they don't support item updation directly ### there are following two ways #1 list1 = list(String1) list1[2] = 'p' String2 = ''.join(list1) print('
Updating character at 2nd Index: ') print(String2) #2 String3 = String1[0:2] + 'p' + String1[3:] print(String3)>

出力:

Initial String: Hello, I'm a Geek Updating character at 2nd Index: Heplo, I'm a Geek Heplo, I'm a Geek>

文字列全体を更新する

Python プログラミングでは、Python 文字列は本質的に不変であるため、既存の文字列を更新することはできません。同じ名前の変数には、まったく新しい値のみを割り当てることができます。

例: この例では、まず「String1」に値を割り当て、次にまったく異なる値を割り当てて更新します。その参照を変更しただけです。

パイソン
# Python Program to Update # entire String String1 = 'Hello, I'm a Geek' print('Initial String: ') print(String1) # Updating a String String1 = 'Welcome to the Geek World' print('
Updated String: ') print(String1)>

出力:

Initial String: Hello, I'm a Geek Updated String: Welcome to the Geek World>

キャラクターを削除する

Python 文字列は不変です。つまり、文字列から文字を削除することはできません。を使用して文字を削除しようとすると、 キーワードを指定するとエラーが発生します。

パイソン
# Python Program to delete # character of a String String1 = 'Hello, I'm a Geek' print('Initial String: ') print(String1) print('Deleting character at 2nd Index: ') del String1[2] print(String1)>

出力:

Initial String: Hello, I'm a Geek Deleting character at 2nd Index: Traceback (most recent call last): File 'e:GFGPython codesCodesdemo.py', line 9, in del String1[2] TypeError: 'str' object doesn't support item deletion>

ただし、スライスを使用すると、元の文字列から文字を削除し、結果を新しい文字列に保存できます。

例: この例では、まず削除する文字までの文字列をスライスし、次に削除した文字から次に残りの文字列を連結します。

パイソン
# Python Program to Delete # characters from a String String1 = 'Hello, I'm a Geek' print('Initial String: ') print(String1) # Deleting a character # of the String String2 = String1[0:2] + String1[3:] print('
Deleting character at 2nd Index: ') print(String2)>

出力:

Initial String: Hello, I'm a Geek Deleting character at 2nd Index: Helo, I'm a Geek>

文字列全体を削除する

Pythonプログラミングではdelキーワードを使用することで文字列全体の削除が可能です。さらに、文字列を印刷しようとすると、文字列が削除され印刷できないため、エラーが発生します。

パイソン
# Python Program to Delete # entire String String1 = 'Hello, I'm a Geek' print('Initial String: ') print(String1) # Deleting a String # with the use of del del String1 print('
Deleting entire String: ') print(String1)>

エラー:

Traceback (most recent call last): File '/home/e4b8f2170f140da99d2fe57d9d8c6a94.py', line 12, in print(String1) NameError: name 'String1' is not defined>

Python でのエスケープシーケンス

一重引用符と二重引用符を含む文字列を印刷すると、 構文エラー 文字列にはすでに一重引用符と二重引用符が含まれているため、これらのいずれを使用しても出力できないためです。したがって、このような文字列を出力するには、三重引用符を使用するか、エスケープ シーケンスを使用して文字列を出力します。

エスケープ シーケンスはバックスラッシュで始まるため、別の方法で解釈される可能性があります。文字列を表すために一重引用符が使用されている場合は、文字列内に存在するすべての一重引用符をエスケープする必要があり、二重引用符についても同じことが行われます。

パイソン
# Initial String String1 = '''I'm a 'Geek'''' print('Initial String with use of Triple Quotes: ') print(String1) # Escaping Single Quote String1 = 'I'm a 'Geek'' print('
Escaping Single Quote: ') print(String1) # Escaping Double Quotes String1 = 'I'm a 'Geek'' print('
Escaping Double Quotes: ') print(String1) # Printing Paths with the # use of Escape Sequences String1 = 'C:PythonGeeks' print('
Escaping Backslashes: ') print(String1) # Printing Paths with the # use of Tab String1 = 'Hi	Geeks' print('
Tab: ') print(String1) # Printing Paths with the # use of New Line String1 = 'Python
Geeks' print('
New Line: ') print(String1)>

出力:

Initial String with use of Triple Quotes: I'm a 'Geek' Escaping Single Quote: I'm a 'Geek' Escaping Double Quotes: I'm a 'Geek' Escaping Backslashes: C:PythonGeeks Tab: Hi Geeks New Line: Python Geeks>

例:

Javaスキャナ

文字列内のエスケープ シーケンスを無視するには、 r または R が使用される場合、これは、文字列が生の文字列であり、その中のエスケープ シーケンスが無視されることを意味します。

パイソン
# Printing hello in octal String1 = '110145154154157' print('
Printing in Octal with the use of Escape Sequences: ') print(String1) # Using raw String to # ignore Escape Sequences String1 = r'This is 110145154154157' print('
Printing Raw String in Octal Format: ') print(String1) # Printing Geeks in HEX String1 = 'This is x47x65x65x6bx73 in x48x45x58' print('
Printing in HEX with the use of Escape Sequences: ') print(String1) # Using raw String to # ignore Escape Sequences String1 = r'This is x47x65x65x6bx73 in x48x45x58' print('
Printing Raw String in HEX Format: ') print(String1)>

出力:

Printing in Octal with the use of Escape Sequences: Hello Printing Raw String in Octal Format: This is 110145154154157 Printing in HEX with the use of Escape Sequences: This is Geeks in HEX Printing Raw String in HEX Format: This is x47x65x65x6bx73 in x48x45x58>

Python 文字列のフォーマット

Python の文字列または Python の文字列データ型は、次を使用してフォーマットできます。 フォーマット() このメソッドは、文字列をフォーマットするための非常に多用途かつ強力なツールです。 String の Format メソッドには、順序を指定する位置またはキーワードに従って引数を保持できるプレースホルダーとして中括弧 {} が含まれています。

例 1: この例では、プレースホルダーとして機能する中括弧 {} を含む文字列を宣言し、それらに値を指定して、文字列の宣言位置がどのように重要であるかを確認します。

パイソン
# Python Program for # Formatting of Strings # Default order String1 = '{} {} {}'.format('Geeks', 'For', 'Life') print('Print String in default order: ') print(String1) # Positional Formatting String1 = '{1} {0} {2}'.format('Geeks', 'For', 'Life') print('
Print String in Positional order: ') print(String1) # Keyword Formatting String1 = '{l} {f} {g}'.format(g='Geeks', f='For', l='Life') print('
Print String in order of Keywords: ') print(String1)>

出力:

Print String in default order: Geeks For Life Print String in Positional order: For Geeks Life Print String in order of Keywords: Life For Geeks>

例 2: 2 進数、16 進数などの整数と浮動小数点数は、書式指定子を使用して四捨五入したり、指数形式で表示したりできます。

パイソン
# Formatting of Integers String1 = '{0:b}'.format(16) print('
Binary representation of 16 is ') print(String1) # Formatting of Floats String1 = '{0:e}'.format(165.6458) print('
Exponent representation of 165.6458 is ') print(String1) # Rounding off Integers String1 = '{0:.2f}'.format(1/6) print('
one-sixth is : ') print(String1)>

出力:

Binary representation of 16 is 10000 Exponent representation of 165.6458 is 1.656458e+02 one-sixth is : 0.17>

例 3: Python の String データ型では、書式指定子を使用して文字列を左揃え、右揃え、または中央揃えにすることができ、コロン (:) で区切られます。 () は文字列を右揃えにすることを示し、(^) は文字列を中央揃えにすることを示します。揃える長さを指定することもできます。たとえば、(<10) は、文字列が 10 文字幅のフィールド内で左に揃えられることを意味します。

パイソン
# String alignment String1 = '|{:<10}|{:^10}|{:>10}|'.format('Geeks', 'for', 'Geeks') print('
書式設定による左揃え、中央揃え、右揃え: ') print(String1) # デモするスペースの配置 String1 = '
{0:^16} は {1: で確立されました。<4}!'.format('techcodeview.com', 2009) print(String1)>

出力:

Left, center and right alignment with Formatting: |Geeks | for | Geeks| techcodeview.com was founded in 2009 !>

例 4: 古い形式の書式設定は、format メソッドを使用せずに、次の方法で実行されました。 % オペレーター

パイソン
# Python Program for # Old Style Formatting # of Integers Integer1 = 12.3456789 print('Formatting in 3.2f format: ') print('The value of Integer1 is %3.2f' % Integer1) print('
Formatting in 3.4f format: ') print('The value of Integer1 is %3.4f' % Integer1)>

出力:

Formatting in 3.2f format: The value of Integer1 is 12.35 Formatting in 3.4f format: The value of Integer1 is 12.3457>

同様の記事 – 文字列メソッド

便利な Python 文字列操作

Python 文字列定数

内蔵機能

説明

文字列.ascii_letters

ascii_ lowercase 定数と ascii_uppercase 定数の連結。

文字列.ascii_小文字

小文字の連結

文字列.ascii_uppercase

大文字の連結

文字列.数字

文字列内の数字

文字列.16 進数

文字列内の 16 桁

文字列.文字

文字列の小文字と大文字の連結

文字列.小文字

文字列には小文字が含まれている必要があります。

文字列.octdigits

文字列内の 8 桁

文字列.句読点

句読点文字を含む ASCII 文字。

文字列.印刷可能

印刷可能な文字列

String.endswith()

文字列が指定されたサフィックスで終わる場合は True を返し、それ以外の場合は False を返します

String.startswith()

文字列が指定されたプレフィックスで始まる場合は True を返し、それ以外の場合は False を返します。

String.isdigital()

文字列内のすべての文字が数字の場合は True を返し、それ以外の場合は False を返します。

クイックソート
String.isalpha()

文字列内のすべての文字がアルファベットの場合は True を返し、それ以外の場合は False を返します。

string.isdecmal()

文字列内のすべての文字が 10 進数の場合は true を返します。

str.format()

Python3 の文字列書式設定メソッドの 1 つで、複数の置換と値の書式設定が可能です。

文字列.インデックス

文字列内で最初に出現した部分文字列の位置を返します。

文字列.大文字

文字列には大文字が含まれている必要があります。

文字列.空白

空白とみなされるすべての文字を含む文字列。

string.swapcase()

メソッドは、指定された文字列のすべての大文字を小文字に、またはその逆に変換し、それを返します。

交換する()

出現する部分文字列をすべて別の部分文字列に置き換えた文字列のコピーを返します。

非推奨の文字列関数

内蔵機能

説明

文字列.Is10進数

文字列内のすべての文字が 10 進数の場合は true を返します

String.Isalnum

指定された文字列内のすべての文字が英数字の場合は true を返します。

文字列.Istitle

文字列がタイトル文字列の場合は True を返します

文字列.パーティション

最初に出現した区切り文字で文字列を分割し、タプルを返します。

コマンドをarpする
文字列.識別子

文字列が有効な識別子であるかどうかを確認します。

String.len

文字列の長さを返します。

文字列.rindex

部分文字列が見つかった場合は、文字列内の部分文字列の最大インデックスを返します。

String.Max

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

文字列.分

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

文字列.分割線

文字列内の行のリストを返します。

文字列.大文字化

最初の文字を大文字にした単語を返します。

文字列.expandtabs

文字列内のタブを 1 つ以上のスペースに置き換えて展開します。

文字列.検索

部分文字列の最も低いインデックスを返します。

文字列.rfind

最高のインデックスを見つけます。

文字列.カウント

string 内の部分文字列 sub の (重複しない) 出現数を返します。

文字列.下位

s のコピーを返しますが、大文字は小文字に変換されます。

文字列.分割

オプションの 2 番目の引数 sep が存在しないか、None の場合は、文字列の単語のリストを返します。

Python のドキュメント文字列
  • 組み込み関数を使用した指定された文字列の置換
  • Pythonで文字列内の各単語の頻度を調べる
  • すべての母音を含む文字列を受け入れるプログラム
  • 文字列のペア内の一致する文字の数をカウントします。
  • 指定された文字列内のすべてのプレフィックスを最大の頻度でカウントします
  • 文字列に特殊文字が含まれているかどうかをチェックするプログラム
  • 指定された文字列が生成されるまでランダムな文字列を生成します
  • 組み込み関数を使用せずに大文字と小文字をカウントする Python プログラム