Python導入

Information

version date memo
0.1 2013/03/30 first creation
1.0 2013/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つ以上取るようなフォーマットは、配列を渡す必要があるという事。
他の変換タイプについては、以下を参照の事。
http://docs.python.jp/2.5/lib/typesseq-strings.html


ループ

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()ができる。


透過設定

Information

version date memo
0.1 2013/03/30 first creation

概要

ターミナルを透過させたーい

環境

Ubuntu 12.04 (LXDE)

インストール

以下をインストール

  1. xcompmgr
  2. transset-df

transset-dfがパッケージに無いと怒られる場合、以下のサイトでパッケージ取得
Ubuntu – Error
注意) transsetコマンドだと透過アプリケーションの指定が上手く行かない

おまけ

Guakeターミナルをインストールする。
以下のパッケージをインストール

  1. guake

よくわからないが、何故か自動起動設定になってしまった。
LXDEの場合、以下のファイルを削除することによって、自動起動を解除。
/etc/xdg/autostart/guake.desktop

透過設定

透過設定スクリプト
xcompmgr -n &
guake &
sleep 1
transset-df --no-regex -n guake 0.8



この内容を記述したスクリプトファイルを作成し、これでguakeを起動するようにする。