pyconjp / pycamp.pycon.jp Goto Github PK
View Code? Open in Web Editor NEWPython Boot Camp テキスト
Home Page: http://pycamp.pycon.jp/
License: Other
Python Boot Camp テキスト
Home Page: http://pycamp.pycon.jp/
License: Other
2.4.2.3. リスト内包表記
リスト内包表記のメリットなどの説明を追加したり、ジェネレータ式、辞書内法表記のへの応用が効くことを明記して、難しいけどここで覚えてもらうようにするか、
内包表記をまとめて教える場面を作ったほうがいい気した。
ここでつまずくと思う。
普段はPHP/JavaScriptを使った開発をしていて、Pythonについてはほとんど触ったことがありません。
その立場でコメントをさせていただきます。
求めるものとしては、「なぜpythonなのか」というところが知りたいです。
どういう使用目的であればpythonを選ぶべきなのか、pythonを選ぶメリットはなんなのか、
逆にpythonが向いていないことなど、
そのあたりを教えていただくことができれば、今後にpythonを使っていくという選択肢を選びやすくなります。
モジュール
pyvenv
スクレイピング
main()
を書いてもそのまま実行される。 if __name__ == '__main__':
に入れると、モジュールとしてインポートされたときに実行されないIssue #21 から分けた。
ライブラリのインストール方法を説明できているので, 各分野の有名ライブラリ紹介等を少し入れてもいいかも?
2.2.1.5. 関数
Python はブロック構造を インデント (通常は4つのスペース)で書きます。
ブロック構造
という言葉を他の言い回しがないか。
例えば、 制御構造
とか
- Python Releases for Windows
の場所がおかしい?http://bootcamp-text.readthedocs.io/textbook/3_types.html
インデックスの説明 (図2.2 ) が表示されていないのですが、私の環境だけ?
http://bootcamp-text.readthedocs.io/textbook/3_types.html
Yusuke Miyazaki [10:43 AM]
こちらでも図2.2が表示されていないように見えます.
京都で開催した時は見えていました.
Takanori Suzuki [10:44 AM]
あー、ファイルのパス変えたせいかも
[10:44]
画像への相対パスが書き換わったとかな気がする
Issue #21 から分けた。
Pythonのデータ型[コレクション編]
繰り返し用変数 という言葉が聞き慣れません
2.2.1.1.1. Pythonを電卓にする
2.2.1.2. 文字列
型の説明を1行を入れたい。
シーケンス型は、Pythonの型(class)ではないので、もう少し上手く説明したい。
# -- coding: utf-8 --
python 3 は default が utf-8 になったので、書かなくてよいはず(http://docs.python.jp/3/howto/unicode.html)繰り返し用変数
という言葉が聞き慣れませんpython simple.py
のように実行しているので, shebang はなくてもいいかも (おまじないは減らしたほうが良い)PyLadies Kyoto でも使用した, Python でプログラミングに入門するための資料です.
ここではPythonの基本の基本を紹介します。
となっているが、初学者には意味不明な部分が多い気がした。
何かしらこの節を説明する1文があると良いかと思った。
例えば、
Pythonインタープリターに入力し結果を確認したり、Pythonファイル(.py)ファイルを作り実行してい見ること行いながら、Pythonにふれあいましょう。
さらに、以下を付け加えたい。
ここで説明したことのすべてをいま理解しようとしなくても大丈夫です。次節以降でおさらいをしていきます
https://github.com/pyconjp/bootcamp-text/blob/master/source/3_collections.rst
print関数
各メソッドの戻り値はリストですが、順序は不定です。
→ リストではないと思う。 イテレータブルオブジェクト
ですね。LIST 2.47 タプルを返す関数
関数がピンとこなかった。もう少しわかりやすい物に置き換えたい。
>>> def head_splitter(seq):
... return seq[0], seq[1:]
/opt/python2.7.9 ディレクトリ以下に
メールの内容を下記にそのまま記述
プログラミングを1からスタートする目的の受講者という立場で、
フィードバックをご連絡いたします。
======
受講者対象が不明瞭だったため、下記2点いずれかであることを事前案内に明記すべき。
1.ある程度他の言語をいじっているが、pythonを触ってみたい人
2.対象がプログラム最初心者の場合は
※1が対象であるなら、
・データ型などについて、なんのことか説明が不足している。
・ある程度必要な環境を事前構築しておくのであれば、
Ver.2とVer.3の切り替え方、インストール手順、
推奨するエディタ、開発環境など事前に有ってほしい。
・関数の説明について、インデントや、行を開けるといったことの開設については、
網掛けなどで強調していただくと良い(他の言語に慣れているとわかりづらい特徴
なので)
・FizzBuzzGameの実演の前にデータ型の説明があるべきでは?
ーーー>strをソースの中で使っているので。。。
・タプルの説明がわかりづらいので、詳しく教えてほしい
・受講者に手を動かせる実習を増やしたほうが理解が早い。
Issue #21 から分けた。
巨大な整数演算もできることを示しておくと, Python らしさが少し出そうです.
Issue #18 から分けた。
2.2.1.1.1. Pythonを電卓にする
width 、 height という変数を作成し、2つを掛け合わせています。
Python 3.5.2 がリリースされたので、インストールバージョンを Python 3.5.2 にする
Issue #20 から分けた。
辞書について、他の参加者の方にツッコまれてましたが、イテレータの説明が軽くでもないと.items()とか受講者の経験分野によってはピンと来ないような、と思いました。
$ python
Python 2.7.9 (default, Dec 29 2014, 17:03:36)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> 8 / 2
4
シーケンス型 http://docs.python.jp/2/library/stdtypes.html#typesseq
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print fizzbuzz(4)
Issue #21 から分けた。
virtualenv や pyenv 等との比較を少し述べておくと親切かも
"次節では、それを使ってスクレイピングを行う方法を記述します。" -> pyvenv を使ってスクレイピングをするというのは, 何か変な感じ
Issue #16 から別チケットに分けた。
テキストを表示している環境によって、インデントがわかりにくく表示されるので、
LIST 2.11 の下に説明を加える
プログラマー向けであるという前提で
自習できる人たちが集まっているという前提で、自習できない部分を補う。という考え方もあるのかなとは思いました。
他の言語をやっている人たちが、 躓きそうな部分にこそ需要がある とおもうのですが、いかがでしょうか。pythonらしい部分、強みで、独習で他言語からpythonにスイッチするときに困りそうな部分について、まとまっていると素晴らしいかと思います。もちろん、わざわざpythonのboot campに来るぐらいですから、平均以上のモチベーションがあると仮定しても良いかと思います。
また事前課題も、スキルと進度の振り分けに役立つでしょう。事前課題と一緒に、ブートキャンプに参加するにあたって5時間?で 学ぶゴールについて聞いておくのもいいかもしれません。
ある一定規模以上のpythonプログラムを書くために、クラス・モジュールの生成や配置、それらのテストやドキュメント生成のトピックも軽く触れて、リンク集などあっても良いのではと思います。どうせプロジェクトをpythonでやろうとなると調べることになるのですから。
あと、各所でセミナーを開くのであれば、既存の質問のQAはFAQで、まとめておいてもらえると同じ質問はしなくていいかと思うので、ご一考ください。
プログラマー向けなら、最初から 型の概念や、イテレーター、ネームスペースなどを教えてもいいのでは?
あと最初からコメントを教えないのは仕様ですか?
pythonで、嵌りそうな所、たとえば /ではフロートでかえって // でないとintでかえらない
roundが5で切り捨てとか、あと ふつうは、pep8やpyflakeで書き方を揃える、ドキュメントの
書き方とか、unittestは、どれがいいのか。などなど
自分である規模のプログラムを書くにあたって、ぶつかりそうな罠を避ける方法があるといいなと
2.2.1.1. Pythonインタープリタ
記載は、 Ctrl+z
となっていますが、 Ctrl+z+Enter
が正しいと思います。
http://bootcamp-text.readthedocs.io/2_intro.html
for文で初めてrange関数がでてくるので、その解説が必要(上の方で説明していたが、round関数に変えたため)
スクレイピングの詳細がまだ記述されていないため、記述する
なにか作ろうってなったときには、とりあえずファイルから読む/結果を書き出すってのは必要な気がするので、open 関数の説明はいれたい
Python のインストールは事前にやってもらうことなので、テキストとして分けたほうがよさそう
connpassに記載のインストールガイドが表示されない。
http://bootcamp-text.readthedocs.io/1_install.html
Issue #21 から分けた。
shebang を書いているが, python simple.py のように実行しているので, shebang はなくてもいいかも (おまじないは減らしたほうが良い)
HTML の知識がある程度あることを前提にしてしまっているが, 少しくらいは説明したほうがいいかも
本日はおつかれさまでした。
私は、普段は組み込みでCやらARMのアセンブラを書いてる感じです。
細かい点もありますが、以下にリハーサル中に書いてたメモを記載させていただきます。
round(0.5) -> 0
とかはおもしろかったです。if __name__ == '__main__':
とかのはなしともつながりますし。Issue #23 から分けた。
受講者対象が不明瞭だったため、下記2点いずれかであることを事前案内に明記すべき。
1.ある程度他の言語をいじっているが、pythonを触ってみたい人
2.対象がプログラム最初心者の場合は
※1が対象であるなら、
・データ型などについて、なんのことか説明が不足している。
・ある程度必要な環境を事前構築しておくのであれば、
Ver.2とVer.3の切り替え方、インストール手順、
推奨するエディタ、開発環境など事前に有ってほしい。
Issue #19 から分けた。
pythonのインデントの話をサラッと話しましたが、pep8っていうスタイルガイドがあるっていうのを紹介してもいいかも。python独特だと思うし。
Issue #23 から分けた。
Sphinxでインデント網掛けはできないかもしれないので、できなければ文章で説明を入れる。
・関数の説明について、インデントや、行を開けるといったことの開設については、
網掛けなどで強調していただくと良い(他の言語に慣れているとわかりづらい特徴
なので)
2.2.1.5.1. 組み込み関数
round(10.5) は、 11 になってほしいと思う。例を round(10.4)
に変更したい。
あえてここで roundの丸め誤差の話をするのはわかりにくい。
https://github.com/pyconjp/bootcamp-text/blob/master/source/1_intro.rst
print関数
(2箇所 print文という記載がありました)リスト風のオブジェクト
or 関数の結果として数値が順番に返され
http://docs.python.jp/3.5/tutorial/
に変更anacondaでpythonを入れくてる人もいるっぽいので、pyvenvのところをcondaだとどうするかの説明を追記したほうがよさそう
soogie [13:53]
@takanory:
pipとvirtualenvとcondaの対応表はこちら
http://conda.pydata.org/docs/_downloads/conda-pip-virtualenv-translator.htmlでもってこんな感じで環境切り替えます。
$ conda create --name myenv --file requirements.txt
$ source activate myenv
Issue #21 から分けた。
モジュールまたは関数しかインポートできないような印象を受けました
何がエクスポートされるのかの説明 (cf. C言語だとヘッダファイルが必要)
パッケージについての説明
件名のまま。
裏をとっていないので、環境を持っている人に確認して欲しい。
現在のUbuntu LTSの最新は16.04なので 16.04ベースの方がいいかも
件名のまま。
テキストには各OSのインストール方法を記述しているが、実際の講義ではこの部分は特に解説しない予定。
開発環境の構築は事前に行っておくようにアナウンスしておく
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.