世界一言語トークス by Python

Preview:

Citation preview

世界一言語トークスby PythonYoshiori SHOJI

2009年12月12日土曜日

世界一を目指す理由は何か2位ではだめなのか

2009年12月12日土曜日

2009年12月12日土曜日

私の事好き?

2009年12月12日土曜日

好きだよ

2009年12月12日土曜日

世界で一番好きでいてくれる?

2009年12月12日土曜日

世界一を目指す理由は何か

2位ではだめなのか

2009年12月12日土曜日

!?

2009年12月12日土曜日

2009年12月12日土曜日

name:$>

2009年12月12日土曜日

Yoshiori SHOJI

2009年12月12日土曜日

email:$>

2009年12月12日土曜日

yoshiori@gmail.com

2009年12月12日土曜日

site:$>

2009年12月12日土曜日

http://yoshiori.org/

2009年12月12日土曜日

company:$>

2009年12月12日土曜日

DWANGO Co.,Ltd.

2009年12月12日土曜日

2009年12月12日土曜日

yP t h o n2009年12月12日土曜日

yP t h o n2009年12月12日土曜日

yoshiori $

2009年12月12日土曜日

import this

2009年12月12日土曜日

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex.

Complex is better than complicated. Flat is better than nested.

Sparse is better than dense. Readability counts.

Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently.

Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious

way to do it. Although that way may not be obvious at first unless

you're Dutch. Now is better than never.

Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

The Zenof

PythonPython のなかの’禅’

2009年12月12日土曜日

2009年12月12日土曜日

Pythonは汎用の高水準言語である。プログラマの生産性とコードの信頼性を重視して設計されており、核となるシンタックスおよびセマンティクスは必要最小限に抑えられている反面、利便性の高い大規模な標準ライブラリを備えている。

Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。 多くのプラットフォームをサポートしており(動作するプラットフォーム)、また、豊富なドキュメント、豊富なライブラリがあることから、産業界でも利用が増えつつある。

2009年12月12日土曜日

Pythonは汎用の高水準言語である。プログラマの生産性とコードの信頼性を重視して設計されており、核となるシンタックスおよびセマンティクスは必要最小限に抑えられている反面、利便性の高い大規模な標準ライブラリを備えている。

Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。 多くのプラットフォームをサポートしており(動作するプラットフォーム)、また、豊富なドキュメント、豊富なライブラリがあることから、産業界でも利用が増えつつある。

Wikipedia 見て!!http://ja.wikipedia.org/wiki/Python

2009年12月12日土曜日

簡単に言うと

2009年12月12日土曜日

Guido っていう人が作ったイカした言語

もちろんオブジェクト指向プログラミングだ!!

教育用として設計されたので言語仕様がシンプル!!

インデントでブロック構造あらわしてるぜ!!

電池が付属しています("Battery Included")

2009年12月12日土曜日

Ruby のように動的な型付けの

LL であり、C で簡単に拡張が書けるようになっていて、Scala や Groovy のように JVM

上でも動き、JavaScript のようなスコープと prototype 的な事も出来る言語

2009年12月12日土曜日

良くある

誤解

2009年12月12日土曜日

良くある

誤解

2009年12月12日土曜日

インデントがブロックってキモイ!!

2009年12月12日土曜日

えっ!?

2009年12月12日土曜日

ブロックでインデントしない方がキモイよね?

if(foo == bar){foo.hoge();} bar.hoge();foo.hoge(bar);bar.hoge(foo);if(hoge != foo) hoge.hoge(); foo.hoge();

2009年12月12日土曜日

実行時にワーニング出したり、スタイルチェックのために他のプログラム走らせるくらいなら、そもそも適切にインデントされてなければ動かなければいいよね

2009年12月12日土曜日

2009年12月12日土曜日

閉じタグが無いのがキモイ

2009年12月12日土曜日

えっ!?

2009年12月12日土曜日

書けばいいじゃん

end = None::def foo(): print ‘hoge’end

2009年12月12日土曜日

書けばいいじゃん

end = None::def foo(): print ‘hoge’end

2009年12月12日土曜日

書けばいいじゃん

end = None::def foo(): print ‘hoge’end

2009年12月12日土曜日

逆に考えるんだ!! Python は閉じタグを”強制”しない。書きたければ書けばいいし他の言語のように”強制”しないだけだと

2009年12月12日土曜日

2009年12月12日土曜日

関数呼び出しでカッコが必須なのがめんどくさい

2009年12月12日土曜日

えっ!?

2009年12月12日土曜日

def foo(): return 'hoge'

