Slide 1

Slide 1 text

大人のためのPython入門 PyLadies Caravan in Osaka

Slide 2

Slide 2 text

■自己紹介■ ► PyLadies Caravan STAFF ► 仕事はデータ分析屋さん ► 趣味はダイビング&登山 ► お酒が好き。居酒屋が好き。大阪来たらこれ食べろが知りたい。 かなん    @Addition_quince 福岡出身/東京北九州在住

Slide 3

Slide 3 text

※ Attention ※ このセッションは 、 これからPythonを始める方向けに、 ちょっとだけPythonについて知ってみる ためのコンテンツです。

Slide 4

Slide 4 text

はじめようPython Life★

Slide 5

Slide 5 text

Pythonって、どんな言語? Python とは 汎用プログラミング言語で、その特徴はこんなかんじ。 • オープンソース(OSS)である • 文法がシンプルであり、コードが少量で済む • Web開発、データ解析(AI)、ゲームといった幅広い分野で使用 • 多彩なライブラリサポートで高度な計算も容易 『 Youtube 』 『 EverNote 』 『 Instagram 』に利用されています。

Slide 6

Slide 6 text

Pythonって、どんな言語? Python の起源 1991年 オランダ人のグイド・ヴァン・ロッサム氏によって開発されたプ ログラミング言語。 名前の由来は、イギリスのテレビ局BCCが製作・放送した大ヒットコメ ディ番組である 「空飛ぶモンティ・パイソン」からきているとされる。  グイド・ヴァン・ロッサム (出典「wikipedia」)  6年以上前の1989年12月、私はクリスマス前後の週の暇つぶしのため「趣味」 のプログラミングプロジェクトを探していた。オフィスは閉まっているが、自宅に はホームコンピュータがあるし、他にすることがなかった。私は最近考えていた 新しいスクリプト言語のインタプリタを書くことにした。それは、ABCからの派生 であり、Unix/Cハッカーの注意をひきつけるかもしれないと考えた。ちょっとした いたずら心から(『空飛ぶモンティ・パイソン』の熱烈なファンだったというのも理 由の1つ)、プロジェクトの仮称をPythonにした。 — グイド・ヴァンロッサム、「Programming Python」の序文

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Python特徴①:シンプルな文法! Python の文法は本当にシンプルなのか? 2つの値(a, b)の最大公約数を求めるプログラム をPython, Java, Rubyの3つの言語で比較。 ※最大公約数を求めるアルゴリズムはユークリッドの互除 法を使用  def gcd(a, b): while b > 0: a, b = b, a % b return a def gcd(a, b) a, b = b, a if a > b until a == 0 a, b = b % a, a end return b end private static long getKoyakusu(long a, long b) { long candidate = a; while (b % a != 0) { candidate = b % a; b = a; a = candidate; } return candidate; } Java  Ruby  Python 

Slide 9

Slide 9 text

Python特徴①:シンプルな文法! Python の文法の特徴的な構文ルール「インデント」 ● インデントは、行頭に空白を入れて文字を入れて字下げを行う事 ● 同じインデントのまとまりを1つのブロックと識別 Def EATMIKAN(x):   f x < 10:     print('少ない')    else:     print('たくさん') 1インデントは空白4つで表 されることが多い

Slide 10

Slide 10 text

Python特徴②:ライブラリが豊富! ライブラリとは、 多彩な計算、データ加工を可能とする、モジュール(Pythonプログラ ム)群。 <例> ► datetime :日付時間処理 ► math :数学計算 ► numpy :行列演算 ► Pandas :データ加工 ► Matplotlib :グラフ描画 ► scikit-learn :機械学習 ► Chainer :深層学習

Slide 11

Slide 11 text

Pythonの思想:The Zen of Python 1. Beautiful is better than ugly. 2. Explicit is better than implicit. 3. Simple is better than complex. 4. Complex is better than complicated. 5. Flat is better than nested. 6. Sparse is better than dense. 7. Readability counts. 8. Special cases aren't special enough to break the rules.  >>> import this 醜いよりは美しい方がいい 暗黙の了解よりは明示した方がいい 複雑よりシンプルな方がいい でも込み入るくらいなら複雑な方がいい ネストは浅い方がいい 詰め込み過ぎよりはバラす方がいい 読みやすさの積み重ねは善 特殊だからってルールを破る理由にならない

Slide 12

Slide 12 text

