SlideShare une entreprise Scribd logo
1  sur  86
Télécharger pour lire hors ligne
Python入門 
長岡技術科学大学 
自然言語処理研究室 
presented by 岡田正平
はじめに 
• 
これから1日かけて多くのことを教えますが 全て暗記しようとは思わず,Pythonで何が出来 るのかを何となく頭に入れた上で, あとでこの資料等を参照しながらプログラム 出来るようにしましょう. 
• 
スライド中の空欄は,適宜自分で試してみて 結果を記入していきましょう.
Pythonとは?
Pythonとは? 
• 
スクリプト言語と呼ばれる言語の一種 
– 
他のスクリプト言語:Perl, Ruby など 
• 
シンプルな構文 
• 
豊富な標準ライブラリ 
• 
Google, Yahoo!, NASAなどでも使われている 
2014/9/1 H26年度オープンハウス・アドバンストコース 4
Pythonを使う
Pythonを使う 
• 
2種類の方法 
– 
対話型インタプリタ 
– 
プログラムファイルを実行 
2014/9/1 H26年度オープンハウス・アドバンストコース 6
対話型インタプリタ 
• 
端末上でpython とタイプ 
• 
1行ずつプログラムを書いていく 
2014/9/1 H26年度オープンハウス・アドバンストコース 7
プログラムファイルを実行 
• 
テキストエディタでプログラムを作成 
– 
拡張子は.py 
• 
端末上でプログラムファイルの保存場所へ移動 
• 
python (ファイル名).pyとタイプ 
• 
実行結果が出力される 
2014/9/1 H26年度オープンハウス・アドバンストコース 8
動作確認 
• 
対話型インタプリタを起動し,次の通り入力し 出力を確認 
>>> print "Hello World!" 
Hello World! 
>>> print 1 + 1 
2 
2014/9/1 H26年度オープンハウス・アドバンストコース 9
動作確認 
• 
対話型インタプリタを起動し,次の通り入力し 出力を確認 
>>> print "Hello World!" 
Hello World! 
>>> print 1 + 1 
2 
2014/9/1 H26年度オープンハウス・アドバンストコース 10
動作確認 
• 
次の内容のプログラムファイルを作成 
• 
プログラムを実行し,出力を確認 
% python (ファイル名).py 
Hello World! 
#! /usr/bin/ python# coding: utf-8print "Hello World!" 
2014/9/1 H26年度オープンハウス・アドバンストコース 11
動作確認 
• 
次の内容のプログラムファイルを作成 
• 
プログラムを実行し,出力を確認 
% python (ファイル名).py 
Hello World! 
#! /usr/bin/ python 
# coding: utf-8 
print "Hello World!" 
2014/9/1 H26年度オープンハウス・アドバンストコース 12
※注意 
• 
プログラムファイルの先頭2行はおまじない 
(だと思って良い) 
• 
今後の演習でも必ず記述しておく 
2014/9/1 H26年度オープンハウス・アドバンストコース 13 
#! /usr/bin/ python 
# coding: utf-8
これからの演習 
• 
今日のPython講座の演習は 対話型インタプリタ上でやります 
• 
明日以降の機械翻訳機の作成は テキストエディタでプログラムファイルを作成 することになると思います 
2014/9/1 H26年度オープンハウス・アドバンストコース 14
構文
インデント 
• 
Pythonではコードのブロックを インデントで表す 
– 
同じレベルのインデントは高さを揃える 
– 
1つのインデントはスペース4つ推奨 
>>> if a == b: 
... print "same" 
2014/9/1 H26年度オープンハウス・アドバンストコース 16
if文 
• 
条件分岐にはif文を使う 
>>> if a == b: 
... print "a==b" 
... elifa == c: 
... print "a==c" 
... else: 
print "nothing" 
2014/9/1 H26年度オープンハウス・アドバンストコース 17
条件部分 
• 
True/Falseを返す演算子やメソッド 
– 
比較演算子==, >, <, =>, =< 
– 
論理演算子and, or, not 
>>> 2 == 3 
False 
>>> 1 < 2 and not 2 == 3 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 18
条件部分 
• 
True/Falseを返す演算子やメソッド 
– 
比較演算子==, >, <, =>, =< 
– 
論理演算子and, or, not 
>>> 2 == 3 
False 
>>> 1 < 2 and not 2 == 3 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 19
条件部分 
– 
演算子in 
– 
startswith, endswithなどのメソッド 
>>> 2 in [1, 2, 3] 
True 
>>> "Hello".startswith("He") 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 20
条件部分 
– 
演算子in 
– 
startswith, endswithなどのメソッド 
>>> 2 in [1, 2, 3] 
True 
>>> "Hello".startswith("He") 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 21
※備考1 
• 
True/False の2値だけを持つデータ型を bool型という 
• 
数値の0や,空のコンテナ(list, dictなど)は Falseとして評価される 
>>> if not 0: 
... print "empty" # 結果,"empty"と表示 
2014/9/1 H26年度オープンハウス・アドバンストコース 22
while文 
• 
条件がTrueの間繰り返し 
>>> i= 0 
>>> while i< 3: # iが3未満の間繰り返し 
... i= i+ 1 
>>> print i 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 23
while文 
• 
条件がTrueの間繰り返し 
>>> i= 0 
>>> while i< 3: # iが3未満の間繰り返し 
... i= i+ 1 
>>> print i 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 24
for文 
• 
コンテナ(list等)の要素に順次アクセス 
>>> for iin range(3): 
... print i 
0 
1 
2 
2014/9/1 H26年度オープンハウス・アドバンストコース 25 
range(n) 
0~nまでの整数の リストを返す 組み込み関数
for文 
• 
コンテナ(list等)の要素に順次アクセス 
>>> for iin range(3): 
... print i 
0 
1 
2 
2014/9/1 H26年度オープンハウス・アドバンストコース 26 
range(n) 
0~nまでの整数の リストを返す 組み込み関数
for文 
• 
順次アクセスのイメージ 
2014/9/1 H26年度オープンハウス・アドバンストコース 27
for文, while文の制御 
• 
continue 
– 
次のループに進む 
• 
break 
– 
ループから抜け出す 
2014/9/1 H26年度オープンハウス・アドバンストコース 28
def文 
• 
関数の定義 
• 
return文で値を返すor 関数を抜ける 
>>> defadd(a, b): 
... return a + b 
>>> add(1, 2) 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 29
def文 
• 
関数の定義 
• 
return文で値を返すor 関数を抜ける 
>>> defadd(a, b): 
... return a + b 
>>> add(1, 2) 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 30
データ型
データ型 
• 
Pythonに変数宣言は無い 
– 
値を代入することで自動で型付けされる 
– 
別の値を代入すると型は動的に変化する 
• 
型にはint, float, str, list, dict等がある(後述) 
2014/9/1 H26年度オープンハウス・アドバンストコース 32
データ型 
>>> a = 1 # aは自動的にint型になる 
>>> print a 
1 
>>> a = "Hello World!" # 今度はstr型になる 
>>> print a 
Hello World! 
2014/9/1 H26年度オープンハウス・アドバンストコース 33
データ型 
>>> a = 1 # aは自動的にint型になる 
>>> print a 
1 
>>> a = "Hello World!" # 今度はstr型になる 
>>> print a 
Hello World! 
2014/9/1 H26年度オープンハウス・アドバンストコース 34
int型,float型 
• 
数値を格納する型(int:整数,float:実数) 
• 
演算子による四則演算が可能 
>>> a = 2 # int 
>>> b = 3.0 # float 
>>> a + b 
5.0 
演算子 
演算内容 
+ 
足し算 
- 
引き算 
* 
掛け算 
/ 
割り算(型に注意) 
// 
商 
% 
剰余 
** 
累乗 
2014/9/1 H26年度オープンハウス・アドバンストコース 35
int型,float型 
• 
数値を格納する型(int:整数,float:実数) 
• 
演算子による四則演算が可能 
>>> a = 2 # int 
>>> b = 3.0 # float 
>>> a + b 
5.0 
演算子 
演算内容 
+ 
足し算 
- 
引き算 
* 
掛け算 
/ 
割り算(型に注意) 
// 
商 
% 
剰余 
** 
累乗 
2014/9/1 H26年度オープンハウス・アドバンストコース 36
list型 
• 
複数の値を格納する型 
>>> a = [1, 2.0,"ab", 4] # 要素の型は混在可能 
>>> print a[2] 
2.0 
>>> print a[-1] 
4 
2014/9/1 H26年度オープンハウス・アドバンストコース 37
list型 
• 
複数の値を格納する型 
>>> a = [1, 2.0,"ab", 4] # 要素の型は混在可能 
>>> print a[2] 
2.0 
>>> print a[-1] 
4 
2014/9/1 H26年度オープンハウス・アドバンストコース 38
list型 
>>> a[1:3] # スライスで範囲を取出す 
[2.0, "ab"] # 結果もlist 
>>> a[1:] 
[2.0, "ab", 4] 
>>> a[:2] 
[1, 2.0] 
2014/9/1 H26年度オープンハウス・アドバンストコース 39
list型 
>>> a[1:3] # スライスで範囲を取出す 
[2.0, "ab"] # 結果もlist 
>>> a[1:] 
[2.0, "ab", 4] 
>>> a[:2] 
[1, 2.0] 
2014/9/1 H26年度オープンハウス・アドバンストコース 40
>>> a.append("xyz") # 要素の追加 
>>> print a 
[1, 2.0, "ab", 4, "xyz"] 
>>> a.insert(2, "three") # 要素の挿入 
>>> print a 
[1, 2.0, “three”, "ab", 4, "xyz"] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 41
>>> a.append("xyz") # 要素の追加 
>>> print a 
[1, 2.0, "ab", 4, "xyz"] 
>>> a.insert(2, "three") # 要素の挿入 
>>> print a 
[1, 2.0, “three”, "ab", 4, "xyz"] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 42
>>> del a[2] # 要素の削除(位置指定) 
>>> print a 
[1, 2.0, "ab", 4, "xyz"] 
>>> a.remove("xyz") # 要素の削除(要素指定) 
>>> print a 
[1, 2.0, "ab“, 4] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 43
>>> del a[2] # 要素の削除(位置指定) 
>>> print a 
[1, 2.0, "ab", 4, "xyz"] 
>>> a.remove("xyz") # 要素の削除(要素指定) 
>>> print a 
[1, 2.0, "ab", 4] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 44
>>> b = [5, 6, 7] 
>>> a + b # listの足し算 
[1, 2.0, "ab", 4, 5, 6, 7] 
>>> b * 2 # listの整数倍 
[5, 6, 7, 5, 6, 7] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 45
>>> b = [5, 6, 7] 
>>> a + b # listの足し算 
[1, 2.0, "ab", 4, 5, 6, 7] 
>>> b * 2 # listの整数倍 
[5, 6, 7, 5, 6, 7] 
list型 
2014/9/1 H26年度オープンハウス・アドバンストコース 46
list型 
>>> a = [5, 2, 7, 9] 
>>> a.sort() # 要素の値でソート 
>>> print a 
[2, 5, 7, 9] 
>>> a.reverse() # 逆順 
>>> print a 
[9, 7, 5, 2] 
2014/9/1 H26年度オープンハウス・アドバンストコース 47
list型 
>>> a = [5, 2, 7, 9] 
>>> a.sort() # 要素の値でソート 
>>> print a 
[2, 5, 7, 9] 
>>> a.reverse() # 逆順 
>>> print a 
[9, 7, 5, 2] 
2014/9/1 H26年度オープンハウス・アドバンストコース 48
list型 
>>> a = [1, 2, 1, 1] 
>>> len(a) # 全要素の数 
4 
>>> a.count(1) # 特定の要素の数 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 49
list型 
>>> a = [1, 2, 1, 1] 
>>> len(a) # 全要素の数 
4 
>>> a.count(1) # 特定の要素の数 
3 
2014/9/1 H26年度オープンハウス・アドバンストコース 50
※備考2 
• 
Pythonはオブジェクト指向言語でもある 
– 
すべてのデータはオブジェクト 
c.f.) Java: int型等はオブジェクトではない 
• 
オブジェクトはメソッドとよばれる 関数(のようなもの)を持つ 
>>> a.append(2) 
2014/9/1 H26年度オープンハウス・アドバンストコース 51 
メソッド
str型 
• 
文字列を格納する型 
• 
1文字でもstr型(charのような型はない) 
>>> a = "Hello" # ''でも""でも良い 
>>> print a 
Hello 
2014/9/1 H26年度オープンハウス・アドバンストコース 52
str型 
• 
一部のメソッドはlistと共通, スライス,len()も使用可 
>>> a.count("l") # countメソッド 
2 
>>> a[1:3] #スライス 
"el" 
2014/9/1 H26年度オープンハウス・アドバンストコース 53
str型 
• 
一部のメソッドはlistと共通, スライス,len()も使用可 
>>> a.count("l") # countメソッド 
2 
>>> a[1:3] #スライス 
"el" 
2014/9/1 H26年度オープンハウス・アドバンストコース 54
str型 
>>> b = "World" 
>>> a + b # 文字列の足し算 
'HelloWorld' 
>>> a * 3 # 文字列の整数倍 
'HelloHelloHello' 
2014/9/1 H26年度オープンハウス・アドバンストコース 55
str型 
>>> b = "World" 
>>> a + b # 文字列の足し算 
'HelloWorld' 
>>> a * 3 # 文字列の整数倍 
'HelloHelloHello' 
2014/9/1 H26年度オープンハウス・アドバンストコース 56
str型 
>>> a.find("e") # 文字列の位置検索 
1 
>>> a.replace("llo", "y") # 部分文字列の置換 
'Hey' 
2014/9/1 H26年度オープンハウス・アドバンストコース 57
str型 
>>> a.find("e") # 文字列の位置検索 
1 
>>> a.replace("llo", "y") # 部分文字列の置換 
'Hey' 
2014/9/1 H26年度オープンハウス・アドバンストコース 58
str型 
>>> text = "This is a pen" 
>>> words = text.split() # 空白文字で区切る 
>>> print words 
['This', 'is', 'a', 'pen'] # 結果はlist 
>>> "_".join(words) # listを連結する 
'This_is_a_pen' 
2014/9/1 H26年度オープンハウス・アドバンストコース 59
str型 
>>> text = "This is a pen" 
>>> words = text.split() # 空白文字で区切る 
>>> print words 
['This', 'is', 'a', 'pen'] # 結果はlist 
>>> "_".join(words) # listを連結する 
'This_is_a_pen' 
2014/9/1 H26年度オープンハウス・アドバンストコース 60
str型 
>>>text.lower() # 小文字化 
'this is a pen' 
>>> text.upper() # 大文字化 
'THIS IS A PEN' 
>>> text.startswith("pen")# 先頭はpenかどうか 
False 
>>> text.endswith("pen") # 末尾はpenかどうか 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 61
str型 
>>>text.lower() # 小文字化 
'this is a pen' 
>>> text.upper() # 大文字化 
'THIS IS A PEN' 
>>> text.startswith("pen")# 先頭はpenかどうか 
False 
>>> text.endswith("pen") # 末尾はpenかどうか 
True 
2014/9/1 H26年度オープンハウス・アドバンストコース 62
str型 
>>> a = "Nagaoka" 
>>> len(a) 
7 
>>> a = "長岡技大" 
>>> len(a) 
12 
2014/9/1 H26年度オープンハウス・アドバンストコース 63
str型 
>>> a = "Nagaoka" 
>>> len(a) 
7 
>>> a = "長岡技大" 
>>> len(a) 
12 # !? 
2014/9/1 H26年度オープンハウス・アドバンストコース 64
unicode型 
• 
日本語のような多バイト文字を扱うには unicode型を用いる 
>>> a = u"いろは" # u"文字列"の形 
• 
str型とほぼ同じメソッドを持っているが, あくまで異なる型であることに注意 
>>> "abc" + u"いろは" # エラーになる 
2014/9/1 H26年度オープンハウス・アドバンストコース 65
str型とunicode型 
>>> unicode("Hello") # str-> unicode 
u'Hello' 
>>> u"Hello".encode("utf-8") # unicode-> str 
'Hello' 
※「utf-8(unicode)」でエンコードされたstr型と, unicode型は異なるものなので注意 
2014/9/1 H26年度オープンハウス・アドバンストコース 66
※備考3 
• 
今回の演習で使っているPythonは2.x系 
• 
現在は3.x系もある 
– 
printが関数化 
– 
str型を廃止しunicode型に統一 
• 
ただし,一部ライブラリが未対応の場合も 
– 
徐々に対応してきている 
2014/9/1 H26年度オープンハウス・アドバンストコース 67
dict型 
• 
他の言語では「ハッシュ」や「連想配列」と 呼ばれる型 
• 
keyとvalueの組が格納される 
• 
keyを指定してvalueにアクセスする 
>>> a = {"name": "Tom", "age": 20} 
>>> a["name"] 
'Tom' 
2014/9/1 H26年度オープンハウス・アドバンストコース 68
dict型 
• 
他の言語では「ハッシュ」や「連想配列」と 呼ばれる型 
• 
keyとvalueの組が格納される 
• 
keyを指定してvalueにアクセスする 
>>> a = {"name": "Tom", "age": 20} 
>>> a["name"] 
'Tom' 
2014/9/1 H26年度オープンハウス・アドバンストコース 69
dict型 
>>> a["name"] = "Ken" # valueの上書き 
>>> print a 
{"age": 20, "name": "Ken"} # 順番を保持しない 
>>> a["job"] = "student" # 要素の追加 
>>>print a 
{"job": "student", "age": 20, "name": "Ken"} 
2014/9/1 H26年度オープンハウス・アドバンストコース 70
dict型 
>>> a["name"] = "Ken" # valueの上書き 
>>> print a 
{"age": 20, "name": "Ken"} # 順番を保持しない 
>>> a["job"] = "student" # 要素の追加 
>>>print a 
{"job": "student", "age": 20, "name": "Ken"} 
2014/9/1 H26年度オープンハウス・アドバンストコース 71
dict型 
>>> len(a) 
3 
>>> a.keys() # 全てkeyを返す 
["job", "age", "name"] #結果はlist 
>>> a.values() # 全てのvalueを返す 
["student", 20, "Ken"] # 結果はlist 
2014/9/1 H26年度オープンハウス・アドバンストコース 72
dict型 
>>> len(a) 
3 
>>> a.keys() # 全てkeyを返す 
["job", "age", "name"] #結果はlist 
>>> a.values() # 全てのvalueを返す 
["student", 20, "Ken"] # 結果はlist 
2014/9/1 H26年度オープンハウス・アドバンストコース 73
入出力
ファイルから入力 
• 
openを使ってファイルオブジェクトを生成 
• 
メソッドでファイル内容にアクセス 
# file.txtを読み込み専用で開く 
>>> fin = open("file.txt", "r") 
>>> fin.close() # 使い終わったらclose()
ファイルから入力 
• 
一度にファイル内容全てを読み出す 
fin.read() 
• 
一行ずつ読み出す 
fin.readline() 
• 
各行をlistの要素として一度に全て読み出す 
fin.readlines() 
2014/9/1 H26年度オープンハウス・アドバンストコース 76
ファイルから入力 
• 
for文によるアクセスも可能(1行ずつ) 
>>> fin = open("file.txt", "r") 
>>> for line in fin: 
... print line.strip() 
2014/9/1 H26年度オープンハウス・アドバンストコース 77 
str.strip() 
文字列両端の空白文字 (スペースや改行) を取り除くstr型のメソッド
標準入力 
• 
組み込みモジュールsysをimportする 
• 
sys.stdinが標準入力を表す 
• 
ファイルオブジェクトと同様にアクセス可能 
>>> import sys 
>>> text = sys.stdin.read() 
2014/9/1 H26年度オープンハウス・アドバンストコース 78
標準出力 
• 
print文を利用 
>>> a = "Hello" 
>>> b = "World" 
>>> print a, b # ,(カンマ)区切り 
'Hello World' 
2014/9/1 H26年度オープンハウス・アドバンストコース 79
標準出力 
• 
print文を利用 
>>> a = "Hello" 
>>> b = "World" 
>>> print a, b # ,(カンマ)区切り 
Hello World 
2014/9/1 H26年度オープンハウス・アドバンストコース 80
標準出力 
• 
str型のformatメソッド 
>>> a = "Hello" 
>>> b = "Tom" 
>>> print "{0}, {1}".format(a, b) 
'Hello, Tom' 
>>> print "{greets}, {name}".format(greets=a,name=b) 
'Hello, Tom' 
2014/9/1 H26年度オープンハウス・アドバンストコース 81
標準出力 
• 
str型のformatメソッド 
>>> a = "Hello" 
>>> b = "Tom" 
>>> print "{0}, {1}".format(a, b) 
Hello, Tom 
>>> print "{greets}, {name}".format(greets=a,name=b) 
Hello, Tom 
2014/9/1 H26年度オープンハウス・アドバンストコース 82
その他の機能 
2014H/296/1年度オープンハウス・アドバンストコース 83
その他の機能 
• 
その他にもできることは沢山ある 
– 
乱数,数学関数,正規表現等 
• 
なにか欲しい機能があったら 
– 
TAに聞いてみる 
– 
公式ドキュメントを調べる 
• 
http://docs.python.jp/2/ 
2014/9/1 H26年度オープンハウス・アドバンストコース 84
課題 
2014H/296/1年度オープンハウス・アドバンストコース 85
FizzBuzz問題 
• 
1~100までの数字を順に1行ずつ出力する 
• 
ただし, 
– 
3で割り切れる場合は代わりにFizz と 
– 
5で割り切れる場合は代わりにBuzz と 
– 
3と5両方で割り切れる場合は代わりにFizz Buzzと 
出力する 
2014/9/1 H26年度オープンハウス・アドバンストコース 86