こういう関数があった場合

foo()

これは関数呼び出しになりますが、

foo

これは関数自体のオブジェクトを表わします

2009年12月12日土曜日

def foo(): return 'hoge'

def bar(func): print func()

bar(foo) # ‘hoge’

なので例えば関数の引数で関数を受けとった時にも、普通にカッコを付ければその関数を呼べます。

(call など特別な処理はいらない)

2009年12月12日土曜日

カッコを省略出来無いというよりは、カッコを付けた時と付けてない時で違う意味を持っているのです。(どちらが優れているとかでは無く)

2009年12月12日土曜日

2009年12月12日土曜日

インスタンスメソッドとか

self だらけでめんどくさい

2009年12月12日土曜日

えっ!?

2009年12月12日土曜日

class Hoge(object): pass

hoge = Hoge()

hoge.a = 10 // hoge に a を追加hoge.b = 'hoge'

print hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

例えばオブジェクトの初期化を考えた時

2009年12月12日土曜日

def initialize(obj, a, b): obj.a = a obj.b = b

class Hoge(object): pass hoge = Hoge()initialize(hoge, 10, 'hoge') //関数print hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

関数として切り出す

2009年12月12日土曜日

class Hoge(object): def initialize(obj, a, b): obj.a = a obj.b = b

hoge = Hoge()Hoge.initialize(hoge, 10, 'hoge') //クラス関数として呼びだし

print hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

関数をクラスに持たせる

2009年12月12日土曜日

class Hoge(object): def initialize(obj, a, b): obj.a = a obj.b = b

hoge = Hoge()Hoge.initialize(hoge, 10, 'hoge') //クラス関数として呼びだし

print hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

関数をクラスに持たせる

hoge.initialize(10,'hoge')// インスタンスメソッドとして呼びだし

2009年12月12日土曜日

class Hoge(object): def __init__(obj , a, b): obj.a = a obj.b = b

hoge = Hoge(10,'hoge') // 引数付きでコンストラクタ呼び出しprint hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

コンストラクタとして呼びだす

2009年12月12日土曜日

class Hoge(object): def __init__(obj , a, b): obj.a = a obj.b = b

hoge = Hoge(10,'hoge') // 引数付きでコンストラクタ呼び出しprint hoge.a // 10 と表示されるprint hoge.b // hoge と表示される

コンストラクタとして呼びだす

selfself.a = aself.b = b

2009年12月12日土曜日

this などを明示的に書くか書かないかの違いだけど、書くのも悪くないでしょ?

2009年12月12日土曜日

2009年12月12日土曜日

PHP とか Perl みたいに気軽で安いレンタルサーバとか無いじゃん

2009年12月12日土曜日

えっ!?

2009年12月12日土曜日

あるよ!!

2009年12月12日土曜日

あるよ!!

2009年12月12日土曜日

基本タダなのに超スケールするらしいよ

2009年12月12日土曜日

2009年12月12日土曜日

hyP noイ カ ス 所

2009年12月12日土曜日

hyP noイ カ ス 所

2009年12月12日土曜日

予約語

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

false

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

false

this

2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

false

this

super2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

false

this

super

None

True

False

self

super2009年12月12日土曜日

オブジェクトを表わすのに最低限必要な5つのもの

nil

true

false

this

super

None

True

False

self

super

予約語じゃないw

2009年12月12日土曜日

そんなALGOL系

オブジェクト指向言語

2009年12月12日土曜日

DRY

2009年12月12日土曜日

2009年12月12日土曜日

2009年12月12日土曜日

help(fizzbuzz)

2009年12月12日土曜日

help(fizzbuzz)

2009年12月12日土曜日

help(fizzbuzz)

テストコードです

2009年12月12日土曜日

ドキュメントが古くて実装の動きと違うとか

サンプル書いてテスト書いてとかの

2度手間が無い2009年12月12日土曜日

もちろん「電池が付属しています("Battery Included")」なのでこれも標準搭載

2009年12月12日土曜日

結論

2009年12月12日土曜日

世界一を目指す理由は何か2位ではだめなのか

2009年12月12日土曜日

ダメです

2009年12月12日土曜日

現状で

2009年12月12日土曜日

世界一である必要は無い

2009年12月12日土曜日

世界一を目指す

2009年12月12日土曜日

心意気

2009年12月12日土曜日

大事

2009年12月12日土曜日

世界一使いやすい言語にしようとGuido が頑張っていて、その思考が感じれる言語

2009年12月12日土曜日

ご静聴ありがとうございました

2009年12月12日土曜日

Recommended