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

ながみえ
【Python学習記事のアイキャッチ画像】Lesson1-4 文字列を操作しよう

一つ前のLessonでは基本データ型と算術演算子について学習しました。

今回は文字列操作について見ていきます。

Lesson1:基礎文法編
・Lesson1-1:Pythonの入り口|初めてコードを書いてみよう
・Lesson1-2:変数の基本を理解しよう
・Lesson1-3:四則演算をしよう
・Lesson1-4:文字列を操作しよう ◁今回はココ
・Lesson1-5:フォーマット文字列を使いこなそう
・Lesson1-6:乱数を生成しよう
・練習問題1-1:レッスン1の内容を総復習しよう
Lesson2:制御構造編
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道5選(実務or副業)

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson1-3 四則演算をしよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson1-5 フォーマット文字列を使いこなそう

文字列の結合・スライス・検索と基本操作

Pythonにおいて文字列は、ユーザーへのメッセージ表示やデータ処理など、さまざまな場面で利用される重要な要素です。

本記事では文字列を結合する方法や整形の仕組み、さらに便利な関数やメソッドを用いた基本的な操作について解説します。

それでは、Pythonで文字列を自在に扱うための基本を、一緒に学んでいきましょう。

文字列の定義方法|基本の書き方

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

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

# 文字列の定義
text1 = "Hello, World!"
text2 = 'Python Programming'
# 「""」や「''」によってその中身が文字列であると認識され、変数が文字列型(str型)に定まる

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

文字列操作に使える組み込み関数と基本メソッド

文字列を相殺する際によく使用される、便利な組み込み関数やメソッドを紹介していきます。

なお、関数とは特定の処理を実行するための専用コードであり、これから紹介するlen()やほかにもinput()print()など数多くの種類があります。

またメソッドは「オブジェクトに紐づいた関数」と定義されるものです。現時点では深く考えず、「関数の一種」と捉えて問題ありません。

関数はLesson3で、メソッドはLesson5で詳細に学習します。

len()関数|文字列の長さを取得する

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

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

text = "Hello, Python!" # 文字列型の変数textの宣言
length = len(text)      # len()関数で変数textの文字数を取得し、変数lengthに代入
print(length)           # 変数lengthを出力

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

14

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

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

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

text = "Python Programming" # 文字列型の変数textの宣言

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

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

Python

replace()メソッドとin演算子|文字列の検索と置換

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

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

text = "I love Python programming" # 文字列型の変数textの宣言

# 文字列の置換
new_text = text.replace("Python", "Java") # replaceメソッドPythonをJavaに置き換える
print(new_text)

# 文字列に特定の単語が含まれているかをチェック
contains_python = "Python" in text # in演算子で変数text内にPythonの文字があるか確認し、結果を変数contains_pythonに代入
print(contains_python)

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

I love Java programming
True

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

upper()メソッドとlower()メソッド|文字列の大文字・小文字変換

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

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

text = "Hello, World!" # 文字列型の変数textの宣言

# 大文字に変換
upper_text = text.upper() # upper()メソッドで変数textの中身を大文字に変換し、変数upper_textに代入
print(upper_text)

# 小文字に変換
lower_text = text.lower()# lower()メソッドで変数textの中身を子文字に変換し、変数lower_textに代入
print(lower_text)

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

HELLO, WORLD!
hello, world!

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

startswith()メソッドとendswith()メソッド|文字列の一致確認

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

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

text = "Python is fun!" # 文字列型の変数textの宣言

# 'Python'で始まっているか?
starts_with_python = text.startswith("Python") # startswith()メソッドで開始文字をチェックし、結果を代入
print(starts_with_python)

# 'fun!'で終わっているか?
ends_with_fun = text.endswith("boring!") # endswith()メソッドで終了文字をチェックし、結果を代入
print(ends_with_fun)

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

True
False

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

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

まとめ|文字列操作の基礎を押さえてできること

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

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

これらの知識を身につけることで、単純な表示にとどまらず、入力されたテキストを加工したり、条件に応じた文章を生成したりと、より柔軟なプログラムを作成できるようになります。

学んだ内容を積み重ねていくことで、扱えるデータの幅も広がり、プログラミングの可能性が一段と広がります。

今回得た理解を自信につなげ、次の学習へと進んでいきましょう。

Q
サイト改善アンケート|ご意見をお聞かせください(1分で終わります)

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。

1分だけ、ご協力いただけますと幸いです。

【Python】サイト改善アンケート
1.このサイトをどのように活用していますか?また、今後どのように活用したいですか?
5.気になっているサービス・商品があれば教えてください。
(複数選択可)
※ 特定の記事に関する内容の場合は、記事番号(Python Lesson〇-〇)をご記入願います。

練習問題|文字列操作を使ってみよう

この記事で学習した「文字列操作」を復習する練習問題に挑戦しましょう。

問題|挨拶文の作成と文字列検索

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

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

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

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

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

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

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

【ヒント】難しいと感じる人だけ見よう

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

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

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

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

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

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

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

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

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

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

解答例|挨拶文で学ぶ文字列操作コード

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

Q
正解コード
# 文字列の宣言
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}")

解答例の解説|挨拶文で学ぶ文字列操作コードの考え方

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

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

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいPython学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson1-3 四則演算をしよう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson1-5 フォーマット文字列を使いこなそう

文字列操作の疑問解消|FAQと用語のまとめ

初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。

理解を深めたいときや、ふと疑問に感じたときに役立ててください。

FAQ|文字列操作に関するよくある質問

Q
Q1. 文字列の一部だけを取り出すにはどうすればいい?

スライス記法(例:text[0:3])を使うと、任意の範囲の文字列を抽出できます。text[:3]text[2:]なども使えます。

Q
Q2. in演算子で文字列検索できるって本当?

はい、"abc" in "abcdef" のように使えば、部分文字列が含まれているかを調べられます。True または False が返ります。

Q
Q3. 日本語も文字列として扱えるの?

もちろん可能です。PythonはUTF-8を標準でサポートしているため、日本語も問題なく操作できます。

Python用語集|文字列操作に関する用語一覧

今回の記事で出てきた用語・関数などを一覧で紹介します。

このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。

Python用語定義・使い方の概要
文字列テキストデータを表すPythonのデータ型で、文字の並びを扱う
len() 関数文字列やリストなどの長さ(要素数)を取得するための組み込み関数
スライス文字列やリストの一部を取り出す記法。範囲指定により部分抽出ができる
replace() メソッド文字列中の指定した部分を、別の文字列に置き換えるためのメソッド
in 演算子値がシーケンスに含まれているかを調べるための演算子(例:文字列内の部分文字列検索)
upper()文字列内のすべての英字を大文字に変換するメソッド
lower()文字列内のすべての英字を小文字に変換するメソッド
startswith() メソッド文字列が特定の文字列で始まっているかを判定するメソッド
endswith() メソッド文字列が特定の文字列で終わっているかを判定するメソッド
記事URLをコピーしました