Contenu connexe

Tendances

PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話y-uti
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話marika_hotani
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016Tokoroten Nakayama
 
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいことIchigaku Takigawa
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j昌桓 李
 
[DL輪読会]Opening the Black Box of Deep Neural Networks via Information
[DL輪読会]Opening the Black Box of Deep Neural Networks via Information[DL輪読会]Opening the Black Box of Deep Neural Networks via Information
[DL輪読会]Opening the Black Box of Deep Neural Networks via InformationDeep Learning JP
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門nocchi_airport
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用Hiroyuki Masuda
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIGo Maeda
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Yuya Unno
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐりKazuyuki TAKASE
 
Rを用いたLTV(Life Time Value)の推定
Rを用いたLTV(Life Time Value)の推定Rを用いたLTV(Life Time Value)の推定
Rを用いたLTV(Life Time Value)の推定宏喜 佐野
 

Tendances (20)

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
プログラミング初心者がOpenCVと機械学習でOCRエンジン自作に挑戦する話
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと
機械学習を自然現象の理解・発見に使いたい人に知っておいてほしいこと
 
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
 
[DL輪読会]Opening the Black Box of Deep Neural Networks via Information
[DL輪読会]Opening the Black Box of Deep Neural Networks via Information[DL輪読会]Opening the Black Box of Deep Neural Networks via Information
[DL輪読会]Opening the Black Box of Deep Neural Networks via Information
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
Rを用いたLTV(Life Time Value)の推定
Rを用いたLTV(Life Time Value)の推定Rを用いたLTV(Life Time Value)の推定
Rを用いたLTV(Life Time Value)の推定
 

