【Python】レッスン1-04:文字列を操作しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:文字列の操作

この記事の練習問題で使用する知識:
入力と出力の基本コメントの書き方変数の宣言と代入基本データ型と算術演算子文字列の操作フォーマット文字列乱数生成

<<前の問題 問題集Top 次の問題>>

Python言語の文法「文字列操作」とは

ここでは文字列操作の意味や使い方を解説します。必要ない方はここをクリックして練習問題へ飛びましょう。



Pythonにおいて文字列操作は非常に重要なスキルです。

文字列はユーザーの入力やファイルからの読み込みなど、様々な場面で使われます。そのためテキストデータを効果的に扱うための文字列操作は、Pythonプログラミングを学ぶ上で基本となります。

この記事では、Pythonの文字列操作に関する基本的なメソッドとその使い方を解説します。

文字列の基本

Pythonでは文字列はシングルクォート (') またはダブルクォート (") で囲んで定義します。

どちらを使っても構いませんが、統一することが推奨されます。

# 文字列の定義
text1 = "Hello, World!"
text2 = 'Python Programming'

文字列はstr型のオブジェクトとして扱われ、様々なメソッドを使用して操作できます。

文字列の長さを取得する

文字列の長さを取得するためにはlen()関数を使います。

これは非常にシンプルで、指定した文字列の文字数を返すだけのものです。

text = "Hello, Python!"
length = len(text)
print(length)

このコードを実行すると、以下のように出力されます。

14

部分文字列(スライス)の抽出

文字列から一部の文字を抜き出すにはスライス(slice)を使います。

Pythonのスライス構文は文字列[start:end]と書きます。startは開始位置、endは終了位置(endは含まれない)を示しています。

text = "Python Programming"

# 部分文字列の抽出
substring = text[0:6]  # インデックス0から5までの文字を抽出
print(substring)

このコードを実行すると、以下のように出力されます。

Python

文字列の検索と置換

特定の文字列を別の文字列に置き換えたい場合は、replace()メソッドを使用します。

また、文字列が特定の部分を含んでいるかを調べる場合にはin演算子を使います。

text = "I love Python programming"

# 文字列の置換
new_text = text.replace("Python", "Java")
print(new_text)

# 文字列に特定の単語が含まれているかをチェック
contains_python = "Python" in text
print(contains_python)

このコードを実行すると、以下のように出力されます。

I love Java programming
True

replace()メソッドは元の文字列を変更せず、新しい文字列を返します。

文字列の大文字・小文字変換

Pythonでは文字列を大文字または小文字に変換することが簡単にできます。

これを実現するためのメソッドがupper()lower()です。

text = "Hello, World!"

# 大文字に変換
upper_text = text.upper()
print(upper_text)

# 小文字に変換
lower_text = text.lower()
print(lower_text)

このコードを実行すると、以下のように出力されます。

HELLO, WORLD!
hello, world!

大文字・小文字変換は、ユーザー入力を扱う際や、一貫した表示を行いたい場合などに役立ちます。

文字列の検査メソッド

Pythonの文字列メソッドには特定の条件を満たしているかを確認するものがいくつかあります。

たとえば、文字列が特定の文字で始まるかを確認するstartswith()や、特定の文字で終わるかを確認するendswith()があります。

text = "Python is fun!"

# 'Python'で始まっているか?
starts_with_python = text.startswith("Python")
print(starts_with_python)

# 'fun!'で終わっているか?
ends_with_fun = text.endswith("fun!")
print(ends_with_fun)

このコードを実行すると、以下のように出力されます。

True
True

これらのメソッドは、条件に応じてTrueまたはFalseを返します。

文字列の検査に非常に便利です。

まとめ

本記事では、Pythonでの基本的な文字列操作について解説しました。

  • 文字列の長さを取得する方法 (len())
  • 部分文字列を抽出する方法(スライス)
  • 文字列の置換や検索
  • 大文字・小文字の変換
  • 文字列の検査メソッド (startswith(), endswith())

文字列操作は、Pythonプログラミングにおける基本的なスキルです。この記事を参考に、さまざまな文字列操作を試してみてください!




Python練習問題1-3:挨拶文の作成と文字列検索

挨拶文を作成するプログラムを作成し、文字列操作を勉強しましょう。

まず「こんにちは、世界!」という基本的な挨拶を表示し、その後その挨拶文の一部を他の単語に置き換えたり、文字列の長さを取得したりします。

さらに、指定された名前を使って個別の挨拶を作成し、特定の単語が含まれているかを確認します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 変数 greeting に「こんにちは、世界!」という文字列を格納し、それを表示すること。
  • 文字列 greeting の長さを取得し、表示すること。
  • 文字列 greeting の中の「世界」を「Python」に置き換えて、新しい挨拶文を作成し表示すること。
  • 作成した新しい挨拶文に「Python」が含まれているか確認し、その結果を表示すること。
  • 変数 name にあなたの名前を代入し、「こんにちは、○○さん!」という挨拶文を作成して表示すること。
  • 最後に、「Python」という単語がその挨拶文に含まれているか確認し、その結果を表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

こんにちは、世界!
文字列の長さ:9
こんにちは、Python!
'Python' が含まれているか: True
こんにちは、太郎さん!
'Python' が含まれているか: False

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.文字列の宣言と表示
 1-1. 変数 greeting に「こんにちは、世界!」を代入
 1-2. greetingprint 関数で出力

2.文字列の長さを取得して表示
 2-1. len 関数で greeting の文字数を取得
 2-2. 取得した文字数を print 関数で出力

3.文字列の置き換え
 3-1. replace メソッドを使用して、「世界」を「Python」に置き換える
 3-2. 新しい文字列 new_greetingprint 関数で出力

4.文字列に特定の単語が含まれているか確認
 4-1. in 演算子を使用して、new_greeting に「Python」が含まれているか確認
 4-2. 結果を print 関数で出力

5.新しい名前で挨拶を作成
 5-1. 変数 name に「太郎」を代入
 5-2. f-string を使用して「こんにちは、太郎さん!」という文字列を生成
 5-3. 新しい挨拶 personalized_greetingprint 関数で出力

6.もう一度文字列に「Python」が含まれているか確認
 6-1. in 演算子を使用して、personalized_greeting に「Python」が含まれているか確認
 6-2. 結果を print 関数で出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# 文字列の宣言
greeting = "こんにちは、世界!"
print(greeting)  # 元の挨拶を表示

# 文字列の長さを取得
"""【穴埋め問題1】ここに文字列の長さを取得して表示するコードを書いてください。"""

# 文字列の一部を置き換える
"""【穴埋め問題2】ここにreplaceを使って、'世界'を'Python'に置き換えるコードを書いてください。"""
"""【穴埋め問題3】ここに置き換えた結果を表示するコードを書いてください。"""

# 文字列に "Python" が含まれているか確認
"""【穴埋め問題4】ここに'Python'が含まれているかを確認し、その結果を表示するコードを書いてください。"""

# 名前を別のものにして挨拶を表示
name = "太郎"  # 新しい名前を設定
"""【穴埋め問題5】ここに名前を使った挨拶を作成して表示するコードを書いてください。"""

# 文字列に "Python" が含まれているか確認(再度)
"""【穴埋め問題6】ここに再度、'Python'が含まれているか確認するコードを書いてください。"""

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# これはPythonでの文字列操作の基本を学ぶためのコードです

# 文字列の宣言
greeting = "こんにちは、世界!"
print(greeting)  # 元の挨拶を表示

# 文字列の長さを取得
print(f"文字列の長さ:{len(greeting)}")  # 文字列の長さを取得し表示

# 文字列の一部を置き換える
new_greeting = greeting.replace("世界", "Python")  # 'replace' で "世界" を "Python" に置き換え
print(new_greeting)  # 置き換えた結果を出力

# 文字列に "Python" が含まれているか確認
contains_python = "Python" in new_greeting  # 'in' 演算子で "Python" が含まれているか確認
print(f"'Python' が含まれているか: {contains_python}")

# 名前を別のものにして挨拶を表示
name = "太郎"  # 新しい名前を設定
personalized_greeting = f"こんにちは、{name}さん!"  # 名前を使った挨拶を作成
print(personalized_greeting)

# 文字列に "Python" が含まれているか確認(再度)
contains_python = "Python" in personalized_greeting  # 'in' 演算子で "Python" が含まれているか確認
print(f"'Python' が含まれているか: {contains_python}")

正解コードの解説

非常にシンプルな問題の為、正解コードの詳細解説は搭載しません。

疑問点がある場合は、ページ上部の用語の説明欄を確認してください。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る