Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Python講習会
@okwrtdsh
Pythonの特徴
• コード読みやすい
• 予約語が少ない
• 世界中で人気
• ライブラリが豊富
コードが読みやすい
• インデントでブロックを表現する
• 必要以上のカッコが無い
• PEP(Python Enhancement Proposals)の存在
以上のような特徴があるため書き方に自由度がなく、誰が書いても同じような
コードにな...
PythonとC言語の比較
Python C言語
・Hello world
・階乗の計算
PEP(Python Enhancement Proposals)の存在
PEP8
• 1レベルインデントするごとにスペースを4つ使う
• スペースが正しいインデント方法
• 全ての行の長さを最大79文字までに制限
• トップレベルの関数やクラ...
予約語が少ない
他の言語との比較
• Python2.7.6 31語
• Ruby1.8 40語
• Perl 約200語
• Java 53語
• C 37語
予約語が少ない
• 実際に表示してみると
and, as, assert, break, class, continue, def, del, elif, else,
except, exec, finally, for, from, glob...
世界中で人気
• 2013年最も人気の言語はPython
• Googleなどの大企業やNASAなどの
研究機関でも使われている
ライブラリが豊富
• Web開発
– Django
• 科学系
– SciPy
– Numpy
• 作図
– Matplotlib
• ゲーム開発
– PyGame
• GUI
– PyQt
• GIS(位置情報システム)
– Googlema...
Pythonプログラムの実行
Pythonの実行方法
• インタラクティブシェルを使う
• PYファイルを作成し実行する
インタラクティブシェル
1. Terminalを開く
2. 「python」と入力
3. Pythonコードを入力
4. 「exit()」と入力
おわり
Hello world!を書いてみよう
1. Terminalを開く
2. 「python」と入力
3. 「print “Hello world!”」と入力
4. 「Hello world!」と出力される
5. 「exit()」と入力
おわり
PYファイルを作成し実行する
1. テキストエディタを開く
2. Pythonコードを入力
3. 「○○.py」と名前を付けて保存
4. Terminalを開く
5. 「python ○○.py」と入力
おわり
Hello world!を書いてみよう
1. テキストエディタを開く
2. 「print “Hello world!”」と入力
3. 「hello_world.py」と名前を付けて保存
4. Terminalを開く
5. 「python hel...
タイプとオブジェクト
タイプとオブジェクト
• Pythonでは、すべてのデータはオブジェクトとして作られる
• タイプ(型)というのは、オブジェクトの種類のこと
1. 数値
2. 文字列
3. リスト
4. タプル
5. 辞書型
6. 集合型
1.数値
• 整数型、浮動小数点型などに加え、
複素数型なども扱うことができる
• 演算子
 足し算 +
 引き算 –
 掛け算 *
 割り算 /
 剰余 %
 指数 **