Similaire à Python入門

入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !Nobutada Matsubara
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいcharsbar
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Tetsu Yama
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Tetsu Yama
 
ラボユース 最終成果報告会
ラボユース 最終成果報告会ラボユース 最終成果報告会
ラボユース 最終成果報告会shiftky
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションsn_monochr
 
やさしく知りたいC言語
やさしく知りたいC言語やさしく知りたいC言語
やさしく知りたいC言語uru nru
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialTatsuya Tojima
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Yusaku Kawaguchi
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„Kaz Aiso
 
Hello World Python featuring GAE
Hello World Python featuring GAEHello World Python featuring GAE
Hello World Python featuring GAEMaito Kuwahara
 
文献紹介:Efficient Attention: Attention With Linear Complexities
文献紹介:Efficient Attention: Attention With Linear Complexities文献紹介:Efficient Attention: Attention With Linear Complexities
文献紹介:Efficient Attention: Attention With Linear ComplexitiesToru Tamaki
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようShinsuke Sugaya
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5teruyaono1
 

Similaire à Python入門 (20)

入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !入門 超絶技巧プログラミング !
入門 超絶技巧プログラミング !
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
Powershell 超絶基礎 勉強会 v1 (もっと新しいバージョンがあります)
 
Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)Powershell勉強会 v3 (もっと新しいバージョンがあります)
Powershell勉強会 v3 (もっと新しいバージョンがあります)
 
Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)Powershell勉強会 v2 (もっと新しいバージョンがあります)
Powershell勉強会 v2 (もっと新しいバージョンがあります)
 
