Python で文字列に部分文字列が含まれているかどうかを確認する方法

PythonPythonBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python で文字列に部分文字列が含まれているかどうかを確認する方法を学びます。この実験では、正と負の両方のインデックスを使用したスライシングを使って部分文字列を定義する方法を案内します。与えられた文字列から部分文字列を抽出し、それをコンソールに出力する substrings.py という名前の Python スクリプトを作成します。

この実験では、スライシングを使って部分文字列を定義する方法、つまり開始インデックスと終了インデックスを指定して文字列の一部を抽出する方法を示します。「Hello, LabEx!」という文字列から「Hello」や「LabEx」などの部分文字列を抽出する方法を学び、また負のインデックスを使って文字列の最後の文字にアクセスする方法も学びます。この実験には、スクリプトを実行して出力を検証する手順も含まれています。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") subgraph Lab Skills python/strings -.-> lab-559567{{"Python で文字列に部分文字列が含まれているかどうかを確認する方法"}} python/conditional_statements -.-> lab-559567{{"Python で文字列に部分文字列が含まれているかどうかを確認する方法"}} end

部分文字列の定義

このステップでは、Python で部分文字列を定義する方法を学びます。部分文字列とは、文字列内の連続した文字のシーケンスです。部分文字列を扱う方法を理解することは、多くの文字列操作タスクにおいて不可欠です。

まず、~/project ディレクトリに substrings.py という名前の Python スクリプトを作成しましょう。このファイルを作成するには、VS Code エディタを使用できます。

## ~/project/substrings.py
string = "Hello, LabEx!"

このスクリプトは、string という名前の文字列変数を "Hello, LabEx!" という値で初期化します。

では、この文字列から部分文字列を抽出するコードを追加しましょう。部分文字列を定義する簡単な方法は、スライシングを使用することです。スライシングを使うと、開始インデックスと終了インデックスを指定して文字列の一部を抽出できます。

substrings.py ファイルに以下の行を追加します。

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## インデックス 0 から 4 までの文字
substring2 = string[7:12] ## インデックス 7 から 11 までの文字

print(substring1)
print(substring2)

この例では、substring1 にはインデックス 0 から(ただしインデックス 5 は含まない)の文字が含まれ、それは "Hello" です。substring2 にはインデックス 7 から(ただしインデックス 12 は含まない)の文字が含まれ、それは "LabEx" です。

スクリプトを実行するには、VS Code のターミナルを開き、以下のコマンドを実行します。

python ~/project/substrings.py

以下の出力が表示されるはずです。

Hello
LabEx

また、負のインデックスを使用して部分文字列を定義することもできます。負のインデックスは文字列の末尾から数えます。たとえば、string[-1] は文字列の最後の文字を指します。

substrings.py ファイルを変更して以下を追加します。

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = string[0:5]  ## インデックス 0 から 4 までの文字
substring2 = string[7:12] ## インデックス 7 から 11 までの文字
substring3 = string[-1]   ## 最後の文字

print(substring1)
print(substring2)
print(substring3)

今度は、スクリプトを再度実行しましょう。

python ~/project/substrings.py

出力には、文字列の最後の文字が含まれるはずです。

Hello
LabEx
!

スライシングを使用して部分文字列を定義する方法を理解することは、Python における基本的なスキルです。異なる開始インデックスと終了インデックスを試して、文字列の様々な部分を抽出してみましょう。

in 演算子の使用

このステップでは、Python の in 演算子を使って、文字列内に部分文字列が存在するかどうかを確認する方法を学びます。in 演算子は、部分文字列の存在を判定する簡単で効率的な方法です。

前のステップで作成した substrings.py ファイルを引き続き使用しましょう。特定の部分文字列が元の文字列に含まれているかどうかを確認するコードを追加します。

VS Code エディタを使って、~/project ディレクトリ内の substrings.py ファイルを開きます。

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

print(substring1 in string)
print(substring2 in string)

この例では、substring1substring2 という 2 つの部分文字列を定義しています。そして、in 演算子を使って、各部分文字列が string 変数に含まれているかどうかを確認します。in 演算子は、部分文字列が見つかった場合は True を返し、そうでない場合は False を返します。

スクリプトを実行するには、VS Code のターミナルを開き、以下のコマンドを実行します。

