gridscaleinc / learning-python Goto Github PK
View Code? Open in Web Editor NEWPythonはAI (Deep Learning)に入っていくの必携武器です。 Pythonを学んで、 機械学習を中心としてAI領域をチャレンジしましょう。
Home Page: http://www.gridscale.com
PythonはAI (Deep Learning)に入っていくの必携武器です。 Pythonを学んで、 機械学習を中心としてAI領域をチャレンジしましょう。
Home Page: http://www.gridscale.com
© 2018 Gridscale Inc. http://www.gridscale.com
言語を覚えたのは、小学校を卒業したとえよう。
小説家になれるかどうかは、これからだ。
プログラミング言語を学んだのは、たた喋るれ子になったに過ぎず、この強烈な道具を使って、
どんな小説を書こうかは、ほかの分野であれば、言語はコミュニケーション。
WEB フレームワーク: Flask
インフラ自動化: Fabric
テスト pytest, Tox
暗号化 pycrypto , hashlib
グラフィック(turtle, Tkinter)
データ解析(numpy, pandas,
matplotlib),
キューイングシステム(ZeroMQ, Celery)、
非同期処理(asyncio)
データ可視化 juypter notebook
AI:
Tensorflow
scikit-learn : Machine Learning
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
https://docs.pytest.org/en/latest/
https://docs.pytest.org/en/latest/getting-started.html#getstarted
PDF:
https://media.readthedocs.org/pdf/pytest/latest/pytest.pdf
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© Gridscale Inc. http://www.gridscale.com
Pythonはマルチパラダイム言語です。関数型オブジェクトが存在します。
ラムダ式は式を名前のない関数オブジェクトに変関数式のことです。
一つの式のためにわざわざ関数を定義したくない場合、Lamda式を使うのが有効でしょ。
でも、あまりにも乱用すると、ソースコードがあえて読みづらくなりますので、ほどほど使いましょう。
■ 関数ですから、パラメータを持つことができます。
■ 式ですから、この関数の中には一つの式しか表現できない。
Keywork: lambda
x + y ------> lambda (x,y) : x + y
x*2 + y*2 -----> lambda (x,y) : x*x + y*y
挨拶できるラムダ式を作ってくだい。
xxと渡したら、と出力。 こんにちは、xxさん。
「田中さん、こんにち」はでもいいけどね。
https://docs.python.jp/3/reference/expressions.html#lambda
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
公園でとった昆虫や、虫を観察したことはありますか。好奇心旺盛なこともならきっと、虫眼鏡で観察するでしょう。観察とは、ある対象に対して様々な側面をしますが、五感で観察できる範囲なら、
色、匂い、大きさ、触って見ての感触、鳴き声、大胆な子なら、食べてみるのも一つの観察手段。
科学的な研究なら、対象を解剖して調べる必要もあります。
そうやって、ものに対する理解を深めていくでしょ。
プログラミングにおいても、オブジェクトに対する観察は言語に対する理解を深くすることは疑いようがない。 オブジェクトの性質が深く知れば、知るほど、プログラミング能力は高まるでしょ。
では、この宿題を通して、簡易なオブジェクト虫眼鏡を作って見ましょう。
何より、オブジェクトを観察する習慣を身につけって欲しいです。
必要であれば、オブジェクト虫眼鏡をどんどん改善していくことも可能です。
class Magnifier :
def observe(obj):
class Abc:
name = "Abc"
age = 12
country = "ジオン公国"
def say() :
#何かを出力して...
任意のオブジェクトに対して、下記の項目をレポートします。
magnifier = Magnifier()
magnifier.observe("abc")
magnifier.observe(magnifier.observe)
obj = Abc()
magnifier.observe(obj)
## リストを観察
...
## Mapを観察
...
## 集合を観察
...
https://docs.python.org/ja/3/reference/datamodel.html
pythonの組み込み関数:
https://docs.python.jp/3/library/functions.html#type
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less005/Less005.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
Pythonはマルチパラダイム言語です。関数型プログラミングを行うことは可能です。
難しい呼び方である関数型プログラミングはなんの為でしょうか。
1)形式的に証明可能性
これは実用性はない。覚えなくでいい
2)モジュラー性
問題を細かく分割し、定義する。
3)デバグやテストの簡単さ
関数単位をテストし、正しくすれば、プログラムの品質は高くなる。
4)高階関数
関数を作る関数ができる。
関数をパラメータにすることできる。
これによって、プログラムの再利用性が高まる。
5)Lambda式
def文がなくても、関数を定義でき、呼び出すことが可能。
6 ) operator モジュール
https://docs.python.jp/3/howto/functional.html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© Gridscale Inc. http://www.gridscale.com
思春期の中学生たちはクラス換えで良い席を取りたいと思っている。。。。
しかし、苦手な人にはなるべく遠ざけたいでしょう。
あるクラスのメンバ構成はこうなっている。
A1,A2,A3...........A8
B1,B2,B3............B8
C1,C2,C3...........C8
D1,D2,D3.........D7
B3はA8が好きですが、C3は苦手だ。 優しいあなたがクラス換え担当なら、次の席順はどうしましょうか?プログラムで一つの案を出してみてください。
なお、隣とは前、後、右、左、斜め右、斜め左のいずれです。
簡単なフローを提示します。
1)4つのリストを一つに纏めます。
2)リストの順番をバラバラに変えます。
3)もう一度4列の分割します。
4)B3の席順を確認します。
5)A8をB3の隣に移動させます。
6)C3の席をチェックします。
C3がB3の近くにいるなら、遠く移動させます。
プログラムはなるべくListのJoin,Insert,Remove,など操作を駆使してほしい。
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less010/Less010.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© Gridscale Inc. http://www.gridscale.com
一般の家庭は様々な消耗品を使うでしょ。食料はその代表です。しかし、誰も一年の食料を一括購入して、その後ゆっくり賞味するようなことはしないでしょ。一年の食料を保存する場所や、お金の使い方は非効率だからです。ちょっとずつ買ってきて、足りなくなたらまた買うのが得策でしょう
プログラムを書くのも同じです。大きなリストは代わりにGeneratorを使うのメモリの節約になります。
ちょっとずつ生産して、ちょっとずつ消費することで、Generatorはそういう**の元で考案されました。
generatorはpythonのYield句を利用してiteratorを生成することです。
イメージを掴むために、まず下記の練習をしてみてください。
練習:
def my_generator():
yield "あ"
yield "い”
yield "う”
yield "え"
yield "お"
gen = my_generator()
gen.__next__()
gen.__next__()
gen.__next__()
gen.__next__()
問題:
では、generatorを利用して、フィボナッチ数例の整数をひたすら1秒間隔でprintしてください。
フィボナッチ数列とは A(n+1) = A(n)+A(n-1)を満たす数列のことです。
1、1、2、3、5、、、、
Generatorを提案されたPEP,一読する価値がある。
https://www.python.org/dev/peps/pep-0255/
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less012/Less012.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
Tupleとはn-組のこと。
https://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%97%E3%83%AB
形式が整えっているN個のデータから一つのN-Tupleを構成する。
Tupleにある要素は必ず同じデータタイプでなくでも良い。
1-Tuple (A,) 後ろに[,]があるのを注目してください。
2-Tuple (A,B)
3-Tuple (A,B,C)
数学や科学情報に、様々なTupleがある。
(ID, Password)
座標 (x,y), (x,y,z)
地理情報 (経度、緯度)
t = (1,2,3)
a,b,c = t
Tupleを利用して、貴方の人生の軌跡を辿ってみてはいかがでしょうか。
人生は生まれから始まり、その後就学、就職など様々なステージを踏むのが一般でしょ。
一連の(時間、ステージ、場所)から人生を歩んできたではないでしょうか。
場所は名称と地理情報で表せれば、地図上で人生の軌跡を描くのも難しい事ではないです。
では、貴方の人生を下記の様に出力するプログラムを作成してみてください。
私の人生の軌跡:
-----------------------------------------------------------------
1969年 誕生 **の小さい村 地理位置: ( 111 , 222 )
1976年 小学校 XXX小学校 地理位置: ( 222 , 333 )
1988年 大学校 **XXX大学 地理位置: ( 333 , 22 )
1996年 来日 ABC株式会社 地理位置: ( 322 , 23 )
https://docs.python.org/ja/3/library/stdtypes.html#sequence-types-list-tuple-range
https://docs.python.jp/3/tutorial/datastructures.html#tuples-and-sequences
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less007/Less007.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
https://docs.python.org/ja/3/reference/datamodel.html#customizing-class-creation
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
ラーメン屋の前に並んだ経験は誰でもあるでしょ。先にきた人が先に食べるのは必然でしょう?
先にきた人があとで店を出るのはあるにしても。店員からすれば、行列は処理対象のリストです。
このリストの長さによって、売り上げを増やしてくのです。
ループに関して、pythonのSequence型(List, Tuple, map, set)に緊密に関わるでしょ。
ちなみに、文字列もSequenceで知っているでしょうか?
下記のコードはどんな出力になるでしょうか?
for i in "アイウエオ":
print i
「あ、い、う、え、お」をいろんな形、順番で出力してみましょう。
出力:
左から右へ:
あ, い, う, え, お,
真ん中から:
い, う, え, お, あ,
う, え, お, あ, い,
え, お, あ, い, う,
お, あ, い, う, え,
あ, い, う, え, お,
random:
う, あ, お, え, い,
い, あ, お, う, え,
お, え, い, う, あ,
い, お, え, あ, う,
あ, え, い, う, お,
Reversed:
お, え, う, い, あ,
カタカナ変換:
エ, オ, イ, ウ, ア,
https://docs.python.org/ja/3.7/library/stdtypes.html#sequence-types-list-tuple-range
特にRange型を勉強しましょう。
https://docs.python.org/ja/3.7/library/stdtypes.html#range
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less011/Less011.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
--src
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
地球はとても孤独なんです。生き物が生息している惑星は他に知らないからです。
来る日も来る日も、地球は太陽を中心に回り続けているが、一年間地球が動いた距離はわかりますか。
. 地球と太陽の間の距離は 149,600,000 km
. 地球の半径 6371 km
. 太陽の中心を円心として、地球は一年間一つの円を描く。
その円の周長を計算しましょう。
1)まず、円(Circle)というクラスを定義
半径という属性をもち、周長を計算できるメソッドをもつ。
2)惑星(Planet)というクラスを定義
公転周期という属性を持ち
3)地球(Globe)というクラスを定義
条件: 円、惑星クラスを継承してください。
コンストラクター init()をしっかり定義してください。
属性: 自転周期 (ヒント: 一日何秒?)
メソッド: 自転速度を計算 (rotation)
メソッド: 公転速度を計算 (revolution)
結果:
地球は一年間 : 939488000.0 kmを太陽の周りで回ってます。
地球の公転速度は : 29.79 km/s
地球の自伝速度は : 0.46 km/s
クラスの定義:
https://docs.python.jp/3/tutorial/classes.html#class-definition-syntax
クラスの多重継承:
https://docs.python.jp/3/tutorial/classes.html#multiple-inheritance
クラス定義の注意点:
https://docs.python.jp/3/tutorial/classes.html#random-remarks
super()関数の呼び出し方:
https://docs.python.jp/3/library/functions.html#super
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less015/Less015.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
みなさん
私の母はもう80の年寄りですが、父が6年ほど前にこの世を去ったです。
今母は私の兄弟と同居していますが、私とは遠く離れていて、なかなか会えない状態です。
この間、夢の中母親の姿が現れて、思わず会いに行きたくなった今の気持ちです。
お母さんじゃなくでもいいですが、最愛な人の名前を100回呼ぶプログラムを書いて見ましょう。
for i in 1から100まで、print(”お母さんーーー!”)を繰り返す。
Python的な書き方はありますので、ここを参考して見て、宿題を完成させてください。
https://docs.python.org/ja/3.7/reference/compound_stmts.html#the-for-statement
#!/usr/bin/env python
# -*- coding: utf-8 -*-
message="お母さん"
for i in range(100):
print(message)
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
--src
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
空白の使い方が、プログラマーの素質を見えさせる。
Javaを勉強し始めた時に、 Sun MicrosystemsのJavaオフィシャルコードスタイル説明ページには
空白をどの様に使うのか大き文書幅を取りました。私もそこから少々感銘を受けました。
コンパイルの結果、実行結果に関係なくても、適所に空白を入れるのはものすごく大事なこだと。
大半なプログラミング言語は、Whitespaceはコンパイルエラーにならないが、Pythonはその例外です。
美しくソースコードを書くことを文法まで織り込むのは私が知っている限り、Pythonだけでした。
Referenceのリンクの章節を読んで、美しいPythonコード書くの基本を覚えましょう。
特にインデントについて、間違ってしまうと、コンパイルエラーになってしまうので、入念に読んでください。
下記の要素を入れて、練習プログラムを書いて見てください。
https://docs.python.org/ja/3/reference/lexical_analysis.html
2.1.8. インデント に注目してください。
Code StyleのためのPEPまで作成した、よほど重視していると思う:
https://www.python.org/dev/peps/pep-0008/
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
--src
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
未来に出会うかもしれない彼女はきっと何処かに向かって出発しているでしょう。出会うかどうかはあなた次第です。遅すぎず、早すぎずタイミングは重要でありましょう。
さ、今出発するときかもしれない。
AIを学びたいなら、数値計算は避けられないでしょ、少しづつ、数値計算を慣れていきましょう。
ゲーム開発にはよくある計算パターンですが、場所、方向、移動速度を扱う計算を下記の例から試してみましょう。
彼女は今 座標(10, 5000)にいるが、Vector (1, -0.5)方向に向かって、秒速3メートルの速度で歩いてる。
貴方は今、座標(-1000, -1000)いる所として、Vector(1, 0.5)方向に向かって、計画的に彼女と出会うチャンスを掴みたいと思うこととしよう。
さ、貴方はどの速さで歩くべきでしょうか。 速すぎず、遅すぎずのが重要だから。
クラス定義
class Vector :
# 1. Constructor (x,y)
# 2. method multiply (a) Vectorの掛け算
# (x, y) * a = (ax, ay) とする
# 3. method normalize() 正規化 (長さが1のVectorにする)
正規化(a, b) = (a/sqrt(a*a+b*b)), b/sqrt(a*a + b*b))
#4. method add
(a, b) + (c, d) = (a+c, b+d)
# 5. method sub
(a, b) - (c, d) = (a, b) + (c, d)*-1 = (a, b) + (-c, -d) = (a-c, b-d)
座標も、方向も、速度(Velocity)がVectorで表現できます。
position1 = Vector(100,100)
direction = Vector(1,-0.5)
velocity = Vector(1,-0.5).normalize()*speed . (speedは秒速)
t秒後の場所は position1 + velocity * t で計算できる。
position1 + v1*t = position2 + v2*t が成立すれば、出会うことはできるでしょう。
直線と直線の交点を求める方法はここを参考してください:
https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
cross product = v × w = vx wy − vy wx
交点求める式:
p + t r = q + u s
t = (q − p) × s / (r × s)
u = (p − q) × r / (s × r)
である
https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line-segments-intersect
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
--src
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
なんでもそうですが、自分自身について知っているのが重要だと思います。
今までいろんな勉強をしてきたけど、いろんなパケージがインストールされて、それはどこに?
どんなバージョンが入ってるの?をキッチンと把握しないと、一体自分のプログラムはどんな環境にて実行されているのかわからなくなると思う。
そして、正しいプログラムが作成されても、環境が違ければ、いい結果が出ないでしょう。
自分のパスコンにどんなpythonライブラリがインストールされているのか?
下記のコマンドを打ってみて。
なお、本勉強はpython3の利用が前提なので、pip3のコマンドでパケージ管理をします。
python2を利用している方は、pip3をpipに置き換えてください。
https://pip.pypa.io/en/stable/user_guide/#id8
なし
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
PythonとAIの相性が良いことに理由があります。
リスト、集合、マップの内包表記はその一つかも知れない。
リストの内包表記は言葉が難しそうイメージがありますが、リストやIteratorから新しいリストを作成する表記のことです。
例: 0から100までの整数にある3の倍数のリストはこれです。
[i for i in range(100) if i%3==0]
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
こうして、自然言語に一歩近ついた気がします。
あなたが果樹園園主なら、どうやって林檎に値段をつけるかに興味あるはずです。
1g=1円で値段を付けでもいいですが、大きい林檎と小さい林檎を同じ値段売るのでは、商売が上手いと言えないでしょう。
代わりに、大きさにプレミアムを付けてはどうでしょうか。
売値 = 重さ + 重さの平方根
林檎の重さ: [98,105, 201,455,333,253,309]
消費税込みの林檎値段リストを 1g=1円の場合と大きさにプレミアムをつける場合をそれぞれ表示してください。
また、それぞれの売り上げを計算してください。
プレミアムをつける事で、増益率はいくらくらいでしょうか?
hint: 消費税計算の内包表記はこれです。
$ [int(i*1.08) for i in [98,105, 201,455,333,253,309]]
[105, 113, 217, 491, 359, 273, 333]
言語リファレンス:
https://docs.python.org/ja/3/reference/expressions.html#displays-for-lists-sets-and-dictionaries
公式Tutorial:
https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less006/Less006.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
Webアプリケーション開発は大きなテーマ、宿題一つでは無理ですが、こういうフレームワークがあるのかを知るくらいのことだけをやってみましょう。
Flask を使って、Helloworld 的なWebアプリケーションを作ってみる。
Flaskインストール
http://flask.pocoo.org/docs/1.0/installation/#installation
QuickStart:
http://flask.pocoo.org/docs/1.0/quickstart/#quickstart
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
辞書は人類の文明発展大きな効用があったと思います。知識を体系的に整理され、容易にアクセスできるからです。図書館や倉庫など、大量に在庫を抱えている場所では、もの(オブジェクト)の索引なければ、混乱はすぐそこでしょ。
実は我が家ではこんなトラブルが頻発している。本とか服とか、欲しい時にすぐに出したいですが、
中々見つからない時があります。服を一着づつ出して、10着目にやっと欲しい服が見つける。
そんな時、我が家の服のHashmapがあればなと思う時があります。。。
Mapという言葉は、地図の意味があるが、本宿題では地図の話ではない。
マップの数学の意味は ある情報 A から Bを導出する様な、2要素間の固定的な関係のことです。
A1 -------> B1
A2 -------> B2
A3 -------> B3
A4 -------> B4
ソフトウェアにおいてのMapのユースケースは、混雑なオブジェクト群にそろぞれにユニークなIDを付けて、容易に識別、陳列、探し出す様にすることです。
郵便番号はその一例です。
"124-0022"------->"東京都葛飾区奥戸",
"143-0001"------->"東京都大田区東海",
"133-0073"-------> "東京都江戸川区鹿骨",
問題:
郵便番号と都道府県、市町村の関係を表し、ハッシュマップを定義して、下記の機能を実現してください。
1)郵便番号から、都道府県市町村を出力機能
2)都道府県市町村情報からその郵便番号を出力する機能
https://docs.python.jp/3/library/stdtypes.html#mapping-types-dict
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less008/Less008.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
今デニーズに執筆しています。家族を揃って、デニーズでモーニングセットを食べているところです。
Pythonには様々なデータタイプありますが、まず初歩なデータタイプを学びましょう。
下記の様に自分の家族メンバーリストを出力してください。
出力日: 2018-09-01
--------------------------------------
本人 ドム 45才
長女 チェルシー 12才
愛犬 ドフィー 2才
ヒント: pythonの日付は datetimeモジュールにある。
import datetime
print datetime.date.today()
データタイプ:
https://github.com/gridscaleinc/Learning-Python/blob/master/domanthan/Less004/Less004.py
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
Anacondaとは何?
AnacondaはPythonとそのよく利用されるライブラリ(パッケージ)を最初からまとめて入れてくれるアプリケーション。
Python本体とライブラリを個別にインストールするのに比べ、環境が確実に完成するというメリットがある。
逆に、慣れているエンジニアにとっては、Anacondaを利用することはあまり勧めしない。
AnacondaをInstallすると、Pythonの他の下記のソフトも含まれる。
Anacondaをインストール
https://www.anaconda.com/distribution/#download-section
[image]
Anacondaを起動する
WindowsもしくはMacOSから Anaconda Navigator を起動する。
Juypter Notebookとは何?
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
Jupyter Notebookは 文書と実行可能のソースコードを一緒に書くことができるツールです。Webアプリケーションとして作ってるので、
インタネットを通して動かすことができる。
Jupyter Notebook の起動はAnaconda Navigatorから起動できる。
© 2018 Gridscale Inc. http://www.gridscale.com
インストール
pip3 install opencv-python
pip3 install opencv-contrib-python
mkdir origin_image
mkdir face_image
mkdir test_image
pip3 install matplotlib
pip3 install pillow
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
© 2018 Gridscale Inc. http://www.gridscale.com
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# What we learn here: xxxxx
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
お金の話はみんな大好きでしょう?女性なら、お金持ちを旦那にすれば一生安泰かもしれないが、
男なら、なんとかしてお金持ちになる方法を探さなければ。。。とも限らないです。
様々の通貨を一定の額を所有する男たちから、お金持ちを探すゲームをしよう。
お金持ちの基準は100万ドル相当な額を上まる金銭を持っているかどうかによる。
なお、この日の為替相場は以下になっている。
1USD=109JPY
1EUR=1.159USD
1AUD=0.89USD
1USD=6.89CHN
1PND=1.45 USD
男の名前 所持金
=============================
トーム 92万 EUR
ジェリー 359万 CHN
フランク 109万 AUD
サム 8399万 JPY
ジェフリー 78万 PND
下記クラスを完成してください。
class RichManSet:
richmen = {}
””” パラメータmanに対して、100万ドルを持っているかをチェックし,
YESの場合、richmen集合に入れる。
”””
def add(man):
## TODO
class Person:
name="NONAME"
amount=0
ccy=""
上記男集合からからお金持ちを探すプログラムを組んでください。
出力: リーチマン: 。。。。。。。
Poor man : .........
https://docs.python.org/ja/3.7/tutorial/datastructures.html#sets
https://docs.python.org/ja/3.7/library/stdtypes.html#set-types-set-frozenset
提供しない。 ここまで学んだことを駆使してください。
https://docs.python.org/ja/3/reference/index.html
githubに宿題をコミットする際、必ず下記の様なフォルダ構成にしたがって欲しいです。
宿題を完成させたエビデンスファイルも合わせて出してください。できれば。
--src
---- 「ご自分のgithubid]
--- less001
-- file001.py
-- evidence001.txt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.