やっほー!国内のAI狂いだよ!✨
第3回へようこそ!今回は私の一番好きな機能、「文字列操作(スライス)」をやるよ。
Pythonが「神言語」って言われる理由の一つがコレ。文字をスパッと切ったり、ペタッと貼ったり、まるでパズルみたいに扱えるの。
ここを覚えると「私、プログラミングしてる!」感が一気に増すから、楽しみにしててね!🧩🥺
公式の「ここがわかりにくい」:イミュータブルって何語?
公式ドキュメントには、こんな難しい言葉がサラッと書いてあるよ。
Python の文字列は immutable (変更不能) です。
「い、いみゅーたぶる…?」
これ、要するに「一度作った文字列は、後から書き換えられない(ロックがかかってる)」って意味なんだね。
「書き換えられないなら不便じゃん!」って思うかもしれないけど、その「硬さ」のおかげで安全に使えるの。詳しくは後で実験してみよう!
1. 文字列の作り方:引用符(クォート)のルール
Pythonで文字を扱うときは、'(シングルクォート)か "(ダブルクォート)で囲むよ。
基本はどっちを使っても同じ!
🐍 サンプルコードを見る(クリックで開閉)
# どっちも同じ意味!
print('Hello Python')
print("Hello Python")
# 文章の中に ' を入れたいときは、外側を " にすると便利!
print("I'm an AI fanatic.") # 内側の ' が文字として認識される
# 逆に " を入れたいときは、外側を ' にする
print('He said "Python is God".')
Hello Python
Hello Python
I’m an AI fanatic.
He said “Python is God”.
ちょっと便利な「おまじない」
- 改行させたい時:
\nと書くと改行されるよ(エスケープシーケンス)。 - 改行させたくない時(raw文字列):
r'...'と書くと、\nもただの文字として扱われるよ。
※Windowsのファイルパス(C:\new\textとか)を書くときに超便利!
2. 文字の結合:足し算と掛け算ができる!?
数字だけじゃなくて、文字も計算できちゃうのがPythonの可愛いところ😍
+(プラス): 文字同士をくっつける(連結)。*(アスタリスク): 文字を繰り返す(反復)。
🐍 サンプルコードを見る(クリックで開閉)
# 足し算(連結)
>>> 'Py' + 'thon'
'Python'
# 掛け算(繰り返し)← これすごくない!?
>>> 'わっしょい' * 3
'わっしょいわっしょいわっしょい'
# 変数とも組み合わせられるよ
>>> prefix = 'Py'
>>> prefix + 'thon'
'Python'
‘Python’
‘わっしょいわっしょいわっしょい’
‘Python’
3. 【最重要】スライス:文字を自在に切り出そう!
ここが試験の山場!⛰️
文字列の中の特定の文字を取り出す方法を覚えよう。
(1) インデックス(何番目?)
Python(というか多くの言語)は、数字を「0」から数えるよ!
Python という文字なら、P は「0番目」、y は「1番目」になるんだ。
さらに、マイナスをつけると「後ろから」数えられるの!便利すぎ!
| 文字 | P | y | t | h | o | n |
|---|---|---|---|---|---|---|
| 正のインデックス | 0 | 1 | 2 | 3 | 4 | 5 |
| 負のインデックス | -6 | -5 | -4 | -3 | -2 | -1 |
🐍 サンプルコードを見る(クリックで開閉)
word = 'Python'
# 0番目(最初の文字)
>>> word[0]
'P'
# 5番目(最後の文字)
>>> word[5]
'n'
# -1番目(後ろから1番目=最後の文字)
>>> word[-1]
'n'
# -2番目(後ろから2番目)
>>> word[-2]
'o'
(2) スライス(範囲指定)
「ここからここまで欲しい!」って時は、コロン : を使って範囲を指定するよ。
これをスライスと呼ぶんだね。
word[開始:終了] のとき、「開始」は含まれるけど、「終了」は含まれない(未満)!
word[0:2] と書いたら、「0番目から、2番目の手前まで」という意味。
つまり 0番目と1番目だけが取れるの。「2番目」は入らないんだよ!ここ絶対テストに出るから!🥺
🐍 サンプルコードを見る(クリックで開閉)
word = 'Python'
# 0番目から2番目の手前まで(0, 1)
>>> word[0:2]
'Py'
# 2番目から5番目の手前まで(2, 3, 4)
>>> word[2:5]
'tho'
# 省略記法(超便利!)
# 最初から2番目の手前まで
>>> word[:2]
'Py'
# 4番目から最後まで
>>> word[4:]
'on'
# 全部コピー
>>> word[:]
'Python'
(コード内にコメントとして記載)
4. 鉄の掟:文字列はイミュータブル!
最初に言った「書き換え不可(イミュータブル)」の意味を実験してみよう。
インデックスを使って、「一部分だけ書き換える」ことはできないんだ。
🐍 エラーになる実験(クリックで開閉)
word = 'Python'
# 0番目の 'P' を 'J' に変えたい!...けど
>>> word[0] = 'J'
Traceback (most recent call last):
...
TypeError: 'str' object does not support item assignment
TypeError(型エラー)発生!
「strオブジェクトは代入をサポートしてないよ!」って怒られるね。
もし変えたいなら、書き換えるんじゃなくて、スライスと連結を使って「新しい文字列を作る」のが正解!
>>> 'J' + word[1:]
'Jython'
試験に出る!要注意ポイント
今回の範囲で、Python 3 エンジニア認定基礎試験によく出るポイントをまとめたよ!📝
① インデックスの範囲外エラー
Python は6文字だよね(0〜5番目)。
ここで word[42] みたいに存在しない番号を指定すると、IndexError になるよ。
- IndexError: 「その番号の席(インデックス)はないよ!」という範囲外エラー。
- TypeError: 「書き換え禁止(イミュータブル)なのに代入しようとした!」などのルール違反。
試験ではエラー名も聞かれるから区別しておこう!ちなみにスライスの場合は、範囲外を指定してもエラーにならず、うまく処理してくれる(空文字になったりする)よ。
② len() 関数とインデックスのズレ
文字列の長さ(文字数)を数えるには、組み込み関数の len() を使うよ。
日本語もちゃんと1文字として数えてくれるから安心してね。
>>> len('Python')
6
>>> len('あいうえお')
5
ここが初心者が一番ハマる罠!
Python は6文字だけど、最後の文字 n のインデックスは 5 だよね。つまり、「最後のインデックス」=「長さ – 1」 になるんだ。
len() の結果をそのままインデックスに使うと、1つはみ出して IndexError になっちゃうから気をつけて!🥺
スライスの「終了インデックスは含まない」っていうルール、最初は全然直感に合わなくて苦労したよ〜😭
でも、「
word[:2] と word[2:] を足すと、元の word に戻る」って気づいてから、「あ、そのために境界線で切ってるのか!」って納得できたよ。パズルのピースみたいにピッタリ合うように出来てるんだね✨
理解度チェック!ミニクイズ
今日の勉強お疲れ様!最後に、ここまでの内容がちゃんと身についたか確認してみよう。
全問正解できたら、この章は卒業だよ!🎓
s = 'Python' のとき、s[1:4] の結果は?
解説:
スライス [開始:終了] は「終了インデックスを含まない」のがルール!
1番目(‘y’)、2番目(‘t’)、3番目(‘h’) までが取得されるよ。4番目(‘o’)は入らないから注意してね。
s = 'AI' のとき、s[0] = 'B' を実行するとどうなる?
解説:
Pythonの文字列はイミュータブル(書き換え禁止)だよ。
もし文字を変えたいなら、s = 'B' + s[1:] みたいに新しい文字列を作って代入しよう。
s = 'ABCDE' のとき、s[:2] + s[2:] の結果は?
解説:
s[:2] は「最初から2番目の手前まで (‘AB’)」、s[2:] は「2番目から最後まで (‘CDE’)」。
これらを足すと、パズルのピースが合うように元の文字列に戻るんだ。これはスライスの美しい性質の一つだよ!✨
まとめ:次回への引き
今回は「文字列」について解説したよ!
文字を分解したりくっつけたり、プログラミングっぽいことできて楽しかったかな?
次回は、データを整理整頓するための最強ツール!
テーマは「データを箱に並べる:リストの基本」だよ。
文字列のスライスが分かれば、リストもすぐにマスターできるはず。次回もお楽しみに!👋✨
出典: Python公式チュートリアル
Copyright © 2001-2026 Python Software Foundation. Licensed under the PSF License.






