shindos.Lab

プログラミング/音楽/書道をやってます。 いろいろ考えたり実験したことを書きます。たぶん。

pythonめも

Pythonをさわりはじめたのでメモ

特徴

  • インデント
  • 動的型付け
  • コンテナ(配列/ハッシュ?):リスト/タプル/辞書(連想配列)/集合(hashset?)
  • 全てオブジェクト:public & virtual
  • 先頭アンスコでprivate
  • 標準ライブラリ付属

繰り返し

for foo in [1, 2, 3]:
  print foo # 1, 2, 3

ブロックはインデントで表現

コメントアウト

  """
  aaaa
  aaa
  '"""

複数行はインデントに気をつけないといけないらしい。

if

if foo == bar:
  # do something
elif hoge == fuga:
  # do something
else:
  # do something

論理演算子

  • and
  • or
  • not

比較演算子

なんと複数条件可なので、直感的でよい。

1 < a < 5 # 1 < a and a < 5

the三項演算子的なのはない。残念。書くなら下記のように。 - in JavaScript

var x = (foo == bar) ? 10 : 20; 
x = 10 if foo == bar else 20

関数

def add(foo, bar)
  return foo + bar

add(2, 3) # 5

return しないとNoneが返る。Noneはnullという認識で良いのかしら。

クラス

JSと違って、クラス定義もちゃんと用意されてる。

class testClass:
    def __init__(self):                  # コンストラクタ
        self.name = ""

    def getName(self):                   # getName()メソッド
        return self.name

    def setName(self, name):             # setName()メソッド
        self.name = name

foo = testClass()                            
foo.setName("bar")              
print foo.getName()                        # bar

シングルクォーテーションとダブルクォーテーション

どっちでもいいみたい。 ただ、何個かサンプルをみたり、ドキュメントを見た感じだと、 シングルではなくダブルの公式っぽい。 JSではシングルを使うことが多いので、気をつけておく。

改めて調べてみたらGoogleはシングルクォーテーションのがcommonとしていた。

Python Strings  |  Google for Education  |  Google Developers

String literals can be enclosed by either double or single quotes, although single quotes are more commonly used.

こういうのはGoogleに従っておけば問題ないので、シングルを使う。

name == "main"

サンプルコードで時々でてきた、以下の記述が気になった。

def foo
    # do something
if __name__ = "__main__": 
    # do something

name変数というのは、pythonインタプリタがコードを実行する前に定義する特別な変数のひとつ。読んでいるコードがメインのときはname変数に値"main"がセットされる。コードが他モジュールからインポートされている場合は、nameにそのモジュール名がセットされる。main関数を定義できると思えばよいか。

だいたい勝手がわかったので、がりがり書いてく。

墨づくり

まずはなんか書いてみよう。ということで、さっき作った墨を記録用にあげてみます。 使用したのは、松煙煤、膠、水道水。

まずは煤0.1ccに対して、水1ccをまぜたもの。

f:id:shindos:20150719190317j:plain

膠で定着させていないので、乾いたあと、もろもろと煤が落ちます。

次は逆パターン。煤0.1ccに対して膠を0.2cc。

f:id:shindos:20150719190645j:plain

わりとコテコテになりました。 ちなみに半紙はにじみを確認しやすいように裏を使っているのですが、まったくにじみません。こてこて。

まずは両極端を確認して、間にベストがある方針でいろいろ配合していきます。

いろいろやった結果がこちら。画面中央の縦2つが面白いマチエールになってます。

f:id:shindos:20150719191146j:plain

煤0.1ccに対して膠0.4cc、水1ccです。 今回はかなりミニマルな配合で試したので、この程度ですが、10倍くらいの規模でやってみたら、もっといろんな表現ができそう。

その時はちょっと膠を多めにすればよいかな。 筆跡をがっつりのこしつつも、あまった煤がにじみとして字の周りを彩るような感じにしたいです。 1字ずつ丁寧に墨をつけて書いていけば、にじみを使って字同士の連絡がとれそうですね。

墨溜まりとかすれのまざった表現も楽しいですが、そんな表現もおもしろそうです。

乾いたあとの定着が難しそう。フィキサチフでいけるかしら。

ブログ書くべきかいなか

ブログ書くべきかいなか。

 

めんどくさそうだし、めんどくさいし、書くのめんどくさいのだけど、

書いたほうがアウトプットできて、自分のポートフォリオ的に管理できるので、

ブログを書きたいという気持ちはある。

 

公開範囲は一般だけど、あんまりひと目を気にせず記録したいことや、

やったこと、考えたことをちょくちょく載せていこう。

 

 もう書いてるし。