Pythonことはじめ #3

Python No Comments »

関数を書いてみる

#!C:\\Python25\\python.exe
# -*- coding: utf-8 -*-

def Say(x):
    return x * 2

print "Content-type:text/html\\n\\n"
print "<!DOCTYPE html PUBLIC \\"-//W3C//DTD XHTML 1.0 Strict//EN\\" \\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\\">"
print "<html xmlns=\\"http://www.w3.org/1999/xhtml\\" xml:lang=\\"ja\\" lang=\\"ja\\">"
print "<head>"
print "<meta http-equiv=\\"Content-Type\\" content=\\"text/html;charset=utf-8\\" />"
print "<title>Pythonことはじめ</title>"
print "</head>"
print "<body>"
print "<p>"

print Say("ho!")
print Say("こんにちは")

print "</p>"
print "</body>"
print "</html>"

ho!ho! こんにちはこんにちは
と表示された。おk。

繰り返しの回数を指定できるようにする

パラメータを2つ渡すように変更。

def Say(x,y):
    return x * y

として

print Say("ho!",2)
print Say("こんにちは",3)

ho!ho! こんにちはこんにちはこんにちは
と表示された。

2つ目のパラメータとして文字列を渡してみる

こんにちは * fugaa とか、数字じゃないものを掛けるとどうなるかな。

print Say("ho!",2)
print Say("こんにちは","fuga")

としてみたら

ho!ho!
だけが表示された。

関数を使って変数をいじってみる

def Say(x,y):
    return x * y

def Say(x,y):
    word = x * y
    return word

と変えてみた。表示されるものに特に変化なし。

word = ""

def Say(x,y):
    word = x * y

として

Say("hello",2)
print word

でhellohelloと表示されるのを期待したけど

None
と表示される

word = ""

def Say(x,y):
    global word
    word = x * y

とすることでhellohelloが表示されるようになった。
グローバル変数ってやつですね。グローバル変数はあんまり使わない方がいいよ、ですかね。

Pythonことはじめ #2

Python No Comments »

importしてみる

import 使ってみた。

#!C:\\Python25\\python.exe
# -*- coding: utf-8 -*-
print "Content-type:text-html\\n\\n"
import Hello

Hello.py を同じ階層に作成。(内容は下記)

print "KonNichiHa!"

ブラウザから確認。おk。

importするファイルがない時、以降の処理は行われない

#!C:\\Python25\\python.exe
# -*- coding: utf-8 -*-
print "Content-type:text-html\\n\\n"
print "dododo\\n"
import Hello
print "yoyoyo\\n"

と変更して

Hello.py を同じ階層から別の場所へ移動。
それでも普通に見える。Hello.pycを同じ階層から別の場所へ移動。

dododoだけが表示されてる。
importするファイルがない場合、以降の処理が行われないらしい。

importされるファイルに日本語が含まれる場合

Hello.py を元の階層に戻して

print "こんにちは"

と変更。

dododoだけが表示されてる。
Hello.pyにも

# -*- coding: utf-8 -*-

を足してあげる必要があるかな。

Hello.py

# -*- coding: utf-8 -*-
print "こんにちは"

dododo こんにちは yoyoyo と表示された。よかった。
importされるファイルの方で日本語を使うときはそのファイルでエンコードの指定が必要なのかな。

ただ、下記のように前後のdododo/yoyoyoを消すと文字化けた。

#!C:\\Python25\\python.exe
# -*- coding: utf-8 -*-
print "Content-type:text-html\\n\\n"
import Hello

ブラウザが文字コード判定を間違えてるのかしら。
Fxの場合:表示>文字エンコーディング>Unicode (UTF-8)
すると"こんにちは"がちゃんと表示される。ふーむ。。

Pythonことはじめ

Python No Comments »

PythonのWindowsPCへのインストールなどずいぶん前にやったのでやり方など忘れちゃってるけど、覚えてる範囲で書く。

  1. Pythonダウンロード、インストール(リンク省略)
  2. 環境変数に追加(追加方法省略)
  3. xamppのhttpd.conf の cgi なんとかってところに .cgi の後に 半角スペース+.pyを書き足し(xamppじゃなくても同様のことが必要だと思う)
  4. apache再起動
  5. サンプルファイル作成
  6. ブラウザから確認→ふむOK

と、最後うまくいく予定だったんだけどいかなかった。

サンプルはこんな。
python.exeをどこに置いたかによって1行目変わってくる。

#!C:\\Python25\\python.exe
print "Hello"

malformed header from script. Bad header
とか言われる。。

Perlでも同じようなことやったことあったので

print "Hello"

よりも前に

print "Content-type:text/html\\n\\n"

を入れる。

#!C:\\Python25\\python.exe
print "Content-type:text/html\\n\\n"
print "Hello"

おk。Helloがブラウザから確認できた。
次はHTML書いてみたくなる。

#!C:\\Python25\\python.exe
print "Content-type:text/html\\n\\n"
print "<html>\\n"
print "<head>\\n"
print "<title>あああ</title>\\n"
print "</head>\\n"
print "<body>\\n"
print "Hello\\n"
print "</body>\\n"
print "</html>\\n"

Premature end of script headers
とか言われる。

コードを削ったりして試してみると

print "<title>あああ</title>\\n"

がNGぽい。

print "<title>aaa</title>\\n"

に変更すると解消。

日本語がダメだったらしい。

# -*- coding: utf-8 -*-

#!C:\\Python25\\python.exe

の次の行に入れると(サンプルファイルはUTF-8で作ってる)

print "<title>あああ</title>\\n"

でもエラー出ないようになった。

しかし、Pythonと関係ないけど、WordPressでコレ書いてるけど
¥(←これの半角の方)が、¥¥と書かないと表示されない。
¥¥nと書かないと¥nと表示できないのは非常にめんどくさい。
プラグインあるんだろうな。探さなきゃな。

はてなとかどうなのかな。スーパープレっ!!!とか言っとけばおkなのかな。

Powered by WordPress | WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in