Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのraw_input()関数とは?役割とinput()との違いをわかりやすく解説

raw_input()関数の基本的な動作

Python 2におけるraw_input()関数は、ユーザーに対してプロンプト(入力を促すメッセージ)を表示し、キーボードから入力されたデータを受け取り、その内容を文字列(str型)として返す関数です。引数は省略可能で、raw_input([arg])のように文字列を渡すと、それがそのままプロンプトとして画面に表示されます。

以下は典型的な使用例です。

name = raw_input("What is your name? ")
print "Hello, %s." % name

このコードを実行すると、まず「What is your name? 」というプロンプトが表示され、ユーザーが名前を入力すると、その値が変数nameに文字列として格納され、挨拶文が出力されます。

input()関数との違い

raw_input()とよく似た関数にinput()がありますが、両者の動作には重要な違いがあります。input()はユーザーの入力をPythonの式として評価(解釈・実行)しようとします。つまり、入力された内容をそのままコードとして処理するため、予期しないエラーやセキュリティ上のリスクを招く可能性があります。

一方、raw_input()は入力を常に「ただの文字列」として受け取るため、安全で挙動が予測しやすくなります。そのため、実践的にはinput()の使用は避け、raw_input()で文字列を受け取った上で、必要に応じて自前のパース処理や型変換(例:int()float()による変換)を行うのがベストプラクティスとされています。

Python 3での扱いに注意

なお、この仕様はPython 2までのものである点に注意が必要です。Python 3ではraw_input()は廃止され、代わりにinput()raw_input()と同じ動作(入力を常に文字列として返す)をするように変更されました。Python 3で新しいコードを書く場合は、単純にinput()を使用すれば問題ありません。

  1. Pythonの名前空間とは?仕組みとスコープの関係をわかりやすく解説

    Pythonにおける名前空間の基本名前空間(namespace)とは、変数名とオブジェクトを対応付ける仕組みであり、スコープ(名前の有効範囲)を実現するための基盤となるものです。Pythonでは、パッケージ、モジュール、クラス、関数、メソッドなど、それぞれが独自の「名前空間」を持ち、その中で変数名が解決されます。名前空間の生成と破棄関数やモジュール、パッケージが評価されて実行が始まると、そのための新しい名前空間が作成されます。これは「評価コンテキスト」と捉えると理解しやすいでしょう。そして、関数などの実行が終了すると、その名前空間は破棄され、そこに含まれていた変数も一緒に消えます。さらに、ロー

  2. Pythonの「%」演算子とは?文字列フォーマットの基本と使い方を解説

    Pythonの「%」演算子の役割 Pythonにおける「%(パーセント)」は、文字列フォーマット演算子(補間演算子)として機能します。「format % values」という形式で記述すると、フォーマット文字列内の変換指定子が、values側の要素によって置き換えられます。この仕組みは、C言語のsprintf()関数とよく似ています。 基本的な使い方:文字列の埋め込み 最もシンプルな例は、文字列の中に変数の値を埋め込むケースです。 >>> lang = Python >>> print %s is awesome! % lang Python is awe