Python勉強中 7
set型についてメモ。
要素を追加したり削除したりできる、変更可能なオブジェクト。
重複した要素を登録する事ができない。
>>> s = set([1,2,3,2,4,5,1,4]) >>> print(s) {1, 2, 3, 4, 5}
Python 3では以下のようにset型のデータを作る事ができる。
>>> s = {1,2,3,2,4,5,1,4} >>> print(s) {1, 2, 3, 4, 5}
たぶん。
Python勉強中 6
Python3.0では辞書のメソッドhas_key()は使えない模様。
>>> rssitem = {"title":"Pythonを勉強中", ... "link":"http://host.to/blog/entry", ... "dc:date":"2006-05-16T13:24:04Z"} >>> rssitem.has_key('dc:creator') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'dict' object has no attribute 'has_key'
あーあ。
なので以下のように書く。
>>> 'dc:creator' in rssitem False >>> 'dc:date' in rssitem True
とりあえずチャプター2までは読了しました。
Python勉強中 5
文字列から検索文字列を探して、インデックスを返してくれる関数。
ちなみにインデックスは0からはじまる。
>>> x = "1234" >>> x.index('23') 1 >>> x.find("23") 1
同じジャン!
と思ったら、見つからなかったときの動きが違うらしい。
index()の場合はエラー、find()の場合は−1が返ってくる。
>>> x.index('9') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found >>> x.find('9') -1
なるほど。
参考リンク:http://www.python.jp/doc/release/lib/string-methods.html
Python勉強中 4
「Python3.0では数値の精度を保とうとせず、より正確な答えを返すように仕様が変更されています。」とあったので、ちょっと実験。
>>> x = 1 / 3 >>> print(x) 0.333333333333 >>> print(x * 3) 1.0
んー、まあ1を3で割った後に3で掛けるから1でいいんだけどさ。
なんで0.333333333333の3倍が1なのだろうか?
>>> 0.333333333333 * 3 0.9999999999990001
普通に計算したらこうなった。
うーん、、、謎が多いな。
<追記>
最後の計算にprint()を使ってなかったのでそれも試してみた。
>>> print(0.333333333333 * 3) 0.999999999999
これなら納得がいく。
どうやらprint()を使うか使わないかでも結果が変わってくるらしい。
Python勉強中 3
タートルで図形を描くプログラムを試してみる。
from turtle import * forward(100) left(120) forward(100) left(120) forward(100) for i in range(6): forward(100) right(60)
これってファイルに書いて実行した場合は、プログラムが終了した途端に図形も消えてしまうのだけれど、表示させ続けるにはどうしたらいいんだろう。
ちょっと考えて最後に一文追加した。
input()
こうすれば入力待ち状態になるので図形が消えない!
これでいいのかどうかは分からない。
Python勉強中 2
簡単なことからはじめてみよう。
とりあえず文字列の変数を宣言して表示してみる。
>>> name = "kaz.z.z.ya" >>> print name File "<stdin>", line 1 print name ^ SyntaxError: invalid syntax
おおっ!いきなりエラー。
なんでだよっ、と思っていろいろ調べたらこういう事らしい。
>>> print(name)
kaz.z.z.ya
Pythonのバージョンが3.0以降の場合は組み込み関数になっているんですね。
ちなみに僕のバージョンは、
Python 3.1 (r31:73574, Jun 26 2009, 20:21:35) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
3.1のようです。
バージョンによる仕様の違いに気よつける、と。