ホームページ  >  記事  >  バックエンド開発  >  raw_input() と input() の違いの詳細な説明

raw_input() と input() の違いの詳細な説明

高洛峰
高洛峰オリジナル
2017-03-16 17:13:581585ブラウズ

raw_input と input はどちらも python の組み込み 関数 であり、コンソールから入力を読み取ることでユーザーと対話します。しかし、それらの機能は同じではありません。ここでは、使用法の違いを示す 2 つの例を示します。

例 1

Python 2.7.5 (default, Nov 18 2015, 16:26:36) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> raw_input_A = raw_input("raw_input: ")
raw_input: PythonTab.com
>>> print raw_input_A 
PythonTab.com
>>> input_A = input("Input: ")
Input: PythonTab.com
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'PythonTab' is not defined
>>> 
>>> input_A = input("Input: ")
Input: "PythonTab.com"
>>> print input_A
PythonTab.com
>>>

例 2

Python 2.7.5 (default, Nov 18 2015, 16:26:36) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> raw_input_B = raw_input("raw_input: ")
raw_input: 2015
>>> type(raw_input_B)
<type &#39;str&#39;>
>>> input_B = input("input: ")
input: 2015
>>> type(input_B)
<type &#39;int&#39;>
>>>

例 1 ご覧のとおり、両方の関数は strings を受け取ることができますが、 raw_input() はコンソールから入力を直接読み取ります (任意のタイプの入力を受け取ることができます)。 input() に関しては、正当な Python expression を読み取れることを望んでいます。つまり、文字列を入力するとき それを引用符で囲む必要があります。そうしないと、SyntaxError が発生します。

例 2 ご覧のとおり、 raw_input() はすべての入力を文字列として扱い、文字列型を返します。また、input() は純粋な数値入力を処理する際に独自の特性を持ち、同時に入力された数値の型 (int、

float) を返します。例 1 に示すように、input() は正当な Python 式を受け入れることができます。例: input(1 + 3) は int 型の 4 を返します。

Python マニュアル を参照して、次のことを確認してください:

input([prompt])

eval(raw_input(prompt)) と同等

input() は、基本的に raw_input() を呼び出した直後に raw_input() を使用して実装されます。 eval() 関数を呼び出す前に、式を引数として input() に渡すこともでき、式が評価されて返されます。

しかし、組み込み関数には次のような文があります: ユーザーからの一般的な入力には raw_input() 関数の使用を検討してください。

input() に特別なニーズがない限り、一般的にそれを推奨します raw_input() を使用しますユーザーと対話するため。

以上がraw_input() と input() の違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。