Python 2のraw_input()とinput()

1861 ワード

どちらもpythonの組み込み関数であり、コンソールの入力を読み取ることでユーザーとインタラクティブになります.しかし、彼らの機能は違います.二つの小例を挙げる.

>>> raw_input_A = raw_input("raw_input: ")
raw_input: abc
 >>> input_A = input("Input: ")
Input: abc

Traceback (most recent call last):
 File "", line 1, in 
  input_A = input("Input: ")
 File "", line 1, in 
NameError: name 'abc' is not defined
 >>> input_A = input("Input: ")
Input: "abc"
 >>>

 >>> raw_input_B = raw_input("raw_input: ")
raw_input: 123
 >>> type(raw_input_B)
 
>>> input_B = input("input: ")
input: 123
>>> type(input_B)

>>>

例1は、両方の関数が文字列を受信できるがraw_Input()コンソールの入力を直接読み取ります(任意のタイプの入力は受信できます).一方、input()では、文字列を入力するときに引用符で囲まなければならない合法的なpython式を読み取ることができます.そうしないと、SyntaxErrorが発生します.
例2:raw_input()は、すべての入力を文字列として扱い、文字列タイプを返します.一方、input()は、純数値入力に対して独自の特性を有し、入力された数値のタイプ(int,float)を返す.同時に、例1では、input()は合法的なpython式を受け入れることができ、例えば、input(1+3)はint型の4を返すことが知られている.
Built-in Functionsを確認すると、次のことがわかります.

input([prompt])

  Equivalent to eval(raw_input(prompt)) 

input()は本質的にraw_を使用しますinput()で実現されたのは、raw_を呼び出しただけです.input()の後にeval()関数を呼び出すので、式をinput()のパラメータとして使用し、式の値を計算して返すこともできます.
しかし、Built-in Functionsには、Consider using the raw_という言葉が書かれています.input() function for general input from users.
Input()に特に必要でない限り、raw_を推奨します.input()は、ユーザーと対話します.
-------
今日ある会社の筆記試験に参加した時、私はrawを使いました.input()は整数(文字列を返す)を受け入れ、1行の文で整数データを返す.カップ、当時input()という関数が使えるかどうかはよく分かりませんでした!ここに記録する.