最近のトラックバック

最近のコメント

2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« ノートシールのグループ化 | トップページ | WinPythonのWinPython Powershell Prompt.exeを起動するとエラーがでる »

2016年9月26日 (月)

Python 2とPython 3の非互換

Python 2とPython 3の非互換の最たるものは、ググった時の検索結果だと思う。

文字・文字列を数値に変換するとき、さくっと引っかかるのがint()とlong()を使って変換するやり方。
けど、これはPython 2の書き方。
Python 3になってlongに統一(加えてlongがintにリネーム -- チュートリアルによると)されたので、long()を使うとlongなんて存在しねーというエラーとなってしまう。
また、range()やmap()の戻り値も、Python 2だとリストなんだけど、Python 3だとオブジェクト/Objectが戻り値。
なので、自分の出力結果がネットの記事と違うぞ??と混乱してしまう。
配列の値を文字列から数値に一括変換しようとして
たとえば
>>> a=["1", "2", "3"]
>>> map(int, a)
<map object at 0x000000C2F1D287B8>
>>>
あれ?[1, 2, 3]になるんじゃないの?
Python 3だと
>>> list(map(int, a))
[1, 2, 3]
こう書かないといけないと・・・。

« ノートシールのグループ化 | トップページ | WinPythonのWinPython Powershell Prompt.exeを起動するとエラーがでる »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/181317/64261912

この記事へのトラックバック一覧です: Python 2とPython 3の非互換:

« ノートシールのグループ化 | トップページ | WinPythonのWinPython Powershell Prompt.exeを起動するとエラーがでる »