Python | 文字列リテラル

Python
スポンサーリンク

Pythonの文字列の基本

はじめての人向けに、Pythonの「文字列」をかみ砕いて説明します。手を動かして実感できる小さな例題もたくさん載せます。


文字列ってなに?

  • 定義:
    「文字の並び」のこと。英数字、日本語、記号などをまとめたデータです。
  • 書き方:
    文字列は必ず '(シングルクォーテーション)か "(ダブルクォーテーション)で囲みます。
message = "こんにちは"
name = 'Taro'
Python
  • 数値との違い:
    囲んでいない 123 は数値、囲んだ "123" は文字列(数字の文字)です。
print(123 + 1)      # 124(数値の足し算)
print("123" + "1")  # 1231(文字列の結合)
Python

クォーテーションの使い分けとエスケープ

  • 中にクォーテーションを入れたいとき:
    外側と内側を違う種類にするか、バックスラッシュ \ を使います(エスケープ)。
# 外側をダブルにして内側にシングル
text1 = "Tom's toy"

# 外側をシングルにして内側にダブル
text2 = '彼は"こんにちは"と言った'

# エスケープして書く(\' や \")
text3 = 'Tom\'s toy'
text4 = "彼は\"こんにちは\"と言った"
Python
  • よくあるエラー例:
    'Tom's' のように途中で閉じてしまうと「文法エラー」になります。

画面に表示する(print)

  • 基本:
    文字列を表示したいときは print() を使います。
print("Hello, world!")
print('こんにちは、Python!')
Python
  • 複数を並べる:
    カンマで区切るとスペース付きで並べて表示されます。
print("名前:", "Taro")  # 名前: Taro
Python

文字列をつなぐ・繰り返す

  • 結合(+):
    文字列同士をつなぎます。
first = "Hello"
second = "Python"
print(first + " " + second)  # Hello Python
Python
  • 繰り返し():*
    同じ文字列を指定回数繰り返します。
print("ha" * 3)  # hahaha
Python
  • 型に注意:
    数値はそのままでは結合できません。文字列に変換します。
age = 20
print("年齢は" + str(age) + "歳")  # 年齢は20歳
Python

文字の位置や切り出し(インデックス・スライス)

  • インデックス(位置指定):
    左から0、1、2…と数えます。右から数えるときは -1、-2… です。
s = "Python"
print(s[0])   # P
print(s[-1])  # n
Python
  • スライス(区間切り出し):
    s[開始:終了] で、開始以上・終了未満の部分を取り出します。
s = "Programming"
print(s[0:5])    # Progr
print(s[3:])     # gramming(3文字目から最後まで)
print(s[:7])     # Program(最初から6文字目まで)
print(s[::2])    # Pormig(2文字おき)
Python
  • 長さを知る:
    文字数は len() で確認できます。
print(len("こんにちは"))  # 5
Python

よく使う文字列メソッド

  • 大文字・小文字:
    英字の大小を変えるときに使います。
s = "Hello Python"
print(s.upper())  # HELLO PYTHON
print(s.lower())  # hello python
Python
  • 前後の空白削除:
    入力時など不要な空白を削除します。
name = "  Taro  "
print(name.strip())   # Taro
print(name.lstrip())  # 左だけ削除
print(name.rstrip())  # 右だけ削除
Python
  • 置き換え:
    特定の文字や語句を別のものに差し替えます。
text = "I like Java"
print(text.replace("Java", "Python"))  # I like Python
Python
  • 分割・結合:
    文字列を区切ってリストにしたり、リストをつなげて文字列にします。
items = "apple,banana,orange"
parts = items.split(",")
print(parts)  # ['apple', 'banana', 'orange']

joined = "-".join(parts)
print(joined)  # apple-banana-orange
Python
  • 検索:
    部分文字列の位置を調べます(見つからないと -1)。
s = "hello world"
print(s.find("world"))  # 6
print(s.find("Python")) # -1
Python
  • 含まれているか(in演算子):
    True/False で答えます。