ラボユース 最終成果報告会
ラボユース 最終成果報告会ラボユース 最終成果報告会
ラボユース 最終成果報告会
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
やさしく知りたいC言語
やさしく知りたいC言語やさしく知りたいC言語
やさしく知りたいC言語
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
 
Hello World Python featuring GAE
Hello World Python featuring GAEHello World Python featuring GAE
Hello World Python featuring GAE
 
文献紹介:Efficient Attention: Attention With Linear Complexities
文献紹介:Efficient Attention: Attention With Linear Complexities文献紹介:Efficient Attention: Attention With Linear Complexities
文献紹介:Efficient Attention: Attention With Linear Complexities
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5
 

Plus de Shohei Okada

「登壇しているひとは偉い」という話
「登壇しているひとは偉い」という話「登壇しているひとは偉い」という話
「登壇しているひとは偉い」という話Shohei Okada
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
PHP 8.0 の新記法を試してみよう!
PHP 8.0 の新記法を試してみよう!PHP 8.0 の新記法を試してみよう!
PHP 8.0 の新記法を試してみよう!Shohei Okada
 
自分たちのコードを Composer パッケージに分割して開発する
自分たちのコードを Composer パッケージに分割して開発する自分たちのコードを Composer パッケージに分割して開発する
自分たちのコードを Composer パッケージに分割して開発するShohei Okada
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumai
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumaiクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumai
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumaiShohei Okada
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaShohei Okada
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondo
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondoクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondo
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondoShohei Okada
 
