[Python] いろいろな方法で"Hello World!"を出力してみる [squeeze]

今年は、”プログラミング言語 Python“を学ぶことを一つの目標として考えてます。
Pythonと少女「なんで?」と問われたら、そこにPythonがあるから。

なんとなく、Perl/ruby/bash に飽きたのがきっかけで、そろそろ Pythonかなーというのと、次の点を面白いな、と感じたからです。

  1. インデントが不正確だと実行されない
  2. 今年は巳年

さて、そんなこんなで、プログラムの初歩の初歩、”Hello World!” を表示してみました。

今回も毎度の如く、”Debian” は [squeeze] 上の Python 2.6.6 による実行結果です。
とは言え、特別なことはしていないので、別環境、3.x 環境でも問題は無いでしょう。

Python prompt内で対話形式で”Hello World!”

pythonコマンドを実行します。標準で入っていないと言うことはないはずですが、エラーが出た人は aptitude あたりでがんばってください。

python のプロンプトが表示されたら、おもむろに「print “Hello World!”」と入力して Enter してみましょう。

$ 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()

((プロンプトからの脱出は、”quit()”か、Ctrl-Dを入力することで終了します))

おめでとうございます!! あなたは Pythonマスターの称号を得ました。

Python インタプリタで”Hello World!”

マスターが次に目指すは、世界一の称号です。世界一へ向けての第一歩を踏み出しましょう。まずは、実行ファイル形式にして、Python インタプリタを利用して、いかにもコマンドっぽく対応しましょう。
ここまでくれば、天下は見えてきます。もう一踏ん張りです。

まず、次のファイルを作って、chmod +x hello.py しておいてください。
[hello.py]

#!/usr/bin/env python
print "Hello World!"

1行目はおまじないです。今は何も考えずに入れておきましょう。

さて、実行します。

$ ./hello.py
Hello World!

おめでとうございます!! なにごともなく表示されましたね。すばらしい、ファンタスティックです!! あなたに敵はいません、ですが、もっと高みを望みましょう。我々を前に神は降伏するはずです。

標準入力でパイプされて”Hello World!”

折角だから、「標準入力」と「パイプ」という、unixコマンドならではの機能を使ってみましょう。
まさに unixの鬼とも言える最強の機能です。AT&Tも土下座します。

では、次のファイルを作ってみましょう。chmod +xを忘れずに。
[cat.py]

#!/usr/bin/env python
import sys

for line in sys.stdin:
    print line,

次に、echo を使って、”Hello World!” をこいつに送ってみましょう。何が起きるか…? こいつぁヤバイですよ。神があなたに助けを求めるでしょう。

$ echo 'Hello World!' | ./cat.py
Hello World!

やってやりました。echo の出力を奪い去って、我々が作った Pythonスクリプトが地上を制覇しました。しかし、この程度で満足しては、貴方の名も廃ることでしょう。

最後に、こいつをやってみましょう。

utf-8で”Hello World!”

何も言わず、次を実行してみなさい。

何が起きるかは、君自身の目で確かめることだ、大事なことは「経験」する事だ。さぁ、やってみろ、神は君の手に( ゚д゚ )クワッ!!

[hw.py]

#!/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')

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です