スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | page top↑
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↑
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。