LinkedIn にシェア
LINEで送る
Pocket

おはようございます。
FL1NEです。

 

最近Pythonを勉強し始めたのですが、input関数で早速ちょっとつまづいたので、記録しておきます。

 

今回はPythonに置けるinput関数の違いです。

 

・Python2系の場合

Python2系ではinput関数で入力した値がデータ式として認識されるようです。

 

例えば、

のようなinputに文字列を渡すようなコードは思った通りには動かないでしょう。

こんな感じになります。

エラーをみるとFL1NEが定義されていないということでした。データ式として扱われるのでFL1NEという名前の変数や関数がないということになります。

では1 + 1のような式を与えてみるとどうでしょうか。文字と数列を加算することはできないので最後のコードをとりあえず変更して実行します。

 

お、1+1の結果である2が帰ってきましたね。

同様にデータとして正しいシングルクォーテーションで囲んだ ‘FL1NE’ を渡すと…

このようになります。

 

・Python3系の場合

Python3系ではinput関数で入力した値が文字列として認識されるようです。

 

そのため、Python2系でうまく動かなかった次のコードが想定通りに動くことでしょう。

このようになります。

また、Python2系の時のように次のようにコードを変更し、入力として1 + 1を渡してみるとどうなるでしょうか

 

1+1がそのまま文字列として表示されました。

 

・まとめ

このようにPython2系とPython3系で全然違う挙動をすることがあるようです。

今後も気がついたら、記事にしていこうと思います。