Your SlideShare is downloading. ×
0
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Introduction of Python
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction of Python

1,667

Published on

社内向けPython入門講義資料

社内向けPython入門講義資料

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,667
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction to Python 2012/04/11 Tomoya Nakayama
  • 2. AgendaPythonって何?とにかく使ってみよう
  • 3. Pythonとの出会いもともとPerl使い技術書を何冊か読むサンプルコードが結構な確率でPythonこれはPython知らなきゃまずいな…使ってみると意外とおもしろい!これを機にPerlからPythonにシフトしよう!! 3
  • 4. Pythonって何? 4
  • 5. Pythonの歴史Guide van Rossum が開発1991年 0.90公開1994年 1.0リリース2000年 2.0リリース2008年 3.0リリース Wikipedia 「グイド・ヴァンロッサ 5 ム」
  • 6. Pythonの特徴スクリプト言語(インタプリタ)動的型付けインデントが命オブジェクト指向 6
  • 7. Pythonのいいところ幅広く使われている可読性 インデントが強制されているから簡単ライブラリが豊富 7
  • 8. プログラミング言語ランキング Language Ratings 1 Java 17.110% 2 C 17.087% 3 C# 8.244% 4 C++ 8.047% 5 Objective-C 7.737% 6 PHP 5.555% 7 (Visual) Basic 4.369% 8 JavaScript 3.386% 9 Python 3.291% 10 Perl 2.703% (出典) TIOBE Programming Community Index for March 2012 8
  • 9. オープンソースでもhttp://www.ohloh.net/languages/compare 9
  • 10. こんなところにPythonが(出典) Wikipedia 「Pythonを使っている製品あるいはソフトウェア の一覧」 10
  • 11. こんなところにもGmailGoogle GroupsGoogle Maps (出典) Wikipedia 「Pythonを使っている製品あるいはソフトウェア の一覧」 11
  • 12. ライブラリが豊富標準ライブラリだけでも100種類以上 ファイル操作(CSV, HTML, XMLなど) インターネット(HTTPなど) GUI 単体テスト その他いろいろ… 詳細はこちら http://www.python.jp/doc/release/library/index.html標準以外にも数多くのパッケージ 12
  • 13. 使ってみよう 13
  • 14. まずはインストールWindowsインストーラをダウンロードするインストーラを実行するおしまい 14
  • 15. コマンドライン実行環境の起動スタートメニューから「Python2.7」⇒「Python (command line)」コマンドプロンプトのような対話式の実行環境が 起動する 15
  • 16. お決まりの…print “Hello, Python.” 16
  • 17. Pythonの特徴をもう一度スクリプト言語(インタプリタ)動的型付けインデントが命オブジェクト指向 17
  • 18. 動的型付け変数の型は動的に変化する PerlとかPHPと同じ foo = “string” foo = 7 18
  • 19. インデントが命プログラムの階層はインデントで表現次の2つの例では結果が異なる (1) if score >= 80: print “Good!n” print “Your score is ” + str(score) + “n” (2) if score >= 80: print “Good!n” print “Your score is ” + str(score) + “n” 19
  • 20. C言語で書くと…(1) if (score >= 80) { printf(“Good!n”); printf(“Your score is %dn”, score); }(2) if (score >= 80) { printf(“Good!n”); } printf(“Your score is %dn”, score); 20
  • 21. 制御構造:ifif score >= 80: Print “Good!”elif score >= 60: Print “So, so.”else: Print “No Good.” 21
  • 22. 制御構造:whilen = 0while n < 10: print n n = n + 1 22
  • 23. 制御構造:forJavaでいう拡張forループ array = [1, 2, 3, 4, 5] for n in array: print n 23
  • 24. データ構造:リスト(1)いわゆる「配列」 array1 = [1, 2, 3, 4, 5] array2 = [1, 2, [3, 4], 5] array3 = [1, 2, “3”, “4”, 5] array4 = range(2, 6, 1)いろんな参照方法 array1[0] array1[1:3] array1[-2] 24
  • 25. データ構造:リスト(2)いろんな操作 len(array1) array1.append(6) array3.remove(“3”) array1.reverse() 25
  • 26. データ構造:タプルリストと同じように使えるが、後から操作できな い tpl = (1, 2, 3, 4, 5) print tpl[0] tpl[0] = 10# これはNG 26
  • 27. データ構造:辞書キーと値のペアdic1 = {name: John, age: 25}print dic1[name]dic2 = { john: {name: John, age: 25}, bob: {name: Bob, age: 20}} # ネストもOKprint dic2[bob][age] 27
  • 28. リスト内包表記(1) array = [60, 92, 12, 54, 88] print len([n for n in array if n >= 60])(2) ax = [“x1”, “x2”, “x3”] ay = [“y1”, “y2”, “y3”] az = [“z1”, “z2”, “z3”] print [(x, y, z) for x in ax for y in ay for z in az] 28
  • 29. 関数の定義def my_double(x): return x * 2num = my_double(5) 29
  • 30. クラスの定義class Derived(Base): # Baseクラスを継承したDerivedクラ ス def __init__(self): # __init__はコンストラクタ(名前固定) def public_method(self, arg1, arg2): # publicメソッド def __private_method(self, arg1, arg2): # 先頭に__を付けるとprivateに。obj = Derived()obj.public_method(arg1, arg2)obj.__private_method(arg1, arg2) # これはエラー 30
  • 31. ダックタイピング(duck typing)"If it walks like a duck and quacks like a duck, it must be a duck"「もしもそれがアヒルのように歩き、アヒル のように鳴くのなら、それはアヒルである」 31
  • 32. ダックタイピングclass Duck: def sound(self): return “quack”class Cat: def sound(self): return “myaa”def let_sound(obj): print obj.sound()let_sound(Duck())let_sound(Cat()) 32
  • 33. サンプルプログラム 33
  • 34. twitterアプリの製作特定のユーザーのツイートを取得 twitter APIを利用 レスポンスをJSONで取得ツイートの時刻とテキストを出力 34
  • 35. プログラム作成の前に…twitter API https://dev.twitter.com/docs/api/1/get/statuses/user_timelineJSON 「キー: 値」の形式でデータを表現 35
  • 36. プログラム# -*- coding: utf-8 -*-import urllibimport jsonscr_name = NHK_PR # twitterのスクリーンネームurl = https://twitter.com/statuses/user_timeline.json + ?screen_name= + scr_nameresult = urllib.urlopen( url, proxies={https: http://proxy:8080} )result = json.loads(result.read())for tweet in result: print [%s] %s % (tweet[created_at], tweet[text]) 36
  • 37. まとめ 37
  • 38. まとめ簡単でしょ?使ってみてくださいね。 38
  • 39. おまけ 39
  • 40. Pythonの亜種IronPython .NET frameworkで動くPython .NET frameworkのライブラリが使える Visual Studioが使えるっぽい(フォームデザイナと か)Jython Java VMで動くPython ちょっとバージョン古めかな… 40
  • 41. IronPythonimport clrclr.AddReferenceByPartialName(“System.Windows.Forms”)from System.Windows.Forms import *MessageBox.Show( “Are you OK?”, “Test”, MessageBoxButtons.YesNo, MessageBoxIcon.Question) 41
  • 42. Jython JavaのコードからPythonを呼び出す感じ。import org.python.util.PythonInterpreter;public class JythonTest { public static void main(String[] args) { PythonInterpreter pyi = new PythonInterpreter(); pyi.exec(“print Hello, world.”); pyi.execfile(“hello.py”); // ファイル実行もOK }} 42
  • 43. DjangoPythonで作られたWebフレームワークモデルを書くだけで テーブルを勝手に作ってくれたり データ編集画面を自動で作ってくれたり 43
  • 44. Python入門者向けサイトほぷしぃ http://www.isl.ne.jp/pcsp/python/PythonWeb http://www.pythonweb.jp/ 44
  • 45. ご清聴ありがとうございました 45

×