python ~/project/substrings.py

以下の出力が表示されるはずです。

True
False

この出力は、「Hello」は「Hello, LabEx!」という文字列に含まれているが、「Python」は含まれていないことを示しています。

in 演算子は条件文でも使用できます。substrings.py ファイルを変更して以下を追加します。

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "Hello"
substring2 = "Python"

if substring1 in string:
    print(f"'{substring1}' is found in '{string}'")
else:
    print(f"'{substring1}' is not found in '{string}'")

if substring2 in string:
    print(f"'{substring2}' is found in '{string}'")
else:
    print(f"'{substring2}' is not found in '{string}'")

今度は、スクリプトを再度実行しましょう。

python ~/project/substrings.py

出力はもっと詳細になるはずです。

'Hello' is found in 'Hello, LabEx!'
'Python' is not found in 'Hello, LabEx!'

in 演算子は、Python での文字列操作における強力なツールです。これを使うと、文字列内に部分文字列が存在するかどうかを簡単に確認でき、コードをより読みやすく効率的にすることができます。

find() で位置を検索する

このステップでは、Python の find() メソッドを使って、文字列内の部分文字列の位置を見つける方法を学びます。find() メソッドは、部分文字列が最初に出現するインデックスを返します。部分文字列が見つからない場合は -1 を返します。

前のステップで作成した substrings.py ファイルを引き続き使用しましょう。元の文字列内の特定の部分文字列の位置を見つけるコードを追加します。

VS Code エディタを使って、~/project ディレクトリ内の substrings.py ファイルを開きます。

## ~/project/substrings.py
string = "Hello, LabEx!"

substring1 = "LabEx"
substring2 = "Python"

position1 = string.find(substring1)
position2 = string.find(substring2)

print(position1)
print(position2)

この例では、substring1substring2 という 2 つの部分文字列を定義しています。そして、find() メソッドを使って、各部分文字列が string 変数内で最初に出現する位置を見つけます。

スクリプトを実行するには、VS Code のターミナルを開き、以下のコマンドを実行します。

python ~/project/substrings.py

以下の出力が表示されるはずです。

7
-1

この出力は、「LabEx」は「Hello, LabEx!」という文字列のインデックス 7 の位置に見つかったが、「Python」は見つからなかった(-1 で示される)ことを示しています。

find() メソッドには、オプションで開始インデックスと終了インデックスを指定することができ、特定の範囲内で部分文字列を検索することができます。substrings.py ファイルを変更して以下を追加します。

## ~/project/substrings.py
string = "Hello, LabEx! LabEx"

substring1 = "LabEx"

position1 = string.find(substring1)         ## 最初の出現位置を検索
position2 = string.find(substring1, 8)      ## インデックス 8 から開始して出現位置を検索
position3 = string.find(substring1, 0, 5)   ## 最初の 5 文字の範囲内で出現位置を検索

print(position1)
print(position2)
print(position3)

今度は、スクリプトを再度実行しましょう。

python ~/project/substrings.py

出力は以下のようになるはずです。

7
14
-1

この例では:

  • position1 は「LabEx」の最初の出現位置をインデックス 7 で見つけます。
  • position2 はインデックス 8 から検索を開始するため、「LabEx」の 2 番目の出現位置をインデックス 14 で見つけます。
  • position3 は文字列の最初の 5 文字の範囲内で検索するため、「LabEx」を見つけられず、-1 を返します。

find() メソッドは、文字列内の部分文字列を見つけるための汎用的なツールです。オプションの開始インデックスと終了インデックスを使ってこのメソッドを使う方法を理解することで、よりターゲットを絞った検索を行うことができます。

まとめ

この実験では、Python で文字列スライシングを使って部分文字列を定義する方法を学びました。Python スクリプトを作成して文字列を初期化し、開始インデックスと終了インデックスを指定することで部分文字列を抽出しました。また、負のインデックスを使って文字列の末尾から文字にアクセスする方法も学びました。この実験では、抽出した部分文字列をコンソールに出力する方法も示されました。

重要なポイントは、正のインデックスと負のインデックスの両方を使ってスライシングを行い、文字列の特定の部分を定義して抽出する方法を理解することです。これは、Python での文字列操作における基本的なスキルです。