Laravel でやってみるクリーンアーキテクチャ #phpconfuk
Laravel でやってみるクリーンアーキテクチャ #phpconfukLaravel でやってみるクリーンアーキテクチャ #phpconfuk
Laravel でやってみるクリーンアーキテクチャ #phpconfukShohei Okada
 
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyo
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyoエラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyo
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyoShohei Okada
 
スペシャリストとして組織をつくる、というキャリア
スペシャリストとして組織をつくる、というキャリアスペシャリストとして組織をつくる、というキャリア
スペシャリストとして組織をつくる、というキャリアShohei Okada
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる MakefileShohei Okada
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよShohei Okada
 
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Shohei Okada
 
働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソード働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソードShohei Okada
 
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならShohei Okada
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミShohei Okada
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
2017 年度を振り返って ~アウトプット編~
2017 年度を振り返って ~アウトプット編~2017 年度を振り返って ~アウトプット編~
2017 年度を振り返って ~アウトプット編~Shohei Okada
 
Laravel × レイヤードアーキテクチャをやってみている話
Laravel × レイヤードアーキテクチャをやってみている話Laravel × レイヤードアーキテクチャをやってみている話
Laravel × レイヤードアーキテクチャをやってみている話Shohei Okada
 
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみた
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみたLaravel 5.6 デフォルトの例外ハンドリング処理をまとめてみた
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみたShohei Okada
 

Plus de Shohei Okada (20)

「登壇しているひとは偉い」という話
「登壇しているひとは偉い」という話「登壇しているひとは偉い」という話
「登壇しているひとは偉い」という話
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
PHP 8.0 の新記法を試してみよう!
PHP 8.0 の新記法を試してみよう!PHP 8.0 の新記法を試してみよう!
PHP 8.0 の新記法を試してみよう!
 
自分たちのコードを Composer パッケージに分割して開発する
自分たちのコードを Composer パッケージに分割して開発する自分たちのコードを Composer パッケージに分割して開発する
自分たちのコードを Composer パッケージに分割して開発する
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumai
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumaiクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumai
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #shuuumai
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawaクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpconokinawa
 
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondo
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondoクリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondo
クリーンアーキテクチャの考え方にもとづく Laravel との付き合い方 #phpcondo
 
Laravel でやってみるクリーンアーキテクチャ #phpconfuk
Laravel でやってみるクリーンアーキテクチャ #phpconfukLaravel でやってみるクリーンアーキテクチャ #phpconfuk
Laravel でやってみるクリーンアーキテクチャ #phpconfuk
 
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyo
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyoエラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyo
エラー時にログに出力する情報と画面に表示する情報を分ける #LaravelTokyo
 
スペシャリストとして組織をつくる、というキャリア
スペシャリストとして組織をつくる、というキャリアスペシャリストとして組織をつくる、というキャリア
スペシャリストとして組織をつくる、というキャリア
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる Makefile
 
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよはじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
はじめての Go 言語のプロジェクトを AWS Lambda + API Gateway でやったのでパッケージ構成を晒すよ
 
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
 
働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソード働き方が大きく変わった 入社3年目のときのとあるエピソード
働き方が大きく変わった 入社3年目のときのとあるエピソード
 
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
2017 年度を振り返って ~アウトプット編~
2017 年度を振り返って ~アウトプット編~2017 年度を振り返って ~アウトプット編~
2017 年度を振り返って ~アウトプット編~
 
Laravel × レイヤードアーキテクチャをやってみている話
Laravel × レイヤードアーキテクチャをやってみている話Laravel × レイヤードアーキテクチャをやってみている話
Laravel × レイヤードアーキテクチャをやってみている話
 
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみた
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみたLaravel 5.6 デフォルトの例外ハンドリング処理をまとめてみた
Laravel 5.6 デフォルトの例外ハンドリング処理をまとめてみた
 

Dernier

3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrRodolfFernandez1
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 

Dernier (20)

3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 