Pythonの思想:The Zen of Python 9. Although practicality beats purity. 10. Errors should never pass silently. 11. Unless explicitly silenced. 12. In the face of ambiguity, refuse the temptation to guess. 13. There should be one-- and preferably only one --obvious way to do it. 14. Although that way may not be obvious at first unless you're Dutch. とはいえ現実は臨機応変にせざるを得ない エラーは絶対に隠してはいけない エラーが無視できる理由が明示されない限り 曖昧なものに出会ったらその意味を勝手に 推測しては行けない 何かいいやり方があるはずだ。誰が見ても 明らかな、たったひとつのやり方が。 そのやり方は一目見ただけではわかりにくい かもしれない。オランダ人にだけわかりやす いなんてこともあるかもしれない。

Slide 13

Slide 13 text

Pythonの思想:The Zen of Python 15. Now is better than never. 16. Although never is often better than *right* now. 17. If the implementation is hard to explain, it's a bad idea. 18. If the implementation is easy to explain, it may be a good idea. 19. Namespaces are one honking great idea -- let's do more of those! ずっとやらないより今やるべき でも今「すぐ」じゃない方が良い時の方が 往々にしてある コードの意味を説明できないのであれば、 それは悪い実装である コードの意味を簡単に説明できるのであれ ば、それは良い実装である 名前空間の概念は素晴らしいので、 積極的に使っていこう

Slide 14

Slide 14 text

Pythonのバージョン: ► Python2(2系)とPython3(3系) Python2は2020年にサポート終了 ► 最新バージョンは Python3.11.2

Slide 15

Slide 15 text

まずは、Pythonを触ってみよう

Slide 16

Slide 16 text

バージョンを確認してみよう Windows: コマンドプロンプト Mac: ターミナル $ python –-version Python 3.9.1 ※インストールしたバージョンが表示 もし “Python 2.x.x”と表示されたら、 $ python3 --version と打ってみてください ► 「ターミナル」エリアはOS搭載のシステムツールで、コマンドと呼 ばれる命令文を実行することができます

Slide 17

Slide 17 text

コマンドプロンプトやターミナル上で Pythonを実行してみる $ python Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> ► インタープリタ(対話)モード ► コマンドを発行すると対話的に結果が返ってくる ► >>>に変わったら、インタープリタモード中。 $ python3 --version と打った人は原則 python を python3 と読み替えが必要です。 $ python3

Slide 18

Slide 18 text

コマンドプロンプトやターミナル上で Pythonを実行してみる >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex.        : ► The Zen of Python を表示させてみよう

Slide 19

Slide 19 text

コマンドプロンプトやターミナル上で Pythonを実行してみる >>> exit() $ ► インタープリタモードを終了したい時は、  exit()もしくはctrl + D

Slide 20

Slide 20 text

エディやIDE(統合開発環境) ► 実際にPythonでプログラムを書くときは、エディタやIDE(統合開発 環境)と呼ばれるソフトウェアを使うことが多い ► 自分の好みを見つけるとよい ► Visual Studio Code (ビジュアルスタジオコード) ► PyCharm (パイチャーム) ► Atom (アトム) ► Notepad++ (ノートパッドプラスプラス) ► Sublime (サブライム) ► Jupyter Notebook (ジュピターノートブック)

Slide 21

Slide 21 text

今回利用するのはGoogle Colaboratory ► Google Colaboratory URL   https://colab.research.google.com/ ► Google Colaboratory(Colab)とは ★ Googleが機械学習の教育及び研究用に提供する無料サービス ★ インターフェースはブラウザでインストール不要 ★ Googleアカウントが必要 ★ CPU及びGPU(1回12時間)の環境が利用可能 ★ 容量はGoogle Driveを使うので15GB超の場合は課金が必要 ★ Pro版は月額1,072円 ・優先的に高性能GPU使用可能 ・最長24時間まで接続可能 ・高メモリの環境が優先的に割当

Slide 22

Slide 22 text

今回利用するのはGoogle Colaboratory ► Google Colaboratory URL   https://colab.research.google.com/

Slide 23

Slide 23 text

もう少しだけ、Pythonに詳しくなろう  ■ データの種類  ■ 数値を計算してみよう  ■ 変数を使ってみよう  ■ 組み込み関数とモジュールを使ってみよう

Slide 24

Slide 24 text

STEP1:データ形式 >>> 15 15 >>> おはよう Traceback (most recent call last): File "", line 1, in NameError: name 'おはよう' is not defined >>> 'おはよう' 'おはよう' >>> '15' '15' ► インタープリタモードで数字や文字を打ち込んでみよう その名前は定義さ れていないよってエ ラーがでる

