今年は、”プログラミング言語 Python“を学ぶことを一つの目標として考えてます。
「なんで?」と問われたら、そこにPythonがあるから。
なんとなく、Perl/ruby/bash に飽きたのがきっかけで、そろそろ Pythonかなーというのと、次の点を面白いな、と感じたからです。
- インデントが不正確だと実行されない
- 今年は巳年
さて、そんなこんなで、プログラムの初歩の初歩、”Hello World!” を表示してみました。
今回も毎度の如く、”Debian” は [squeeze] 上の Python 2.6.6 による実行結果です。
とは言え、特別なことはしていないので、別環境、3.x 環境でも問題は無いでしょう。
目次
Python prompt内で対話形式で”Hello World!”
pythonコマンドを実行します。標準で入っていないと言うことはないはずですが、エラーが出た人は aptitude あたりでがんばってください。
python のプロンプトが表示されたら、おもむろに「print “Hello World!”」と入力して Enter してみましょう。
1 2 3 4 5 6 7 8 9 | $ python --version Python 2.6.6 $ python Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print "Hello World!" Hello World! >>> quit() |
[I]プロンプトからの脱出は、”quit()”か、Ctrl-Dを入力することで終了します
おめでとうございます!! あなたは Pythonマスターの称号を得ました。
Python インタプリタで”Hello World!”
マスターが次に目指すは、世界一の称号です。世界一へ向けての第一歩を踏み出しましょう。まずは、実行ファイル形式にして、Python インタプリタを利用して、いかにもコマンドっぽく対応しましょう。
ここまでくれば、天下は見えてきます。もう一踏ん張りです。
まず、次のファイルを作って、chmod +x hello.py しておいてください。
[hello.py]
1 2 | #!/usr/bin/env python print "Hello World!" |
1行目はおまじないです。今は何も考えずに入れておきましょう。
さて、実行します。
1 2 | $ ./hello.py Hello World! |
おめでとうございます!! なにごともなく表示されましたね。すばらしい、ファンタスティックです!! あなたに敵はいません、ですが、もっと高みを望みましょう。我々を前に神は降伏するはずです。
標準入力でパイプされて”Hello World!”
折角だから、「標準入力」と「パイプ」という、unixコマンドならではの機能を使ってみましょう。
まさに unixの鬼とも言える最強の機能です。AT&Tも土下座します。
では、次のファイルを作ってみましょう。chmod +xを忘れずに。
[cat.py]
1 2 3 4 5 | #!/usr/bin/env python import sys for line in sys.stdin: print line, |
次に、echo を使って、”Hello World!” をこいつに送ってみましょう。何が起きるか…? こいつぁヤバイですよ。神があなたに助けを求めるでしょう。
1 2 | $ echo 'Hello World!' | ./cat.py Hello World! |
やってやりました。echo の出力を奪い去って、我々が作った Pythonスクリプトが地上を制覇しました。しかし、この程度で満足しては、貴方の名も廃ることでしょう。
最後に、こいつをやってみましょう。
utf-8で”Hello World!”
何も言わず、次を実行してみなさい。
何が起きるかは、君自身の目で確かめることだ、大事なことは「経験」する事だ。さぁ、やってみろ、神は君の手に( ゚д゚ )クワッ!!
[hw.py]
1 2 3 4 5 6 7 8 | #!/usr/bin/env python import sys import codecs sys.stdout = codecs.getwriter('UTF_8')(sys.stdout) print '\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'.decode('UTF-8') |
References
↑I | プロンプトからの脱出は、”quit()”か、Ctrl-Dを入力することで終了します |
---|