print("py" in "python")  # True
print("cat" in "python") # False
Python

文字列は「変更不可」ってどういう意味?

  • 不変(イミュータブル):
    文字列の中身は直接書き換えられません。新しい文字列を作り直します。
s = "cat"
# s[0] = "b"  # これはエラー
s = "b" + s[1:]  # 置き換えたいなら新しく作る
print(s)  # bat
Python

入力を使った例と便利なフォーマット

  • ユーザー入力:
    input() は文字列として受け取ります。
name = input("あなたの名前は?: ")
print("こんにちは、" + name + "さん!")
Python
  • f文字列(フォーマット):
    変数を埋め込みたいときに読みやすく書けます。
age = 20
print(f"年齢は{age}歳です")  # 年齢は20歳です
price = 1234.567
print(f"税込価格: {price:.2f}円")  # 小数2桁
Python

よくあるつまずきポイント

  • クォーテーションの閉じ忘れ:
    片方だけ閉じるとエラー。色分けされたエディタで確認すると見つけやすい。
  • 型の混在(文字列と数値の結合):
    "合計は" + 3 はエラー。str(3) にする。
  • 改行やタブの扱い:
    \n は改行、\t はタブ。文字列の中で動きます。
print("行1\n行2")  # 改行
print("A\tB")     # タブ
Python

ミニ練習問題

練習1: 結合して挨拶文を作る

  • 課題:
    first_name = "Taro"last_name = "Yamada" を使って「Yamada Taroさん、ようこそ!」を表示してください。
  • ヒント:
    + とスペース " "f文字列 どちらでもOK。

練習2: 入力を整える

  • 課題:
    ユーザーに果物名を入力してもらい、前後の空白を削除して、大文字にして表示してください。
  • ヒント:
    strip()upper()

練習3: 一部だけ取り出す

  • 課題:
    文字列 "Programming" から "gram" を取り出して表示してください。
  • ヒント:
    find() で開始位置を探して、スライスで切り出し。

解答例

練習1: 結合して挨拶文を作る

課題:
first_name = "Taro"last_name = "Yamada" を使って「Yamada Taroさん、ようこそ!」を表示する。

解答例:

first_name = "Taro"
last_name = "Yamada"

# 方法1: + で結合
print(last_name + " " + first_name + "さん、ようこそ!")

# 方法2: f文字列(おすすめ)
print(f"{last_name} {first_name}さん、ようこそ!")
Python

練習2: 入力を整える

課題:
ユーザーに果物名を入力してもらい、前後の空白を削除して、大文字にして表示する。

解答例:

fruit = input("好きな果物を入力してください: ")

# strip() で前後の空白を削除、upper() で大文字に変換
cleaned = fruit.strip().upper()

print("入力された果物:", cleaned)
Python

実行例:

好きな果物を入力してください:   apple
入力された果物: APPLE

練習3: 一部だけ取り出す

課題:
文字列 "Programming" から "gram" を取り出して表示する。

解答例:

s = "Programming"

# 方法1: インデックスを直接指定
print(s[3:7])  # gram

# 方法2: find() を使って位置を探す
pos = s.find("gram")
if pos != -1:
    print(s[pos:pos+4])  # gram
Python

まとめ

  • 文字列の結合: + や f文字列でOK
  • 入力の整形: strip()upper() が便利
  • 部分取り出し: インデックスや find() を活用

まとめと次の一歩

  • まとめ:
    文字列は ' または " で囲う、結合は +、繰り返しは *、位置指定は []、部分取り出しは [:]。よく使うメソッド(strip, replace, split, join, find)を覚えると一気に楽になります。
  • 次の一歩:
    ファイル入出力で文字列を読み書きする、正規表現で高度な検索・置換をする、JSONやCSVの文字列を扱う、などに進むと応用力がつきます。
タイトルとURLをコピーしました