python begin 訂正
TRANSCRIPT
![Page 1: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/1.jpg)
PYTHON でなにできんの?twitter: @ashigirl96
あしがる96
13年4月26日金曜日
![Page 2: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/2.jpg)
スクリプト言語
文法が簡単で、読みやすい
モジュールやドキュメントが豊富
やりたいと思うことが(他の言語に比べて)すぐに出来てしまう(かもしれない)
そもそもPythonってなに?
13年4月26日金曜日
![Page 3: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/3.jpg)
事前事項
※別に他の言語をdisったりしてるわけではないのでご了承ください。
権力とかマジこわいんで・・・。
13年4月26日金曜日
![Page 4: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/4.jpg)
PYTHONの紹介
Pythonは オランダ人のすごい人が作りました
彼はPython を 万人が使えるためにした(らしい)
Pythonの目標 : 簡易で直感な言語で、主要言語と同程度の強力 オープンソースで誰もが開発可 平易な英語のようにわかりやすい 開発時間を極力短くする らしい
13年4月26日金曜日
![Page 5: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/5.jpg)
(続き)
Pythonは ぱいそん と呼びます
Pythonを使ってる人を Pythonista と呼びます (ダサくないです)
Python は ニシキヘビ って意味です
13年4月26日金曜日
![Page 6: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/6.jpg)
インストールしようぜ!
http://www.python.org/download/
OSにあわせてNE !!
13年4月26日金曜日
![Page 7: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/7.jpg)
そろそろ本題に。
13年4月26日金曜日
![Page 8: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/8.jpg)
機械語へ変換する手順を省略して実行出来る言語
スクリプト言語って?
13年4月26日金曜日
![Page 9: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/9.jpg)
それでは、
コンパイル言語 と スクリプト言語 を比較します。
コンパイル言語は 機械語になおしてから実行します。速いです。
コンパイル言語で有名なのは C言語(様)です。
13年4月26日金曜日
![Page 10: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/10.jpg)
例
1 #include<stdio.h> 2 3 int main(void) 4 { 5 int a; 6 char b[]={"@Ashigirl96"}; 7 printf("Hello World\n"); 8 a=100; 9 printf("%d\n%s\n",a,b);10 11 return 0;12 }
C言語 (様)
13年4月26日金曜日
![Page 11: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/11.jpg)
実行結果 と その行程
ashigirl96% vim c.c [~/Desktop]ashigirl96% gcc c.c [~/Desktop]ashigirl96% ./a.out [~/Desktop]Hello World100@Ashigirl96
13年4月26日金曜日
![Page 12: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/12.jpg)
例
Python (さん)
1 b="@Ashigirl96"2 print "Hello World"3 a=1004 print "%d\n%s"%(a,b)
寂しい
13年4月26日金曜日
![Page 13: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/13.jpg)
実行結果 と その行程
ashigirl96% vim c.py [~/Desktop]ashigirl96% python c.py [~/Desktop]Hello World100@Ashigirl96
13年4月26日金曜日
![Page 14: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/14.jpg)
他にも
1 #include<stdio.h> 2 3 int main(void) 4 { 5 int i; 6 for(i=0;i<10;i++){ 7 printf("Hello World\n"); 8 } 9 while(i != 20){10 printf("@ashigirl96\n");11 i+=1;12 }13 return 0;14 }15
1 for i in range(10):2 print "Hello World"3 while i!=20:4 print "@ashigirl96"5 i+=16
C言語(様) Python
13年4月26日金曜日
![Page 15: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/15.jpg)
実行結果Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
@ashigirl96
@ashigirl96
@ashigirl96
@ashigirl96
@ashigirl96
@ashigirl96
@ashigirl9613年4月26日金曜日
![Page 16: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/16.jpg)
某サイトの某問題
1 z=lambda:raw_input().split() 2 while True: 3 t={} 4 c=input() 5 if c==0:break 6 for i in range(c): 7 f,q=z() 8 t[f]=int(q) 9 for i in range(input()):10 f=z()11 m=sum([t[j] if j in t else 0 for j in f[2:]])12 q=t[f[0]]13 t[f[0]]=q if m>q else m14 print t[raw_input()]
C++(様) Python
1 #include <map> 2 #include <iostream> 3 #include <vector> 4 using namespace std; 5 map<string,int> item; 6 map<string,vector<string> > rec; 7 8 int saiki(string str){ 9 int ret = 0;10 if(rec[str].size()){11 for(int i=0;i<rec[str].size();i++){12 ret += saiki(rec[str][i]);13 }14 }else{15 ret=item[str];16 }17 if(item[str]&&item[str]<ret)ret=item[str];18 return ret;19 }20 21 int main(){22 int n,m,t;23 string s,rs;24 while(cin >> n && n){25 item.clear();26 rec.clear();27 for(int i=0;i<n;i++){28 cin >> s;29 cin >> item[s];30 }31 cin >> m;32 for(int i=0;i<m;i++){33 cin >> rs >> t;34 for(int j=0;j<t;j++){35 cin >> s;36 rec[rs].push_back(s);37 }38 }39 cin >> s;40 cout << saiki(s) << endl;41 }42 }
13年4月26日金曜日
![Page 17: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/17.jpg)
ちなみに、
さっきの問題を(C++で)解いたのは 我らプロ研の誇りである
『世界一』の人(部長)。
Pythonで解いたのは僕です。
13年4月26日金曜日
![Page 18: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/18.jpg)
( ˘⊖˘)。o(C言語(C++)って長いし、
何書いてるか分かりづらいな。)
13年4月26日金曜日
![Page 19: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/19.jpg)
コレは何の言語ですか?
おぃ!てめぇ!
何C言語(C++)disってんだよ!
例が悪いんだよ殺すぞ!
13年4月26日金曜日
![Page 20: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/20.jpg)
殺すぞ。
13年4月26日金曜日
![Page 21: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/21.jpg)
※申し訳ねぇ。
Pythonが良いように書きました。
殺さないでください。
13年4月26日金曜日
![Page 22: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/22.jpg)
じゃあ見やすいのか。
理由 オブジェクト指向だから。
13年4月26日金曜日
![Page 23: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/23.jpg)
オブジェクト指向とは
設計や開発で、操作手順より操作対象に重点を置く考え方。
データの集合とそれに対するメソッドを『オブジェクト』として、まとめて、
組み合わせて何かを作る指向。
13年4月26日金曜日
![Page 24: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/24.jpg)
よは、
車を作るには、
・タイヤ
・ハンドル
・ボディ
・エンジン
・.etc
っていう部品(メソッド)で組み合わせて作ろうぜ? っていう指向。
13年4月26日金曜日
![Page 25: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/25.jpg)
よって、
見やすい
部品(メソッド)で見れるから、組み合わせを変えたら違うものができたり。
13年4月26日金曜日
![Page 26: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/26.jpg)
オブジェクト指向の言語
Pythonは オブジェクト指向の代表的な言語ですが、
他にも Ruby , Perl , Objective-C , C# などなどたくさんあります!!
13年4月26日金曜日
![Page 27: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/27.jpg)
インタプリタに話題転換
13年4月26日金曜日
![Page 28: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/28.jpg)
インタプリタってなんぞ?
ソースコードなしで、実行可!! 1.ソースコードを直接実行する 2.何らかの効率で中間表現にかえ、即座に実行 3.コンパイル済みの中間表現を実行!
例をみよう。
13年4月26日金曜日
![Page 29: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/29.jpg)
ashigirl96% python [~/Desktop]
Python 2.7.2 (default, Oct 11 2012, 20:14:37) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.>>> for i in range(3):
... print i,'Hello World'
...
0 Hello World1 Hello World
2 Hello World
Python って入れてみ
13年4月26日金曜日
![Page 30: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/30.jpg)
>>> a = raw_input().split()100 3000 hoge 340023 asldkfja>>> print a['100', '3000', 'hoge', '340023', 'asldkfja']>>> print a[0]'100'>>> a[1]'3000'>>> a[2]'hoge'>>> a[3]'340023'>>>
print はなくても良い
13年4月26日金曜日
![Page 31: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/31.jpg)
すっごい楽(しい)やろ?
13年4月26日金曜日
![Page 32: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/32.jpg)
おもんない。話題変えろ
13年4月26日金曜日
![Page 33: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/33.jpg)
例えば、
奇数の配列(リスト)作る。
『for文で 整数 i を10回まわす、
そのとき i%2(iを2で割った余)が ゼロでない場合の i だけリストに入れる』
Pythonがどれぐらい英語っぽいか
>>>print [i for i in range(10) if i%2 is not 0][1, 3, 5, 7, 9]>>>
13年4月26日金曜日
![Page 34: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/34.jpg)
続き
もし 文字列に “kyuri” が入っていたら、配列(リスト)から取り除く。
>>> LIST = ['kyuridenamida' , 'homodenamida' , 'kyuri ha sekai iti', 'homo ha sekai iti' , 'butyoukyuri' , 'tatarikun' , 'mossan' ]>>> print [i for i in LIST if 'kyuri' not in i]['homodenamida', 'homo ha sekai iti', 'tatarikun', 'mossan']>>>
これ
13年4月26日金曜日
![Page 35: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/35.jpg)
ところで、
13年4月26日金曜日
![Page 36: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/36.jpg)
どうせ、お前も、厨二病だろW
13年4月26日金曜日
![Page 37: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/37.jpg)
ブラッディ・マンデイもPYTHONを使ってるよ
13年4月26日金曜日
![Page 38: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/38.jpg)
あっそ。話題変えろ
13年4月26日金曜日
![Page 39: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/39.jpg)
PYTHONで何ができるのか。
13年4月26日金曜日
![Page 40: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/40.jpg)
Scapyをやりましょう
Scapyってなに?
http://www.slideshare.net/reonnishimura5/scapy-presentation-16806081←解説してます(ごめんなさい
Scapyは Pythonによって作られた パケット生成ツール
ネットワークについて勉強したい人は必ずやっておくべきです!!
ネットワーク興味ある方
13年4月26日金曜日
![Page 41: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/41.jpg)
こういう感じのやつです。
13年4月26日金曜日
![Page 42: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/42.jpg)
Pythonでバイナリ解析できるらしいです。
結構知識が必要です、めっちゃ必要です。けど楽しいです。
⬇この本が良いです。僕は今の所(理解して)読めないです。
リバースエンジニアリング ―Pythonによるバイナリ解析技法 (Art Of Reversing)
セキュリティに興味ある方
13年4月26日金曜日
![Page 43: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/43.jpg)
こういう感じのやつです。
13年4月26日金曜日
![Page 44: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/44.jpg)
Google App Engine っていうGoogleが提供してるサービスで、
Python,Java,Goなどの言語で、作ることが出来ます。
Python用SDK(ソフトデベロップキット)などもあるので、
調べてみたら簡単に作れると思います。
Webアプリ制作に興味ある方
13年4月26日金曜日
![Page 45: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/45.jpg)
Django っていうPythonのwebフレームワークがあります。
簡単に好きなサイトが作れてしまいます。
開発やテスト用の軽量サーバなども提供されてます。
データベースの言語も色々使えて便利です。
Webサイトに興味ある方
13年4月26日金曜日
![Page 46: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/46.jpg)
Pygame を調べてみましょう
ビデオゲームを作るために制作されたモジュールのことです。
チュートリアル(説明)がたくさんあるので、勉強しやすいです。
ゲーム制作に興味ある方
13年4月26日金曜日
![Page 47: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/47.jpg)
こういう感じのやつです。
http://www.pygame.org/project-Spacemax-1698-3491.html
13年4月26日金曜日
![Page 48: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/48.jpg)
このようにたくさんできることがあります。もしなにからしていいかわからない。
けどプログラミングしたい。そんな方はPYTHONがおすすめです。
13年4月26日金曜日
![Page 49: Python begin 訂正](https://reader038.vdocuments.net/reader038/viewer/2022102712/55b62aa2bb61ebc6078b4703/html5/thumbnails/49.jpg)
ご清聴ありがとうございました!
13年4月26日金曜日