Submit Search
Upload
第1回python勉強会
•
9 likes
•
2,499 views
Y
Yoshio Shimomura
Follow
第1回python勉強会のスライド
Read less
Read more
Education
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 60
Download now
Download to read offline
Recommended
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
信之 岩永
Python入門
Python入門
Shohei Okada
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa
http2 最速実装 v2
http2 最速実装 v2
Yoshihiro Iwanaga
寝プログラミングのススメ
寝プログラミングのススメ
Yoshitaka Kawashima
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Recommended
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
信之 岩永
Python入門
Python入門
Shohei Okada
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
Takayuki Shimizukawa
http2 最速実装 v2
http2 最速実装 v2
Yoshihiro Iwanaga
寝プログラミングのススメ
寝プログラミングのススメ
Yoshitaka Kawashima
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Kaoru Maeda
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
Study Group by SciencePark Corp.
意識の低い自動化
意識の低い自動化
greenasparagus
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
error_highlight: User-friendly Error Diagnostics
error_highlight: User-friendly Error Diagnostics
mametter
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
JPUGしくみ+アプリケーション勉強会(第20回)
JPUGしくみ+アプリケーション勉強会(第20回)
Yoshinori Nakanishi
STNSサーバーを書いてみた
STNSサーバーを書いてみた
Yoshinori Teraoka
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
DevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Takahiro Inoue
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
y_taka_23
Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理
Yahoo!デベロッパーネットワーク
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
gitの履歴を線形に保つ
gitの履歴を線形に保つ
y42sora
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Go Maeda
Softlayer勉強会#2
Softlayer勉強会#2
Shuichi Yukimoto
勉強会資料#1
勉強会資料#1
Shuichi Yukimoto
More Related Content
What's hot
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Kaoru Maeda
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
Study Group by SciencePark Corp.
意識の低い自動化
意識の低い自動化
greenasparagus
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
Yoshio Hanawa
error_highlight: User-friendly Error Diagnostics
error_highlight: User-friendly Error Diagnostics
mametter
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
JPUGしくみ+アプリケーション勉強会(第20回)
JPUGしくみ+アプリケーション勉強会(第20回)
Yoshinori Nakanishi
STNSサーバーを書いてみた
STNSサーバーを書いてみた
Yoshinori Teraoka
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
DevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Takahiro Inoue
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
y_taka_23
Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理
Yahoo!デベロッパーネットワーク
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
Takao Sumitomo
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
gitの履歴を線形に保つ
gitの履歴を線形に保つ
y42sora
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Go Maeda
What's hot
(20)
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
意識の低い自動化
意識の低い自動化
GitHubにバグ報告して賞金$500を頂いた話
GitHubにバグ報告して賞金$500を頂いた話
error_highlight: User-friendly Error Diagnostics
error_highlight: User-friendly Error Diagnostics
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
JPUGしくみ+アプリケーション勉強会(第20回)
JPUGしくみ+アプリケーション勉強会(第20回)
STNSサーバーを書いてみた
STNSサーバーを書いてみた
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
DevLOVE DDDBC
DevLOVE DDDBC
Python入門 : 4日間コース社内トレーニング
Python入門 : 4日間コース社内トレーニング
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
Bonfire API #1 APIのリトライ処理
Bonfire API #1 APIのリトライ処理
アプリを成長させるためのログ取りとログ解析に必要なこと
アプリを成長させるためのログ取りとログ解析に必要なこと
明日使えないすごいビット演算
明日使えないすごいビット演算
gitの履歴を線形に保つ
gitの履歴を線形に保つ
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Redmine 4.0 の新機能、Redmine 4.1の開発状況
Viewers also liked
Softlayer勉強会#2
Softlayer勉強会#2
Shuichi Yukimoto
勉強会資料#1
勉強会資料#1
Shuichi Yukimoto
Send grid softlayer_nagoya
Send grid softlayer_nagoya
Shuichi Yukimoto
Ocif2016_go_web_freamwork
Ocif2016_go_web_freamwork
Shuichi Yukimoto
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
Shuichi Yukimoto
Slackbot_by_OpenWhisk
Slackbot_by_OpenWhisk
Shuichi Yukimoto
Softlayer_API_openWhisk
Softlayer_API_openWhisk
Shuichi Yukimoto
WindowsでPython
WindowsでPython
drillan
Viewers also liked
(8)
Softlayer勉強会#2
Softlayer勉強会#2
勉強会資料#1
勉強会資料#1
Send grid softlayer_nagoya
Send grid softlayer_nagoya
Ocif2016_go_web_freamwork
Ocif2016_go_web_freamwork
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
Slackbot_by_OpenWhisk
Slackbot_by_OpenWhisk
Softlayer_API_openWhisk
Softlayer_API_openWhisk
WindowsでPython
WindowsでPython
Similar to 第1回python勉強会
C#勉強会
C#勉強会
hakugakucafe
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Yahoo!デベロッパーネットワーク
Sphinx/reST
Sphinx/reST
Ryo Maruyama
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
fuzzysphere
研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
AromaBlack
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
信之 岩永
Pyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
Java オブジェクトの内部構造
Java オブジェクトの内部構造
Taku Miyakawa
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
20170131 python3 6 PEP526
20170131 python3 6 PEP526
masahitojp
Hello World Python featuring GAE
Hello World Python featuring GAE
Maito Kuwahara
使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
C++の復習
C++の復習
Toshihiko Ando
Behat Driven Development
Behat Driven Development
Ryo Tomidokoro
.NET Compiler Platform
.NET Compiler Platform
信之 岩永
Introduction of Python
Introduction of Python
Tomoya Nakayama
2013_kougi6
2013_kougi6
ytanno
Similar to 第1回python勉強会
(20)
C#勉強会
C#勉強会
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
Sphinx/reST
Sphinx/reST
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Wrapping a C++ library with Cython
Wrapping a C++ library with Cython
研究生のためのC++ no.2
研究生のためのC++ no.2
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
Pyconjp2014_implementations
Pyconjp2014_implementations
Java オブジェクトの内部構造
Java オブジェクトの内部構造
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
C#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
20170131 python3 6 PEP526
20170131 python3 6 PEP526
Hello World Python featuring GAE
Hello World Python featuring GAE
使い捨て python コードの書き方
使い捨て python コードの書き方
C++の復習
C++の復習
Behat Driven Development
Behat Driven Development
.NET Compiler Platform
.NET Compiler Platform
Introduction of Python
Introduction of Python
2013_kougi6
2013_kougi6
Recently uploaded
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
Recently uploaded
(6)
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
第1回python勉強会
1.
第1回 python勉強会 株式会社MNU 下村
佳生
2.
自己紹介 • 下村 佳生
1984/03/07 • 株式会社MNU 取締役(4月で3年目 • 使ったことがある言語 python / js / c# / php / c / c++ • 大学ではCPUシミュレータ弄ってました
3.
勉強会目標(仮) • python(django)でwebアプリケーション作成 • pythonの使い方をパラパラめくっても 楽しくない •
目標がないと分かった気になって終わる 勉強会での課題募集中
4.
pythonお試し環境 • ブラウザ上で色々な言語を実行できるサイト • http://ideone.com/ •
https://paiza.io/
5.
今日の内容 • python紹介 • 基本的なデータ構造 •
コードの書き方基礎 • パッケージとモジュール • クラスの記述 • 特殊な記述 • ライブラリを使おう
6.
python紹介
7.
外見の特徴 • 中括弧 {
, } ではなくインデントで構造を表す • 関数や制御文の後はインデントを1つ下げる • 中身を省略したい場合は「pass」と書く • タブではなくスペース4つでインデント • 1行は80文字(100文字)以内 • → 誰が書いても似たような見た目になる
8.
中身の特徴 • データも関数も全てオブジェクト • 1
→ 数字型のオブジェクト • 引数に関数を渡すことが可能 • 関数に属性を追加できる
9.
組み込み定数 • 真偽値 • True
/ False • null値 • None
10.
基本的なデータ構造
11.
基本的なデータ構造 • リスト(配列のようなもの) • タプル(変更できないリスト) •
辞書(ハッシュ,連想配列のようなもの) • セット(集合,順序のないリスト)
12.
リスト(list) • 大括弧で宣言 • a
= [1, 2, 3] • リストの追加はappendメソッドを使用 • a.append(4) • 連結はextend もしくは + • extendは元の配列に追加, + は新しい配列の作成 • a[0], a[1]のように参照可能
13.
タプル(tuple) • 編集できないリスト • 括弧で宣言 •
x = (1, 2, 3) • appendやextendはない • + 演算子は使用可能 (新しいタプルができる) • 要素一個のタプルを作る場合は後ろに , をつける • x[0] x[1]のように参照可能
14.
辞書(dict) • 中括弧で宣言, key:
valueのペアを , で繋げる • d = {1: 2, 2: 4, a : b } • key で参照可能 • 存在しないかもしれないkeyの取得はgetを使う
15.
辞書オブジェクトの関数色々 • d.get(key, default) •
d[key]の取得.なかったらdefaultを返す • key in d • keyがdにあればTrue, なければFalseを返す • d.setdefault(key, value) • d[key]がなければvalueをセット,あれば何もしない • d.update(dict) • 辞書を新しい辞書で上書き • d.items() • keyとvalueのタプルのリストを返す [(key, value), (key, value), …]
16.
集合(set) • 順序のないリスト • 中括弧で宣言 •
{1, 2, 3, 4} • ユニークな値の抽出や重複のチェックなどに便利 {1} {4}{2, 3}
17.
コードの書き方基礎
18.
pythonファイルを作ろう • 拡張子は .py •
コメントは先頭に # • 文字列は か で囲む • 日本語がある場合は uをつけて囲む u こんな感じ • python2系統で日本語を使う場合は ファイル1行目に以下を記述
19.
記述方法 • スペースや改行,カンマの位置などは以下を推奨 • PEP8本家 http://legacy.python.org/dev/peps/pep-0008/ •
PEP8(日本語訳) http://pep8-ja.readthedocs.org/ja/latest/
20.
繰り返し文 • 構文は以下のとおり for 代入する変数名
in イテレータ: • 辞書は keys(), values(), items()で keyだけ,値だけ, (key, value) が取れる
21.
繰り返し文補足 • 辞書のfor文は以下のように書くことが多い ※タプルは a,
b = (1, 2) のように代入できる
22.
if文 • 構文は以下の通り if 条件: •
複数条件がある場合は and や or を使う
23.
関数の記述 • def の後ろに関数名 •
カッコの中に引数を定義 • = を付けることでデフォルト値を設定可能 • * , ** と記述することで可変引数の取得が可能 • 最後に :
24.
関数の呼び出し方 • = を付けることで特定の引数のみ渡せる •
リスト(タプル)に * を付けると一気に渡せる • 辞書に ** を付けると名前付きで一気に渡せる
25.
関数の戻り値 • return a
b のように書くことで複数個返せる • 呼び出し元はタプルで受け取る • タプル,リストは a, b = arr で代入可能
26.
• スコープ外で定義されたObjectの参照も可能 • スコープ内で宣言前に参照するとエラーになる •
以下の順序で適用 • 関数 • クラス • ファイル • グローバル スコープ OK NG
27.
パッケージとモジュール
28.
モジュール • 「.pyファイル」がモジュールとなる • 中身は関数やクラス,変数の集まり •
__name__でモジュール名が取得できる • 一番最初に実行されるモジュール名は__main__ 直接読み込んだ場合に定義した関数を実行する例
29.
パッケージ • モジュールをまとめたもの • ディレクトリの中に__init__.pyを用意する •
中身は空でよい SoftLayerパッケージの中身
30.
モジュール/パッケージの読込 • import [パッケージ/モジュール名] •
from [パッケージ名] import [モジュール名] • 後ろに as を付けると別名にできる
31.
クラスの記述
32.
クラスの記述 • class 名前(継承元):
の形で記述 • 継承元がない場合は object を書く • メソッドの第1引数は全てselfを取る • クラスメソッドの場合も同様(こっちはclsにする)
33.
クラス記述例
34.
コンストラクタとデストラクタ • __init__メソッドがコンストラクタに相当 • __del__メソッドがコンストラクタに相当 •
__(アンダーバーを2つ)を前後に挟んだメソッドは 大体特殊な用途のメソッド
35.
特殊メソッド • 演算子オーバーロード • オブジェクトに定義することで動作を追加,変更 表記
意味 使用例等 __str__ 簡易文字表現 printなど __repr__ 詳細文字表現 logなど __eq__ 比較演算子(=) insA == insB __getitem__ 辞書表現 ins[key] __call__ 関数化 ins() 特殊メソッドの例
36.
特殊メソッド実装例 辞書アクセスとインスタンスの例 実行結果
37.
特殊メソッド色々 • python2 • http://docs.python.jp/2/reference/ datamodel.html#specialnames •
python3 • http://docs.python.jp/3/reference/ datamodel.html#specialnames
38.
特殊な記法
39.
特殊な記法 • リスト内包表記 • http://docs.python.jp/2/tutorial/datastructures.html#id6 •
デコレータ • http://docs.python.jp/2/glossary.html#term-decorator • with • http://docs.python.jp/2/reference/ datamodel.html#context-managers
40.
リスト内包表記 • [作成する要素 for
x in list 判定式] • {}で囲むと辞書,()で囲むとジェネレータになる 0から9までの偶数を10倍したリストを作るコードの比較
41.
デコレータ • 関数をラップして関数を返す関数 • 引数や戻り値のチェックや変換が可能 •
認証処理やProxyなど,共通ロジックで使用 • 関数やメソッドの前の行に @ をつけて指定する • 入れ子も可能(下から順番に適用される)
42.
デコレータの例(1/4) • 関数を受け取って,その関数をそのまま返すデコレータ • 左右でやってることは同じ
43.
デコレータの例(2/4) • 関数を受け取って,全く別の関数を返すデコレータ
44.
デコレータの例(3/4) • 引数を増やしてみる
45.
デコレータの例(4/4) • 引数を装飾し,渡された関数を呼びなおす
46.
with構文 • 明確なタイミングで終了処理をしたい時に利用 • fileのopen,
closeなど • javaなどのtry-catch-finallyに相当 • __enter__,__exit__メソッドを実装することで 自作可能
47.
htmlタグを出力するwith
48.
ライブラリを使おう
49.
ライブラリを使おう • python standard
library • 標準でついてくるライブラリ • http://docs.python.jp/2/library/ • http://docs.python.jp/3/library/ • pip • サードパーティ製の便利コード色々 • https://pypi.python.org/pypi/pip
50.
カレンダー操作 • calendar.Calendar • 様々なiteratorを返すカレンダークラス •
各メソッドに年月を渡す 引数はスタートの曜日 0:月曜 ∼ 6:日曜
51.
カレンダー表示 • calendar.TextCalendar • カレンダー表示を行う
52.
日付型と操作 (1/2) • datetime.date
日付を表すクラス • datetime.timedelta 日付や時間の差分 日付同士は引き算可能 結果はtimedelta型
53.
日付型と操作 (2/2) • timedeltaは足すことも可能 結果はdate型 時間単位や週単位も指定可能 では1ヶ月後はどう計算する?
54.
日付計算 • 単純に一ヶ月を足すと… • 5/31
→ 6/31 でエラー • 12/1 → 13/1 でエラー →月の最大日数を考慮しよう from calendar import monthrange →12月の場合は翌年の1月に設定
55.
日付計算 実装例
56.
もっと簡単な日付操作 • python-dateutilライブラリ(pipでinstall) • dateutil.relativedelta.relativedelta •
より詳細な日付操作が可能 http://dateutil.readthedocs.org/en/latest/relativedelta.html 2月31日(3月3日)ではなく2月28日になる monthではなくmonthsなのに注意
57.
日付操作応用 問題 • 月末を取得してみよう
58.
日付操作応用 答え • 今月の月末の取得
59.
日付操作おまけ
60.
クラスをカスタマイズしよう dateクラスを継承し,月末を返すメソッドを追加
Download now