Hatena::ブログ(Diary)

オボエガキ用

2013-03-30

Python導入

| 09:35

Information

versiondatememo
0.12013/03/30first creation
1.02013/03/31基本的な項目まとめ完了

TODO

  1. クラス設計関連
  2. グラフィック

概要

Pythonをやることになったので、とりあえずの使い方まとめ

環境

Ubuntu 12.04

Python 2.7.3

はろわ〜

#!/usr/bin/python
# coding: utf-8
# pythonコマンドのパスと、文字コードは環境により適宜変更すること
print "Hello world"


四則演算

C/Java等とほぼ一緒。

冪乗(**)が存在する。

インクリメント(++)/デクリメント(--)が存在しない。

ループ等のインデント

y = 0
for x in range(0, 5):
  y += x
print y  

とすると 10 が表示されるが、

y = 0
for x in range(0, 5):
  y += x
  print y  

とすると

0
1
3
6
10

が表示される。

ループ等のスコープは、インデントで判断するので注意。


型宣言

型宣言なし

動的型付けなので、明示的に小数点を用いたい場合は、小数で初期化する。

y = 0.0
for x in range(0, 5):
  y += x
print y        

とすると 10.0が表示される。


文字列整形

print "%d"%200	
print "(%d, %d)"%(10, 20)

注意点としては、引数を2つ以上取るようなフォーマットは、配列を渡す必要があるという事。

他の変換タイプについては、以下を参照の事。

3.6.2 文字列フォーマット操作


ループ

while文は存在する。

基本的にforeach文。

C言語ライクなfor文は無い。

for/while-else文が存在する。

for i in range(2):
  print i
else:
  print "else i=%d"%i   	      

とすると

0
1
else i=1		

とelse文が表示されてしまう。

for i in range(2):
  print i
  if i == 1:
    break;		  
else:
  print "else i=%d"%i   	      		  

break文を入れるとelse文は実行されない。

while文も同様。


条件文

if〜elif〜else文。

ループと併用する場合はelse文のインデントに注意!!

コメント

  1. """〜"""の改行有り文字列囲み。
  2. #以降の文字列がコメント(1行)

関数

defで定義。

returnで戻り値

C言語のvoidに近いかなぁ。。。

データ構造

リスト

Haskellライクな初期化方法([1..3] = {1,2,3}みたいなのは無理)

内包表記は存在する。([x**2 for x in range(3)] とかができる)

Matlabライクなスライスも存在。

list=[x**2 for x in range(5)]
for x in list[:3]:
    print x
for x in list[3:]:
    print x

とすると

# 前者(1〜3番目を取得)
0
1
4		      
# 後者(3番目より後を取得)
9
16		      

となる。


filter(), map(), reduce()が存在。使い方は下記参照。

Python の map, filter, reduce とリスト内包表記 | すぐに忘れる脳みそのためのメモ

タプル

リストとだいたい同じような事ができるが、違いとしてはタプル内の要素は変更不可能である事。

タプルとリストの違い - Python学習日記

辞書(Key, Value)

Javaで言うところのMapクラス。

map={'a':1, 'b':2, 'c':3}
for k,v in map.iteritems():
    print k, v

上記のようにiteritems()を使うと、Javaで言うところのentrySet()ができる。


参考

リスト - Python入門

5. データ構造

トラックバック - http://d.hatena.ne.jp/killingout_n-bita/20130330/1364603740
リンク元
Connection: close