fc2ブログ
Python2.6のprintは中途半端
細かいことなので、きっと困る人はいないと思うのですが、気がついてしまったので書いておきます。
Pythonは3系からprintが文ではなくて式になります。
今まで、

>>> print 'keroro'
keroro

と出来ていた物が、できなくなって、

>>> print('keroro')
keroro

としなければならなくなるわけですが、3系への橋渡しである2.6系ではどちらも通るようになっています。
printって関数になったんだ。と思うと実は落とし穴が・・・
printに戻り値はありませんが、受け取ってみたいと思ってしまう年頃もあるでしょう。

>>> no_value = print('keroro')
File "", line 1
no_value = print('keroro')
^
SyntaxError: invalid syntax

まさかのエラー。
そう、実はデフォルトでは関数ではありません。

>>> from __future__ import print_function
>>> no_value = print('keroro')
keroro
>>> no_value
>>>

とすれば、無事に戻り値を受け取れました。
というか、本当はprintの関数としての機能を発揮できるか出来ないかという話の方が素直だとは思います。

>>> print('c','c','b',sep='-')
File "", line 1
print('c','c','b',sep='-')
^
SyntaxError: invalid syntax
>>> from __future__ import print_function
>>> print('c','c','b',sep='-')
c-c-b

ま、どっちでもいいんですが。。。
まだまだ、たのしいです。Python。
スポンサーサイト



テーマ:プログラミング - ジャンル:コンピュータ

【2009/05/15 22:52】 | Python | トラックバック(0) | コメント(0) | page top↑
| ホーム |