ーーーーーーーーーーーーーーーーーーーーー2026年3月1日執筆ーーーーーーーーーーーーーーーーー
- Pythonでの文字列とinput() 関数、これから始めようとする初心者向けに分かりやすく解説|Python入門(4)のPodcast
- はじめに
- Pythonにおける「文字列」の基本
- 自由度が飛躍した「f-strings」の新時代(Python 3.12〜)
- 安全性を極める「t-strings」の登場(Python 3.14〜)
- input() 関数の基本と型変換の罠
- 複数の入力をスマートに処理する
- エラーを防ぐ!バリデーションと例外処理
- セキュリティの鉄則:eval() は絶対に使わない
- 最新の学習環境:進化したREPL(Python 3.13〜)
- まとめ:これからのPython学習に向けて
- はじめに
- 文字列の表現
- input()関数
- 文字列を数値のように計算には使えない!
- 文字列の連結
- 文字列の繰り返し
- 文字列の数値化と数値の文字列化
- 文字列のメソッド
- インデックスを利用した文字列の抽出
- おわりに
Pythonでの文字列とinput() 関数、これから始めようとする初心者向けに分かりやすく解説|Python入門(4)のPodcast
下記のPodcastは、Geminiで作成しました。
はじめに
プログラミングを学び始める際、避けて通れないのが「データの扱い」です。中でも、名前やメッセージといった「文字」の情報を扱う「文字列」と、ユーザーからの入力を受け取る「input() 関数」は、対話的なプログラムを作るための基本中の基本です。
Pythonは、そのシンプルで読みやすい文法から、2026年現在も初心者に最も推奨される言語の一つです 。特に近年のアップデート(Python 3.12から最新の3.14にかけて)では、文字列の扱いがより便利に、そして安全に進化しました 。本稿では、最新の標準に基づいた文字列の操作方法と、入力を安全に処理するテクニックを詳しく解説します。
Pythonにおける「文字列」の基本
Pythonでは、テキストデータを「文字列(str型)」として扱います。文字列は、シングルクォート(')またはダブルクォート(")で囲むことで定義します 。
引用符の使い分け
一般的にはどちらを使っても構いませんが、文脈に応じて使い分けるのが「Pythonらしい(Pythonic)」書き方です 。
- 通常の文字列:
'Hello'や"Python" - 文中に引用符を含む場合:
"It's Python"のように外側をダブルクォートにすれば、内側のシングルクォートをそのまま記述できます 。 - 複数行にわたる文字列:
"""(トリプルクォート)を使えば、改行を含んだ長い文章をそのまま保持できます 。
初心者が知っておくべき「不変性(Immutable)」
Pythonの文字列には「一度作成したら、その内容を直接書き換えることはできない」という重要な性質があります。これを**不変性(イミュータブル)**と呼びます 。
例えば、text = "Python" という文字列の最初の1文字を J に書き換えようとして text = "J" と記述すると、エラーが発生します 。内容を変更したい場合は、一部を切り取って新しい文字列を作る必要があります。この性質により、データの安全性が保たれ、メモリの効率的な管理が可能になっています 。


自由度が飛躍した「f-strings」の新時代(Python 3.12〜)
変数や計算結果を文字列の中に埋め込む際、最も便利なのが「f-strings(フォーマット済み文字列リテラル)」です。Python 3.12での大幅な強化(PEP 701)により、初心者が陥りやすかった制限がほぼ撤廃されました 。
3.12以降で可能になったこと
以前のバージョンでは「f-stringsの中で同じ引用符は使えない」「バックスラッシュが書けない」といった細かなルールがありましたが、現在は以下のように自由に書けます 。
Python
name = "Andy"
# 外側と同じダブルクォートを内側の辞書キーなどで再利用可能
print(f"User: {{"name": name}}")
# 文字列内での改行コード(\n)の直接使用も解禁
songs =
print(f"Playlist:\n{"\n".join(songs)}")
これにより、複雑な処理を文字列の中で直感的に記述できるようになり、コードの可読性が大幅に向上しました 。


安全性を極める「t-strings」の登場(Python 3.14〜)
2025年にリリースされたPython 3.14では、新たに**t-strings(テンプレート文字列リテラル)**が導入されました 。
f-stringsとの違い
見た目は f"..." に似ていますが、t"..." と記述すると、即座に文字列になるのではなく「Templateオブジェクト」という特別なデータになります 。
- f-strings: その場で評価され、普通の文字列になる。
- t-strings: 「元の文章」と「埋め込まれた変数」を別々に保持する 。
この機能の最大の目的はセキュリティです。Web開発やデータベース操作において、ユーザーが入力した悪意のある文字列(インジェクション攻撃)を自動的に無害化(サニタイズ)する処理を組み込みやすくなっています 。これからの時代のPython開発では、このt-stringsが安全なコーディングの鍵となります 。
input() 関数の基本と型変換の罠
input() 関数は、プログラムの実行を一時停止し、ユーザーがキーボードから文字を入力するのを待つ関数です 。
全ては「文字列」として受け取られる
初心者が最も間違えやすいポイントは、数字を入力しても「文字列」として受け取られるという点です 。
Python
age = input("年齢を入れてください: ")
# ユーザーが 25 と入力しても、中身は "25"(文字)です
数値として扱うための「型変換」
計算に使いたい場合は、int()(整数)や float()(小数)を使って変換する必要があります 。
Python
age_num = int(input("年齢を入力: ")) # 整数に変換
print(f"来年は {age_num + 1} 歳ですね")
変換を忘れると、数値と文字列を計算しようとして TypeError というエラーが発生するため注意が必要です 。


複数の入力をスマートに処理する
1行の入力から複数のデータ(例:スペース区切りの数字など)を取り出すには、split() メソッドと map() 関数を組み合わせます 。
Python
# 「10 20」と入力された場合
a, b = map(int, input("2つの数字をスペース区切りで入力: ").split())
この書き方は、効率的なデータ処理や競技プログラミングなどでも頻繁に使われる定番のテクニックです 。
エラーを防ぐ!バリデーションと例外処理
ユーザーが常に正しい入力をするとは限りません。数値を期待しているところに「あ」と入力されると、プログラムは止まってしまいます 。これを防ぐのがエラーハンドリングです。
try-except構文の活用
エラーが発生しそうな箇所を try で囲み、エラー時の対応を except に記述します 。
Python
try:
num = int(input("数値を入力してください: "))
except ValueError:
print("エラー:数字以外が入力されました。")
バリデーション(入力チェック)
isdigit() メソッドを使えば、入力が数字のみで構成されているか事前に確認することもできます 。
Python
user_input = input("1〜100の数字を入力: ")
if user_input.isdigit() and 1 <= int(user_input) <= 100:
print("正しい入力です")
else:
print("不正な入力です")
このように「もしもの事態」を想定してコードを書くことが、安定したプログラムへの第一歩です 。
セキュリティの鉄則:eval() は絶対に使わない
初心者の学習サイトなどで、入力をそのまま計算式として評価する eval() 関数が紹介されることがありますが、これは非常に危険です 。
ユーザーが悪意を持って __import__('os').system('rm -rf /') のような命令を入力した場合、PC内の大事なファイルを全て消去されるリスクがあります 。ユーザーからの入力には常に「罠」があるかもしれないと考え、安全な型変換やt-strings、あるいはライブラリの適切な機能を使いましょう 。
最新の学習環境:進化したREPL(Python 3.13〜)
Python 3.13および3.14では、対話型シェル(REPL)も大幅に進化しました 。
- 構文ハイライト: 入力中のコードに色がつき、ミスを見つけやすくなりました 。
- 賢いエラーメッセージ:
whilleと打ち間違えると「Did you mean 'while'?(whileのことですか?)」と修正案を提示してくれます 。 - ヘルプの統合: F1キーでヘルプを呼び出したり、F2キーで履歴を確認したりできるようになり、初心者でも手軽に試行錯誤できるようになりました 。


まとめ:これからのPython学習に向けて
文字列と入力の扱いは、単なるデータの表示にとどまりません。最新のPythonは、より柔軟な表現(f-strings)と、より高い安全性(t-strings)を両立させる方向へ進化しています 。
- **文字列の特性(不変性)**を理解する。
- f-stringsを活用してコードを短く、読みやすく保つ。
- input() の戻り値は常に文字列であることを忘れず、適切に型変換を行う。
- 例外処理とバリデーションで「壊れないプログラム」を目指す。
これらの基礎をしっかり固めることで、AI開発やWebアプリ制作といった高度なステップへ自信を持って進むことができます。
参考資料
- What’s New In Python 3.14、https://docs.python.org/ja/3/whatsnew/3.14.html
- What’s New In Python 3.13、https://docs.python.org/ja/3/whatsnew/3.13.html
- What’s New In Python 3.12: PEP 701、https://docs.python.org/ja/3/whatsnew/3.12.html
- Python 3.13: Cool New Features for You to Try、https://realpython.com/python313-new-features/
- Python 3.13 New Features、https://www.geeksforgeeks.org/python/python-3-13-new-features/
- Exploring Python T-Strings、https://realpython.com/python-t-strings/
- Pythonにt文字列(template strings)が追加されます、https://note.com/shibats/n/n8008ac01573d
- Pythonのinput関数の基本定義と使い方、https://ai-kenkyujo.com/programming/language/python/input/
- Python 文字列の不変性(Immutable)に関する分かりやすい説明、https://it-biz.online/python/string/
- Python Security Cheat Sheet for Developers、https://www.aptori.com/blog/python-security-cheat-sheet-for-developers
- Best Practices for Secure Coding、https://www.securityjourney.com/post/best-practices-for-secure-coding
- Python Basics: The Complete Beginners Guide to Programming in 2026、https://medium.com/@pcodesdev/python-basics-the-complete-beginners-guide-to-programming-in-2026-a0fedf8fe6f7
- Python input function best practices 2026 beginner、https://www.datacamp.com/tutorial/python-user-input
- How to Receive User Input in Python、https://www.digitalocean.com/community/tutorials/how-to-receive-user-input-python
- Python 組み込み型 str メソッド公式ドキュメント、https://docs.python.org/ja/3/library/stdtypes.html#string-methods
- Python input関数 複数入力とsplit関数の応用、https://craft-gogo.com/python-input/
- Python文字列操作の基本と抽出方法、https://ai-kenkyujo.com/programming/language/python/moziretsu-tyusyutu/
- if文を活用した入力値のチェック方法、https://bizroad-svc.com/blog/python-if/
- The 7 Most Common Mistakes Beginner Python Developers Make、https://blog.stackademic.com/the-7-most-common-mistakes-beginner-python-developers-make-f32ee2b6a298
- Types of Errors in Python Cheatsheet、https://last9.io/blog/types-of-errors-in-python/
- Python 初心者 input関数 使い方 注意点 型変換 2026、https://qiita.com/tags/python
- Pythonでの重要なコンセプトを解説 ミュータブルとイミュータブル、https://beginner-engineers.com/mutable-immutable/
- Pythonにおけるmutable(可変)とimmutable(不変)の違い、https://qiita.com/zhao-xy/items/600d26773787cc7a0856
- Python Security Best Practices for 2025、https://www.augustinfotech.com/blogs/python-security-best-practices-for-2025/
- Python String.format()、https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-strings/cheatsheet
- Python Best Practices for More Pythonic Code、https://realpython.com/tutorials/best-practices/
- Python input() function basics、https://www.hackerearth.com/practice/python/getting-started/input-and-output/tutorial/
- Common Causes of Python Errors、https://betterstack.com/community/guides/scaling-python/python-errors/
- Python 3.12 release highlights、https://docs.python.org/3/whatsnew/3.12.html
- Python 1行に複数の入力値を取得し出力する、https://www.tento-net.com/learning-materials/python/grammar-summary/gs-02_input_print/
- 一行に複数の入力を取得する方法、https://dtnavi.tcdigital.jp/cat_system/language_115/
- Input Validation and Sanitization Techniques、https://www.datacamp.com/tutorial/python-user-input
- Understanding Variables: Your Code's Memory Boxes、https://medium.com/@pcodesdev/python-basics-the-complete-beginners-guide-to-programming-in-2026-a0fedf8fe6f7
- Code Style and Formatting Guide、https://gist.github.com/minimaxir/10b780671ee5d695b4369b987413b38f
- What's New in Python 3.15、https://docs.python.org/ja/dev/whatsnew/index.html
- string — Common string operations、https://docs.python.org/3/library/string.html
- Python Input using the input() function、https://www.hackerearth.com/practice/python/getting-started/input-and-output/tutorial/
- Escaping Characters in Python、https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-strings/cheatsheet
- input()とsplit()を使った入力の処理、https://dtnavi.tcdigital.jp/cat_system/language_115/
- Latest recommendations for Python Security in 2025、https://www.augustinfotech.com/blogs/python-security-best-practices-for-2025/
- Awesome T-Strings for Python 3.14、https://github.com/t-strings/awesome-t-strings
- TypeError in Python and how to avoid it、https://betterstack.com/community/guides/scaling-python/python-errors/
- 9 Best Practices for Secure Coding、https://www.securityjourney.com/post/best-practices-for-secure-coding
- Avoid Executing Dynamically Generated Code、https://www.aptori.com/blog/python-security-cheat-sheet-for-developers
- Five key guidelines for Python input、https://www.digitalocean.com/community/tutorials/how-to-receive-user-input-python
- Types of Errors in Python Cheatsheet、https://last9.io/blog/types-of-errors-in-python/
- Write More Pythonic Code、https://realpython.com/tutorials/best-practices/
- Common Mistakes Beginner Python Developers Make、https://blog.stackademic.com/the-7-most-common-mistakes-beginner-python-developers-make-f32ee2b6a298
- Not Understanding Mutable vs. Immutable Types、https://medium.com/@aniketpatare2006/10-common-python-mistakes-beginners-make-and-how-to-fix-them-c62618d326fe
- Python strings tutorial for beginners、https://www.reddit.com/r/coding/comments/18zkdys/python_strings_tutorial_for_beginners_explained/
ーーーーーーーーーーーーーーーーーーーーー2022年5月16日執筆ーーーーーーーーーーーーーーーーー
はじめに
前回のPython入門(3)では、Pythonの基礎として簡単な四則演算、データ型、変数、コメント、関数、モジュールとImport文について学びました。
Python入門の第四弾として、Pythonでの文字列とinput() 関数について紹介します。
この記事を読むと次の疑問について知ることができます。
それでは、Pythonでの文字列とinput() 関数をこれから始めようとする初心者向けに分かりやすく解説していきます。
文字列の表現
今までは、コンピュータが本来扱える数値のみしか利用していませんでしたが、文章のような文字列も当然、Pythonでも扱えます。
文字列を扱う場合に、Pythonではシングルクォート「’」やダブルクォート「”」で文字列(単一文字を含む)を挟むことで、Pythonでは文字列として扱うことができます。


シングルクォート「’」でもダブルクォート「”」のどちらで挟んでも良いことになっています。
例えば、文字列内に「”」が使われていて、それを含めた文字列を表現する場合に全体の文字列を「’」で挟み、逆に、文字列内に「’」が使われていて、それを含めた文字列を表現する場合に全体の文字列を「”」で挟みます。
Google Colabでは、「”」で文字列を使っても、結果は「’」で表現されます。


場合場合で判断して利用すれば良いのですが、できる限り統一して使うほうが良いでしょう。
input()関数
Pythonではinput()関数を使うと、好きな文字列をキーボードから入力することができます。
下記のGoogle Colabの画面は、実行するとinput()の行の次にキーボードからの入力欄が表示され、それに例えば「パイナップル」と入力してリターンをすれば、文字列「パイナップル」が出力されます。


また、input('好きな文字を入力してください。')とすれば、入力を促すようにすることもできます。


文字列を数値のように計算には使えない!
数値を文字列とした場合、数値の四則演算のようなことはできません。


上述のGoogle Colabで数値の文字列の四則演算で実行結果が正常に終了したものが1つだけあります。
それが「⁺」です。
しかし、良く見ると数値の場合と異なり加算ではなく、数値文字列の連結がなされています。
ExcelなどのVBAでは、「&」に相当します。
文字列の連結
Pythonでは、文字列を連結する場合は「⁺」を使います。
しかし、数値と文字列が混入した連結をしようとするとエラーとなります。


文字列の繰り返し
文字列を繰り返す場合は、「*」を使うことができます。


文字列の数値化と数値の文字列化
文字列を数値化するには、int()関数を利用します。
文字列をint()関数で数値化すれば、四則演算もエラーとなりません。
逆に、数値を文字列化するにはstr()関数を利用します。
文字列と数値を連結したい場合は数値をstr()関数で数値を文字列化して連結をすれば、エラーとなりません。


文字列のメソッド
文字列には、文字列と合わせて利用できる関数があり、これら関数のことを文字列操作メソッドと呼びます。
文字列.文字列操作関数
例) 'Hellow Python'.upper() # 文字列内の文字を全角文字とするメソッド
'Hellow Python'.lower() # 文字列内の文字を半角文字とするメソッド

これら文字列変換メソッド以外にも、文字列を検索(find()、文字列の最初のの文字を0として、何番目に検索文字列があるかを調べる)、置換(replace())、分割(split()するなどのメソッドがあります。


インデックスを利用した文字列の抽出
Pythonでは、インデックスを利用すると文字列を色々な形で抽出ができます。
文字列(開始位置、終了位置+1、取り出す文字間隔) : 開始位置から終了位置の間の文字を抽出
ここで、
開始位置:最初の文字を0とし、1を加えていった抽出する文字の最初の位置、又は最後の文字を-1とし、-1を加えていった抽出する文字の最初の位置
終了位置:最初の文字を0とし、1を加えていった抽出する文字の最後の位置、又は最後の文字を-1とし、-1を加えていった抽出する文字の最後の位置

おわりに
如何だったでしょうか?
文字列の表現、input()関数、文字列を数値のように計算には使えない!、文字列の連結、文字列の繰り返し、文字列の数値化と数値の文字列化、文字列のメソッド、インデックスを利用した文字列の抽出などについて解説してきました。
この記事を読みながらPythonを学んでもらえればと思います。
次をお楽しみに?
以上です。



コメント