foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

python で hello world

また Python の復習。

対話モードを使ってみる

Python には対話モードというのがあって、いちいちテキストファイルにソースを書かなくてもいいらしい。
試しにに実行してみる。

> python
>>> print 'hello'
hello

ってな感じで動いた。

セミコロンはいらない?

Perl とか PHP やってるとセミコロン書かないとエラーだよね。
でも、Python は書いても書かなくてもいい。
これはいいわー。

カッコはつけない?

print って関数(メソッド)っぽいでしょ?
だからカッコいるんじゃないかなぁと思ったら、
これも付けても付けなくても動いた。
Ruby はカッコは付けなくてもいいんだけど、
Python も同じなのかな?

対話モードはやめてファイルに

対話モードだとせっかくかいたコードが消えちゃうので、
やっぱりファイルに書く。
拡張子は .py にしておくのですよ。
これは何て読むんだろ?
「ぱい?」「ぴぃ?」
ま、いっか。

インデントがとっても大事

Python が他の言語と大きく違うところ。
それはインデントに意味があるってことです。
試しに↓なコードを書いてみよう。

indent_error.py
print 1
  print 2  ※ちょっとずらしてみる。

なんと、ちょっとずれてるだけでエラーになっちゃいます。
桁位置が重要って聞くと、昔の言語を思い出しちゃうけど
それとはちょと違う…違うと信じながら、おべんきょ。

日本語を表示してみる

ファイルに以下を書いてみる。

test.py
print 'こんにちは'
SyntaxError: Non-ASCII character '\xe3' ... どーたらこーたら

なんかエラー出たよ…。
なんで?なんで?
やっぱり日本語版 Python じゃないと日本語ダメダメ?

ネットから別の Python を落としてきたりしたけどダメ。
入門書の目次から日本語に関する所を読んでみる。

日本語は u"〜" と書くといいでしょう。

よし、今度はどうだ?

test.py
print u'こんにちは'

やっぱダメだ…。
ってかエラーを読むと SyntaxError ってなってる。
コード自体の書き方とかじゃなさそう。

何か設定があるのかも。
調べてみたら、こんなん出ました。

ソースコードShift_JISの文字列を含む場合は、
ファイルの先頭に
# -*- coding:sjis -*-
と記述すればメッセージは出なくなります。
http://www.python.jp/pipermail/python-ml-jp/2004-January/002669.html

もー、そういうことなら教えてよ〜。
私はソースファイルは utf8 で書いてるので、上記の sjis を utf8 にしてみる。

# -*- coding:utf8 -*-
test.py
print u'こんにちは'

できたー!