Python入門

  • 2. はじめに • これから1日かけて多くのことを教えますが 全て暗記しようとは思わず,Pythonで何が出来 るのかを何となく頭に入れた上で, あとでこの資料等を参照しながらプログラム 出来るようにしましょう. • スライド中の空欄は,適宜自分で試してみて 結果を記入していきましょう.
  • 4. Pythonとは? • スクリプト言語と呼ばれる言語の一種 – 他のスクリプト言語:Perl, Ruby など • シンプルな構文 • 豊富な標準ライブラリ • Google, Yahoo!, NASAなどでも使われている 2014/9/1 H26年度オープンハウス・アドバンストコース 4
  • 6. Pythonを使う • 2種類の方法 – 対話型インタプリタ – プログラムファイルを実行 2014/9/1 H26年度オープンハウス・アドバンストコース 6
  • 7. 対話型インタプリタ • 端末上でpython とタイプ • 1行ずつプログラムを書いていく 2014/9/1 H26年度オープンハウス・アドバンストコース 7
  • 8. プログラムファイルを実行 • テキストエディタでプログラムを作成 – 拡張子は.py • 端末上でプログラムファイルの保存場所へ移動 • python (ファイル名).pyとタイプ • 実行結果が出力される 2014/9/1 H26年度オープンハウス・アドバンストコース 8
  • 9. 動作確認 • 対話型インタプリタを起動し,次の通り入力し 出力を確認 >>> print "Hello World!" Hello World! >>> print 1 + 1 2 2014/9/1 H26年度オープンハウス・アドバンストコース 9
  • 10. 動作確認 • 対話型インタプリタを起動し,次の通り入力し 出力を確認 >>> print "Hello World!" Hello World! >>> print 1 + 1 2 2014/9/1 H26年度オープンハウス・アドバンストコース 10
  • 11. 動作確認 • 次の内容のプログラムファイルを作成 • プログラムを実行し,出力を確認 % python (ファイル名).py Hello World! #! /usr/bin/ python# coding: utf-8print "Hello World!" 2014/9/1 H26年度オープンハウス・アドバンストコース 11
  • 12. 動作確認 • 次の内容のプログラムファイルを作成 • プログラムを実行し,出力を確認 % python (ファイル名).py Hello World! #! /usr/bin/ python # coding: utf-8 print "Hello World!" 2014/9/1 H26年度オープンハウス・アドバンストコース 12
  • 13. ※注意 • プログラムファイルの先頭2行はおまじない (だと思って良い) • 今後の演習でも必ず記述しておく 2014/9/1 H26年度オープンハウス・アドバンストコース 13 #! /usr/bin/ python # coding: utf-8
  • 14. これからの演習 • 今日のPython講座の演習は 対話型インタプリタ上でやります • 明日以降の機械翻訳機の作成は テキストエディタでプログラムファイルを作成 することになると思います 2014/9/1 H26年度オープンハウス・アドバンストコース 14
  • 16. インデント • Pythonではコードのブロックを インデントで表す – 同じレベルのインデントは高さを揃える – 1つのインデントはスペース4つ推奨 >>> if a == b: ... print "same" 2014/9/1 H26年度オープンハウス・アドバンストコース 16
  • 17. if文 • 条件分岐にはif文を使う >>> if a == b: ... print "a==b" ... elifa == c: ... print "a==c" ... else: print "nothing" 2014/9/1 H26年度オープンハウス・アドバンストコース 17
  • 18. 条件部分 • True/Falseを返す演算子やメソッド – 比較演算子==, >, <, =>, =< – 論理演算子and, or, not >>> 2 == 3 False >>> 1 < 2 and not 2 == 3 True 2014/9/1 H26年度オープンハウス・アドバンストコース 18
  • 19. 条件部分 • True/Falseを返す演算子やメソッド – 比較演算子==, >, <, =>, =< – 論理演算子and, or, not >>> 2 == 3 False >>> 1 < 2 and not 2 == 3 True 2014/9/1 H26年度オープンハウス・アドバンストコース 19
  • 20. 条件部分 – 演算子in – startswith, endswithなどのメソッド >>> 2 in [1, 2, 3] True >>> "Hello".startswith("He") True 2014/9/1 H26年度オープンハウス・アドバンストコース 20
  • 21. 条件部分 – 演算子in – startswith, endswithなどのメソッド >>> 2 in [1, 2, 3] True >>> "Hello".startswith("He") True 2014/9/1 H26年度オープンハウス・アドバンストコース 21
  • 22. ※備考1 • True/False の2値だけを持つデータ型を bool型という • 数値の0や,空のコンテナ(list, dictなど)は Falseとして評価される >>> if not 0: ... print "empty" # 結果,"empty"と表示 2014/9/1 H26年度オープンハウス・アドバンストコース 22
  • 23. while文 • 条件がTrueの間繰り返し >>> i= 0 >>> while i< 3: # iが3未満の間繰り返し ... i= i+ 1 >>> print i 3 2014/9/1 H26年度オープンハウス・アドバンストコース 23
  • 24. while文 • 条件がTrueの間繰り返し >>> i= 0 >>> while i< 3: # iが3未満の間繰り返し ... i= i+ 1 >>> print i 3 2014/9/1 H26年度オープンハウス・アドバンストコース 24
  • 25. for文 • コンテナ(list等)の要素に順次アクセス >>> for iin range(3): ... print i 0 1 2 2014/9/1 H26年度オープンハウス・アドバンストコース 25 range(n) 0~nまでの整数の リストを返す 組み込み関数
  • 26. for文 • コンテナ(list等)の要素に順次アクセス >>> for iin range(3): ... print i 0 1 2 2014/9/1 H26年度オープンハウス・アドバンストコース 26 range(n) 0~nまでの整数の リストを返す 組み込み関数
  • 27. for文 • 順次アクセスのイメージ 2014/9/1 H26年度オープンハウス・アドバンストコース 27
  • 28. for文, while文の制御 • continue – 次のループに進む • break – ループから抜け出す 2014/9/1 H26年度オープンハウス・アドバンストコース 28
  • 29. def文 • 関数の定義 • return文で値を返すor 関数を抜ける >>> defadd(a, b): ... return a + b >>> add(1, 2) 3 2014/9/1 H26年度オープンハウス・アドバンストコース 29
  • 30. def文 • 関数の定義 • return文で値を返すor 関数を抜ける >>> defadd(a, b): ... return a + b >>> add(1, 2) 3 2014/9/1 H26年度オープンハウス・アドバンストコース 30
  • 32. データ型 • Pythonに変数宣言は無い – 値を代入することで自動で型付けされる – 別の値を代入すると型は動的に変化する • 型にはint, float, str, list, dict等がある(後述) 2014/9/1 H26年度オープンハウス・アドバンストコース 32
  • 33. データ型 >>> a = 1 # aは自動的にint型になる >>> print a 1 >>> a = "Hello World!" # 今度はstr型になる >>> print a Hello World! 2014/9/1 H26年度オープンハウス・アドバンストコース 33
  • 34. データ型 >>> a = 1 # aは自動的にint型になる >>> print a 1 >>> a = "Hello World!" # 今度はstr型になる >>> print a Hello World! 2014/9/1 H26年度オープンハウス・アドバンストコース 34
  • 35. int型,float型 • 数値を格納する型(int:整数,float:実数) • 演算子による四則演算が可能 >>> a = 2 # int >>> b = 3.0 # float >>> a + b 5.0 演算子 演算内容 + 足し算 - 引き算 * 掛け算 / 割り算(型に注意) // 商 % 剰余 ** 累乗 2014/9/1 H26年度オープンハウス・アドバンストコース 35
  • 36. int型,float型 • 数値を格納する型(int:整数,float:実数) • 演算子による四則演算が可能 >>> a = 2 # int >>> b = 3.0 # float >>> a + b 5.0 演算子 演算内容 + 足し算 - 引き算 * 掛け算 / 割り算(型に注意) // 商 % 剰余 ** 累乗 2014/9/1 H26年度オープンハウス・アドバンストコース 36
  • 37. list型 • 複数の値を格納する型 >>> a = [1, 2.0,"ab", 4] # 要素の型は混在可能 >>> print a[2] 2.0 >>> print a[-1] 4 2014/9/1 H26年度オープンハウス・アドバンストコース 37
  • 38. list型 • 複数の値を格納する型 >>> a = [1, 2.0,"ab", 4] # 要素の型は混在可能 >>> print a[2] 2.0 >>> print a[-1] 4 2014/9/1 H26年度オープンハウス・アドバンストコース 38
  • 39. list型 >>> a[1:3] # スライスで範囲を取出す [2.0, "ab"] # 結果もlist >>> a[1:] [2.0, "ab", 4] >>> a[:2] [1, 2.0] 2014/9/1 H26年度オープンハウス・アドバンストコース 39
  • 40. list型 >>> a[1:3] # スライスで範囲を取出す [2.0, "ab"] # 結果もlist >>> a[1:] [2.0, "ab", 4] >>> a[:2] [1, 2.0] 2014/9/1 H26年度オープンハウス・アドバンストコース 40
  • 41. >>> a.append("xyz") # 要素の追加 >>> print a [1, 2.0, "ab", 4, "xyz"] >>> a.insert(2, "three") # 要素の挿入 >>> print a [1, 2.0, “three”, "ab", 4, "xyz"] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 41
  • 42. >>> a.append("xyz") # 要素の追加 >>> print a [1, 2.0, "ab", 4, "xyz"] >>> a.insert(2, "three") # 要素の挿入 >>> print a [1, 2.0, “three”, "ab", 4, "xyz"] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 42
  • 43. >>> del a[2] # 要素の削除(位置指定) >>> print a [1, 2.0, "ab", 4, "xyz"] >>> a.remove("xyz") # 要素の削除(要素指定) >>> print a [1, 2.0, "ab“, 4] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 43
  • 44. >>> del a[2] # 要素の削除(位置指定) >>> print a [1, 2.0, "ab", 4, "xyz"] >>> a.remove("xyz") # 要素の削除(要素指定) >>> print a [1, 2.0, "ab", 4] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 44
  • 45. >>> b = [5, 6, 7] >>> a + b # listの足し算 [1, 2.0, "ab", 4, 5, 6, 7] >>> b * 2 # listの整数倍 [5, 6, 7, 5, 6, 7] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 45
  • 46. >>> b = [5, 6, 7] >>> a + b # listの足し算 [1, 2.0, "ab", 4, 5, 6, 7] >>> b * 2 # listの整数倍 [5, 6, 7, 5, 6, 7] list型 2014/9/1 H26年度オープンハウス・アドバンストコース 46
  • 47. list型 >>> a = [5, 2, 7, 9] >>> a.sort() # 要素の値でソート >>> print a [2, 5, 7, 9] >>> a.reverse() # 逆順 >>> print a [9, 7, 5, 2] 2014/9/1 H26年度オープンハウス・アドバンストコース 47
  • 48. list型 >>> a = [5, 2, 7, 9] >>> a.sort() # 要素の値でソート >>> print a [2, 5, 7, 9] >>> a.reverse() # 逆順 >>> print a [9, 7, 5, 2] 2014/9/1 H26年度オープンハウス・アドバンストコース 48
  • 49. list型 >>> a = [1, 2, 1, 1] >>> len(a) # 全要素の数 4 >>> a.count(1) # 特定の要素の数 3 2014/9/1 H26年度オープンハウス・アドバンストコース 49
  • 50. list型 >>> a = [1, 2, 1, 1] >>> len(a) # 全要素の数 4 >>> a.count(1) # 特定の要素の数 3 2014/9/1 H26年度オープンハウス・アドバンストコース 50
  • 51. ※備考2 • Pythonはオブジェクト指向言語でもある – すべてのデータはオブジェクト c.f.) Java: int型等はオブジェクトではない • オブジェクトはメソッドとよばれる 関数(のようなもの)を持つ >>> a.append(2) 2014/9/1 H26年度オープンハウス・アドバンストコース 51 メソッド
  • 52. str型 • 文字列を格納する型 • 1文字でもstr型(charのような型はない) >>> a = "Hello" # ''でも""でも良い >>> print a Hello 2014/9/1 H26年度オープンハウス・アドバンストコース 52
  • 53. str型 • 一部のメソッドはlistと共通, スライス,len()も使用可 >>> a.count("l") # countメソッド 2 >>> a[1:3] #スライス "el" 2014/9/1 H26年度オープンハウス・アドバンストコース 53
  • 54. str型 • 一部のメソッドはlistと共通, スライス,len()も使用可 >>> a.count("l") # countメソッド 2 >>> a[1:3] #スライス "el" 2014/9/1 H26年度オープンハウス・アドバンストコース 54
  • 55. str型 >>> b = "World" >>> a + b # 文字列の足し算 'HelloWorld' >>> a * 3 # 文字列の整数倍 'HelloHelloHello' 2014/9/1 H26年度オープンハウス・アドバンストコース 55
  • 56. str型 >>> b = "World" >>> a + b # 文字列の足し算 'HelloWorld' >>> a * 3 # 文字列の整数倍 'HelloHelloHello' 2014/9/1 H26年度オープンハウス・アドバンストコース 56
  • 57. str型 >>> a.find("e") # 文字列の位置検索 1 >>> a.replace("llo", "y") # 部分文字列の置換 'Hey' 2014/9/1 H26年度オープンハウス・アドバンストコース 57
  • 58. str型 >>> a.find("e") # 文字列の位置検索 1 >>> a.replace("llo", "y") # 部分文字列の置換 'Hey' 2014/9/1 H26年度オープンハウス・アドバンストコース 58
  • 59. str型 >>> text = "This is a pen" >>> words = text.split() # 空白文字で区切る >>> print words ['This', 'is', 'a', 'pen'] # 結果はlist >>> "_".join(words) # listを連結する 'This_is_a_pen' 2014/9/1 H26年度オープンハウス・アドバンストコース 59
  • 60. str型 >>> text = "This is a pen" >>> words = text.split() # 空白文字で区切る >>> print words ['This', 'is', 'a', 'pen'] # 結果はlist >>> "_".join(words) # listを連結する 'This_is_a_pen' 2014/9/1 H26年度オープンハウス・アドバンストコース 60
  • 61. str型 >>>text.lower() # 小文字化 'this is a pen' >>> text.upper() # 大文字化 'THIS IS A PEN' >>> text.startswith("pen")# 先頭はpenかどうか False >>> text.endswith("pen") # 末尾はpenかどうか True 2014/9/1 H26年度オープンハウス・アドバンストコース 61
  • 62. str型 >>>text.lower() # 小文字化 'this is a pen' >>> text.upper() # 大文字化 'THIS IS A PEN' >>> text.startswith("pen")# 先頭はpenかどうか False >>> text.endswith("pen") # 末尾はpenかどうか True 2014/9/1 H26年度オープンハウス・アドバンストコース 62
  • 63. str型 >>> a = "Nagaoka" >>> len(a) 7 >>> a = "長岡技大" >>> len(a) 12 2014/9/1 H26年度オープンハウス・アドバンストコース 63
  • 64. str型 >>> a = "Nagaoka" >>> len(a) 7 >>> a = "長岡技大" >>> len(a) 12 # !? 2014/9/1 H26年度オープンハウス・アドバンストコース 64
  • 65. unicode型 • 日本語のような多バイト文字を扱うには unicode型を用いる >>> a = u"いろは" # u"文字列"の形 • str型とほぼ同じメソッドを持っているが, あくまで異なる型であることに注意 >>> "abc" + u"いろは" # エラーになる 2014/9/1 H26年度オープンハウス・アドバンストコース 65
  • 66. str型とunicode型 >>> unicode("Hello") # str-> unicode u'Hello' >>> u"Hello".encode("utf-8") # unicode-> str 'Hello' ※「utf-8(unicode)」でエンコードされたstr型と, unicode型は異なるものなので注意 2014/9/1 H26年度オープンハウス・アドバンストコース 66
  • 67. ※備考3 • 今回の演習で使っているPythonは2.x系 • 現在は3.x系もある – printが関数化 – str型を廃止しunicode型に統一 • ただし,一部ライブラリが未対応の場合も – 徐々に対応してきている 2014/9/1 H26年度オープンハウス・アドバンストコース 67
  • 68. dict型 • 他の言語では「ハッシュ」や「連想配列」と 呼ばれる型 • keyとvalueの組が格納される • keyを指定してvalueにアクセスする >>> a = {"name": "Tom", "age": 20} >>> a["name"] 'Tom' 2014/9/1 H26年度オープンハウス・アドバンストコース 68
  • 69. dict型 • 他の言語では「ハッシュ」や「連想配列」と 呼ばれる型 • keyとvalueの組が格納される • keyを指定してvalueにアクセスする >>> a = {"name": "Tom", "age": 20} >>> a["name"] 'Tom' 2014/9/1 H26年度オープンハウス・アドバンストコース 69
  • 70. dict型 >>> a["name"] = "Ken" # valueの上書き >>> print a {"age": 20, "name": "Ken"} # 順番を保持しない >>> a["job"] = "student" # 要素の追加 >>>print a {"job": "student", "age": 20, "name": "Ken"} 2014/9/1 H26年度オープンハウス・アドバンストコース 70
  • 71. dict型 >>> a["name"] = "Ken" # valueの上書き >>> print a {"age": 20, "name": "Ken"} # 順番を保持しない >>> a["job"] = "student" # 要素の追加 >>>print a {"job": "student", "age": 20, "name": "Ken"} 2014/9/1 H26年度オープンハウス・アドバンストコース 71
  • 72. dict型 >>> len(a) 3 >>> a.keys() # 全てkeyを返す ["job", "age", "name"] #結果はlist >>> a.values() # 全てのvalueを返す ["student", 20, "Ken"] # 結果はlist 2014/9/1 H26年度オープンハウス・アドバンストコース 72
  • 73. dict型 >>> len(a) 3 >>> a.keys() # 全てkeyを返す ["job", "age", "name"] #結果はlist >>> a.values() # 全てのvalueを返す ["student", 20, "Ken"] # 結果はlist 2014/9/1 H26年度オープンハウス・アドバンストコース 73
  • 75. ファイルから入力 • openを使ってファイルオブジェクトを生成 • メソッドでファイル内容にアクセス # file.txtを読み込み専用で開く >>> fin = open("file.txt", "r") >>> fin.close() # 使い終わったらclose()
  • 76. ファイルから入力 • 一度にファイル内容全てを読み出す fin.read() • 一行ずつ読み出す fin.readline() • 各行をlistの要素として一度に全て読み出す fin.readlines() 2014/9/1 H26年度オープンハウス・アドバンストコース 76
  • 77. ファイルから入力 • for文によるアクセスも可能(1行ずつ) >>> fin = open("file.txt", "r") >>> for line in fin: ... print line.strip() 2014/9/1 H26年度オープンハウス・アドバンストコース 77 str.strip() 文字列両端の空白文字 (スペースや改行) を取り除くstr型のメソッド
  • 78. 標準入力 • 組み込みモジュールsysをimportする • sys.stdinが標準入力を表す • ファイルオブジェクトと同様にアクセス可能 >>> import sys >>> text = sys.stdin.read() 2014/9/1 H26年度オープンハウス・アドバンストコース 78
  • 79. 標準出力 • print文を利用 >>> a = "Hello" >>> b = "World" >>> print a, b # ,(カンマ)区切り 'Hello World' 2014/9/1 H26年度オープンハウス・アドバンストコース 79
  • 80. 標準出力 • print文を利用 >>> a = "Hello" >>> b = "World" >>> print a, b # ,(カンマ)区切り Hello World 2014/9/1 H26年度オープンハウス・アドバンストコース 80
  • 81. 標準出力 • str型のformatメソッド >>> a = "Hello" >>> b = "Tom" >>> print "{0}, {1}".format(a, b) 'Hello, Tom' >>> print "{greets}, {name}".format(greets=a,name=b) 'Hello, Tom' 2014/9/1 H26年度オープンハウス・アドバンストコース 81
  • 82. 標準出力 • str型のformatメソッド >>> a = "Hello" >>> b = "Tom" >>> print "{0}, {1}".format(a, b) Hello, Tom >>> print "{greets}, {name}".format(greets=a,name=b) Hello, Tom 2014/9/1 H26年度オープンハウス・アドバンストコース 82
  • 84. その他の機能 • その他にもできることは沢山ある – 乱数,数学関数,正規表現等 • なにか欲しい機能があったら – TAに聞いてみる – 公式ドキュメントを調べる • http://docs.python.jp/2/ 2014/9/1 H26年度オープンハウス・アドバンストコース 84
  • 86. FizzBuzz問題 • 1~100までの数字を順に1行ずつ出力する • ただし, – 3で割り切れる場合は代わりにFizz と – 5で割り切れる場合は代わりにBuzz と – 3と5両方で割り切れる場合は代わりにFizz Buzzと 出力する 2014/9/1 H26年度オープンハウス・アドバンストコース 86