2.文字列
• 文字列は「”」または「’」で記述する
• 複数行は「”””」または「’’’」で記述する
• 文字列の結合は「+」
• 文字列の繰り返しは「*」
• 文字列中の文字へはインデックスでアクセス可能
• 文字列の長さはlen関数で求め...
3.リスト
• リストは「[」と「]」で要素を囲み記述する
• リスト内の要素へはインデックスを用いて
アクセスできる
• 末尾に要素を追加する時はappend
関数を用いる
• 末尾の要素を取り出すにはpop関数を
用いる
• 要素数を取得す...
4.タプル
• タプルは「(」と「)」で要素を囲み記述する
• 要素が一つの場合は「,」が必要
• タプル内の要素へはインデックスを用いて
アクセスできる
• 要素の数と同じ数の変数に各要素を
一度に代入できる
• 要素への値の代入ができない
...
5.辞書型
• 辞書は「{」と「}」で要素を囲み記述する
• keyとvalueをペアで保持することができる
• keyを使ってvalueにアクセスできる
• keyのリストを取得するにはkeys関数を
用いる
• Valueのリストを取得する...
6.集合型(set)
• 順序付けされていないユニークな
要素で構成されたコレクション
• 文字列またはリストから作成する
• setの演算
– 要素の削除 –
– 要素の和 |
– 両方に含まれる要素 &
– 一方に含まれる要素 ^
制御文
制御文
• 処理の分岐
– if
– elif
– else
• 処理の繰り返し
– for
– while
処理の分岐
• 関係演算子
– < より小さい
– <= 等しいまたはより小さい
– > より大きい
– >= 等しいまたはより大きい
– == 等しい
– != 異なる
• 論理演算子
– and かつ
– or または
– not 否定
処理の繰り返し
• for文
for 変数 in オブジェクト:
処理
• range関数
range([start,] stop[, step])
等差数列を含むリストを生成する関数
• while文
while 条件式:
処理
関数オブジェクト
関数オブジェクト
• 関数の定義
– def文
def 関数名(引数1, 引数2, …):
処理
– lambda式
lambda 引数1, 引数2, … : 引数を使う式
• 関数の呼び出し
関数名(引数)
その他
型変換
• 文字列を整数に
– int関数
• 整数を文字列に
– str関数
• リストの要素の型変換
– map関数
リスト内包表記
• 内包表記とは
リストや辞書におけるループ処理
をシンプルに書くための表記法
• 種類
– リスト内包
– ジェネレータ式
– セット内包
– 辞書内包
その他
• in
特定の要素が含まれるか
調べることができる
• オプション引数の評価のタイミング
関数の定義時に1回だけ
評価される
• 内包表記はスコープを作らない
注意
• 代入によってローカル変数が作られる
ネストした関数内で外側のスコープにある
変数名に代入を行っても、内側のスコープ
に新たにローカル変数が作られ、外側の
変数には影響を与えない。
注意
• 変数はすべて参照
代入ではコピーが行われない。
• 整数がオーバーフローしない
整数の加減乗除やシフト演算で整数の
範囲を超えた場合、上限の無い
「長整数(long)」に変換される。
注意
入出力
• 1行に文字列1つの入力
s = raw_input()
• 1行にスペース区切りで複数文字列の入力
l = raw_input().sprit()
入力
• 1行に文字列1つを出力(改行含む)
print s
• 1行に文字列1つを出力(改行含まない)
import sys
sys.stdout.write(s)
• 1行にスペース区切りで複数文字列
を出力(改行含む)
print s1, s2...
演習
問題
• 1から100の整数を表示する。
• ただし、3の倍数または3を含む整数の場合には
数字の代わりに“San!”と出力する。
解答例
問題
• 初めに整数Nを入力する。
• その後N個の整数を入力し、『, ␣(カンマ+スペース)』区切りで出力する。
• 例
入力
3
1
3
7
出力
1, 3, 7
解答例
まとめ
まとめ
• コード読みやすい
• 予約語が少なく覚えやすい
• ライブラリが豊富
• 大手の企業でも使われている
まとめ
• タイプとオブジェクト
• 関数オブジェクト
• 処理の分岐、処理の繰り返し
• 型の変換
• リスト内包表記
• 入出力
まとめ
Python書こう
Upcoming SlideShare
Loading in …5
×

Python講習会

496 views

Published on

OUCC Python講習会の資料です。

Published in: Science
  • Be the first to comment

  • Be the first to like this