Slide 25

Slide 25 text

STEP1:データ形式 ► 数値や文字列など、データには形式がある 数値(整数、小数) 文字列 真偽 リスト ► 小数点以下が必要な場合は、 小数点をつければOK ► 文字列は引用符(’ ’または” ”) で囲う必要がある ► 2値のTrueかFalseで表される ► 数値として扱えるTrue:1/False0 ► 複数のデータをまとめるオブ ジェクト ► リストは[’A’,’B’,’C’]と表記 ► タプルや辞書型等もある

Slide 26

Slide 26 text

STEP2:値の計算 >>> 10 + 2.5 12.5 >>> 2 * 5 10 >>> 'Pen' + 'Pineapple' + 'Apple' + 'Pen' 'PenPineappleApplePen' ► 様々な値の計算ができ、電卓としても使えます 足し算、引き算、掛け算、割り 算等、様々な計算ができる +をつかって文字列の連結もできる

Slide 27

Slide 27 text

STEP3:変数を使ってみよう >>> name = '桃太郎' >>> print(name) '桃太郎' >>> animal = ['いぬ', '猿', 'キジ', '鬼'] >>> print(animal) ['いぬ', '猿', 'キジ', '鬼'] ► 変数と呼ばれるデータを入れる箱を使うことで、処理の幅が広 がります。

Slide 28

Slide 28 text

STEP4:組み込み関数やモジュールを利用する >>> 47 + '都道府県' Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> str(47) + '都道府県' '47都道府県' ► Pythonには便利な関数が用意されています。 ► print()、sum()、round()など様々な組み込み関数がある +は数値(int)と文字(str)を一 緒に使えない

Slide 29

Slide 29 text

STEP4:組み込み関数やモジュールを利用する >>> import datetime >>> datetime.date.today() datetime.date(2019, 10, 05) >>> print(datetime.date.today()) 2019-10-05 ► Pythonには組み込み関数以外にもモジュール(ライブラリ)によって 様々な処理を呼び出すことができます。 ※ライブラリを使う時は、import を使って読み込みが必要 日付型のオブジェクトとして 生成される import ●●● as ◾◾ ↓ ●●●ライブラリを読み込んで、 ◾◾という略称をつけるよ

Slide 30

Slide 30 text

STEP4:組み込み関数やモジュールを利用する >>> import requests Traceback (most recent call last): File "", line 1, in ImportError:No module named requests >>> exit() $ pip install requests ► ライブラリには標準ライブラリと、外部ライブラリがある 外部ライブラリはインストールが必要!! 試しにHTTP通信ライブラリをインストールしてみよう 冒頭でpython3 --version と打った人はpip3 install ●●● >>> import requests >>>

Slide 31

Slide 31 text

● エクスプローラに「HelloPython」が表示されているのを確認 VSCodeでPythonを使ってみよう

Slide 32

Slide 32 text

● 「hello.py」を実行してみよう。実行するコードは以下。 VSCodeでPythonを使ってみよう print(‘Hello PYTHON!’) ①エディタエリアにコードを入力 ②実行ボタンをクリック ③結果を確認!!

Slide 33

Slide 33 text

EXTRA:次の誕生日まで何日か計算しよう import datetime name = 'かなん' today = datetime.date.today() next_birth = datetime.date(2020, 5, 18) cnt = (next_birth - today).days print(name + 'の誕生日は'+ str(next_birth) + 'です。') print(name, 'の誕生日まで' , cnt, '日です。')

Slide 34

Slide 34 text

EXTRA:関数を作ると便利になるよ import datetime def birthday(name, y, m, d): today = datetime.date.today() next_birth = datetime.date(y, m, d) cnt = (next_birth – today).days print(name + 'の誕生日は' + str(next_birth) + 'です。') print(name, 'の誕生日まで' , cnt, '日です。') birthday('かなん', 2020, 5, 18) birthday('まーや', 2020, 5, 16) 関数化

Slide 35

Slide 35 text

勉強をはじめるためのポイント ► 躓いたり、悩んだりした時は、  知っている人に聞くのが、最大の近道! ► Slack「PyLadies Japan」はメンバーが気軽に  コミュニケーションを取れる場所です ► 質問したら、きっと誰かが答えてくれるので、  是非、一緒にワイワイしましょう。

Slide 36

Slide 36 text

はじめようPython Life★