Python講習会

  1. 1. Python講習会 @okwrtdsh
  2. 2. Pythonの特徴 • コード読みやすい • 予約語が少ない • 世界中で人気 • ライブラリが豊富
  3. 3. コードが読みやすい • インデントでブロックを表現する • 必要以上のカッコが無い • PEP(Python Enhancement Proposals)の存在 以上のような特徴があるため書き方に自由度がなく、誰が書いても同じような コードになりメンテナンス性がとても良い
  4. 4. PythonとC言語の比較 Python C言語 ・Hello world ・階乗の計算
  5. 5. PEP(Python Enhancement Proposals)の存在 PEP8 • 1レベルインデントするごとにスペースを4つ使う • スペースが正しいインデント方法 • 全ての行の長さを最大79文字までに制限 • トップレベルの関数やクラスは2行ずつ空けて定義する • 余計な空白文字は使わない Etc… 参考 - http://pep8-ja.readthedocs.org/ja/latest/
  6. 6. 予約語が少ない 他の言語との比較 • Python2.7.6 31語 • Ruby1.8 40語 • Perl 約200語 • Java 53語 • C 37語
  7. 7. 予約語が少ない • 実際に表示してみると and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield の31語 • 予約語が少ないのですぐに覚えられる
  8. 8. 世界中で人気 • 2013年最も人気の言語はPython • Googleなどの大企業やNASAなどの 研究機関でも使われている
  9. 9. ライブラリが豊富 • Web開発 – Django • 科学系 – SciPy – Numpy • 作図 – Matplotlib • ゲーム開発 – PyGame • GUI – PyQt • GIS(位置情報システム) – Googlemaps • エクセル – Xlsxwriter – Openpyxl • 画像処理 – PIL Etc...
  10. 10. Pythonプログラムの実行
  11. 11. Pythonの実行方法 • インタラクティブシェルを使う • PYファイルを作成し実行する
  12. 12. インタラクティブシェル 1. Terminalを開く 2. 「python」と入力 3. Pythonコードを入力 4. 「exit()」と入力 おわり
  13. 13. Hello world!を書いてみよう 1. Terminalを開く 2. 「python」と入力 3. 「print “Hello world!”」と入力 4. 「Hello world!」と出力される 5. 「exit()」と入力 おわり
  14. 14. PYファイルを作成し実行する 1. テキストエディタを開く 2. Pythonコードを入力 3. 「○○.py」と名前を付けて保存 4. Terminalを開く 5. 「python ○○.py」と入力 おわり
  15. 15. Hello world!を書いてみよう 1. テキストエディタを開く 2. 「print “Hello world!”」と入力 3. 「hello_world.py」と名前を付けて保存 4. Terminalを開く 5. 「python hello_world.py」と入力 6. 「Hello world!」と出力される おわり
  16. 16. タイプとオブジェクト
  17. 17. タイプとオブジェクト • Pythonでは、すべてのデータはオブジェクトとして作られる • タイプ(型)というのは、オブジェクトの種類のこと 1. 数値 2. 文字列 3. リスト 4. タプル 5. 辞書型 6. 集合型
  18. 18. 1.数値 • 整数型、浮動小数点型などに加え、 複素数型なども扱うことができる • 演算子  足し算 +  引き算 –  掛け算 *  割り算 /  剰余 %  指数 **
  19. 19. 2.文字列 • 文字列は「”」または「’」で記述する • 複数行は「”””」または「’’’」で記述する • 文字列の結合は「+」 • 文字列の繰り返しは「*」 • 文字列中の文字へはインデックスでアクセス可能 • 文字列の長さはlen関数で求められる
  20. 20. 3.リスト • リストは「[」と「]」で要素を囲み記述する • リスト内の要素へはインデックスを用いて アクセスできる • 末尾に要素を追加する時はappend 関数を用いる • 末尾の要素を取り出すにはpop関数を 用いる • 要素数を取得するにはlen関数を用いる
  21. 21. 4.タプル • タプルは「(」と「)」で要素を囲み記述する • 要素が一つの場合は「,」が必要 • タプル内の要素へはインデックスを用いて アクセスできる • 要素の数と同じ数の変数に各要素を 一度に代入できる • 要素への値の代入ができない (一度定義したタプルの要素は変更できない)
  22. 22. 5.辞書型 • 辞書は「{」と「}」で要素を囲み記述する • keyとvalueをペアで保持することができる • keyを使ってvalueにアクセスできる • keyのリストを取得するにはkeys関数を 用いる • Valueのリストを取得するにはvalues関数 関数を用いる • 特定のkeyが辞書に含まれるかはhas_key 関数を用いる
  23. 23. 6.集合型(set) • 順序付けされていないユニークな 要素で構成されたコレクション • 文字列またはリストから作成する • setの演算 – 要素の削除 – – 要素の和 | – 両方に含まれる要素 & – 一方に含まれる要素 ^
  24. 24. 制御文
  25. 25. 制御文 • 処理の分岐 – if – elif – else • 処理の繰り返し – for – while
  26. 26. 処理の分岐 • 関係演算子 – < より小さい – <= 等しいまたはより小さい – > より大きい – >= 等しいまたはより大きい – == 等しい – != 異なる • 論理演算子 – and かつ – or または – not 否定
  27. 27. 処理の繰り返し • for文 for 変数 in オブジェクト: 処理 • range関数 range([start,] stop[, step]) 等差数列を含むリストを生成する関数 • while文 while 条件式: 処理
  28. 28. 関数オブジェクト
  29. 29. 関数オブジェクト • 関数の定義 – def文 def 関数名(引数1, 引数2, …): 処理 – lambda式 lambda 引数1, 引数2, … : 引数を使う式 • 関数の呼び出し 関数名(引数)
  30. 30. その他
  31. 31. 型変換 • 文字列を整数に – int関数 • 整数を文字列に – str関数 • リストの要素の型変換 – map関数
  32. 32. リスト内包表記 • 内包表記とは リストや辞書におけるループ処理 をシンプルに書くための表記法 • 種類 – リスト内包 – ジェネレータ式 – セット内包 – 辞書内包
  33. 33. その他 • in 特定の要素が含まれるか 調べることができる
  34. 34. • オプション引数の評価のタイミング 関数の定義時に1回だけ 評価される • 内包表記はスコープを作らない 注意
  35. 35. • 代入によってローカル変数が作られる ネストした関数内で外側のスコープにある 変数名に代入を行っても、内側のスコープ に新たにローカル変数が作られ、外側の 変数には影響を与えない。 注意
  36. 36. • 変数はすべて参照 代入ではコピーが行われない。 • 整数がオーバーフローしない 整数の加減乗除やシフト演算で整数の 範囲を超えた場合、上限の無い 「長整数(long)」に変換される。 注意
  37. 37. 入出力
  38. 38. • 1行に文字列1つの入力 s = raw_input() • 1行にスペース区切りで複数文字列の入力 l = raw_input().sprit() 入力
  39. 39. • 1行に文字列1つを出力(改行含む) print s • 1行に文字列1つを出力(改行含まない) import sys sys.stdout.write(s) • 1行にスペース区切りで複数文字列 を出力(改行含む) print s1, s2, s3 • 1行にカンマ区切りで複数文字列 を出力(改行含む) print “,”.join(str_list) 出力
  40. 40. 演習
  41. 41. 問題 • 1から100の整数を表示する。 • ただし、3の倍数または3を含む整数の場合には 数字の代わりに“San!”と出力する。
  42. 42. 解答例
  43. 43. 問題 • 初めに整数Nを入力する。 • その後N個の整数を入力し、『, ␣(カンマ+スペース)』区切りで出力する。 • 例 入力 3 1 3 7 出力 1, 3, 7
  44. 44. 解答例
  45. 45. まとめ
  46. 46. まとめ • コード読みやすい • 予約語が少なく覚えやすい • ライブラリが豊富 • 大手の企業でも使われている
  47. 47. まとめ • タイプとオブジェクト • 関数オブジェクト • 処理の分岐、処理の繰り返し • 型の変換 • リスト内包表記 • 入出力
  48. 48. まとめ Python書こう

×