2019/06/17(月)に株式会社CRE-COで開催された、Let’s start Python #1 に参加させていただきました。そこで得られた知見を共有したいと思います。
https://elv.connpass.com/event/133587/
Contents
参加した理由
今回は第一回ということで、第5回まで予定されております。スクレイピングや Django にも取り組むということで、可能な限り参加してみたいと考えております。
#1_6月 実行方法 リスト・タプル・辞書 if文・for文
#2_7月 スクレイピング
#3_8月 関数・クラス
#4_9月 フレームワーク(Django)Part1
#5_10月 フレームワーク(Django)Part2
内容
こちらの資料を元に進めていきます。
https://gitpitch.com/Sandream66/python_elv#/
・Python 出来ることモロモロ
機械学習を使った人工知能の開発
自動データ処理や分析などの業務効率化
スクレイピングによるWEB上の画像データ・テキストデータの自動収集
WEBサービス・WEBアプリケーション制作
スマホアプリ(Android) デスクトップアプリ制作
フィンテック・ブロックチェーン技術の開発
・Pythonスキルを生かせる仕事とは?
人工知能(AI)エンジニア
WEBアプリケーションエンジニア(Djangoを使って自動でhtmlを作るとか、自動で画像合成とか)
データサイエンティスト
etc…
Pythonの基礎
オブジェクト指向のプログラミング言語
オブジェクト指向とは、クラスを基準としたプログラムを設計する方法論の1つ
クラスとは?
材料(変数):肉、にんじん、じゃがいも、etc…
動作(関数):野菜を切る、肉を切る、etc…
このように、カレーを作るレシピが一つできれば、肉を変えるだけでポークカレー・ビーフカレーと使い分けられる。ゼロから一つ一つ書くのと比べてとても楽。また間違いも起きにくい。
クラスから作ったカレーの一つ一つを、インスタンスと言う。
クラスの変数:属性
動作:メソッド
変数
文字や数値など、なんでも入れることができる箱
a = “疲れてきた?大丈夫?”
b = 123
(宣言が必要な言語もありますが、Pythonは宣言が不要です)
Pythonを起動
Macの場合、ターミナルを起動し
Python3
と入力しエンター
※Python環境から抜け出すには
exit()
Pythonで遊んでみよう
1+2
3
55//2
27
55%2
1
5**25
298023223876953125
文字列も計算
“Hello” + “world”
‘Helloworld’
“Hello” * 3
‘HelloHelloHello’
“Hello” / 3
TypeError: unsupported operand type(s) for /: ‘str’ and ‘int’
型の話
よく利用される型
int型:整数
float型:小数点
str型:文字列
bool型:真偽値 (true / false を返す)
list型:リスト
tuple型:タプル
dict型:辞書
int型
文字列や浮動小数点数などを、int型オブジェクトで【整数】に変換できます。
int(2.123)
2
float型
x = 0.1
y = 0.2
print(x + y)
0.30000000000000004
不動小数点数の計算をする場合、小数点数を計算するときや丸めるときに誤差が発生する場合があります。
このような問題を防ぐため、Pythonでは十進数の計算をするためのdecimalモジュールが用意されています。使うにはimportする必要があります。
モジュール:その時にだけ使いたい機能を呼び出して、動作を重くなることを防ぐ
パッケージ:モジュールをいくつかまとめたもの
ライブラリ:パッケージをいくつかまとめたもの
標準で装備されているモジュールもある。
from decimal import Decimal
x = Decimal(“0.1”)
y = Decimal(“0.2”)
print(x + y)
0.3
str型
文字列オブジェクトは、str型のオブジェクトです。
数値や浮動小数点数などを文字列に変換する場合は、str型を呼び出して変換します。
文字はダブルコーテーション ” もしくはシングルコーテーション ‘ で囲みます。
print(str(1) ,”+”, str(0.1) ,”+”, str(1+0.1))
1 + 0.1 = 1.1
文字数を調べる組込関数
len(“Hello”)
5
小文字に変換するメソッド
“A A”.lower()
‘a a’
bool型
ブール型は真偽値のことです。True(真)とFalse(偽)の二種類が用意されています。
bool1 = True
if bool1 == True:
print (“処理を実行”)
のように、if文などの判断に使われる事が多いです。
if文についての詳細は後半で説明します。
list型
[ ]でくくったデータの集合体をリストと言います。リストの中にリストを入れることも可能
li1 = [“A”,”B”,”c”,1,2,3,[“cc”,”dd”]]
部屋番号は0から始まります。リストの0番目を取り出したい場合は、
print (li1[0])
A
tuple型
li1 = (“A”,”B”,”c”,1,2,3,[“cc”,”dd”])
このように( )でくくったデータの集合体をタプルと言います。
リストと異なるのは、更新が出来ないという事です。
・リストの場合
li1 = [“A”,”B”,”c”,1,2,3,[“cc”,”dd”]]
li1[0] = “Change”
print li1
[“Change”,”B”,”c”,1,2,3,[“cc”,”dd”]]
・タプルで同じ事をやると・・
Traceback (most recent call last):
File “
TypeError: ‘tuple’ object does not support item assignment
dict型
d1 = {“apple”: “りんご”,”B”: 2,”C”: 3}
このように{ } でくくって Key: Value で記載された集合体を辞書と言います。
appleというKeyを調べると、りんごというvalueが確認できます。
英語辞書のイメージですね。
同じキーを重複して使うことはできません。
print (d1[“apple”])
りんご
その他
csv.DictReader
PythonでCSVファイルを読み込み・書き込み
項目名をキーとした辞書を、自動で作ってくれる。とても便利。
if文
条件分岐。
条件が1つの場合
if 条件を記載します:
条件を満たしたときはここに記載の実行内容を実行
↑Pythonではインデント(半角スペース4個、もしくはタブ)が非常に重要
条件指定の下は、インデントを下げます。インデントが下がっている間がその条件の有効範囲となります。
条件が複数ある場合
if 最初の条件を記載します:
最初の条件を満たした時に実行したい内容を記載
elif 最初の条件を満たさなかったものの中から次の条件を記載します。
二個目の条件を満たした時に実行したい内容を記載
else:
全ての条件を満たさなかった場合に記載
比較演算子
x < y
x == y //xとyが等しい
実際にプログラムを書いてみよう
ATOMなどのエディタを用意
ファイルを保存する場所を用意
ATOMでPythonファイルを書いてみよう
以下の一行をATOMで書いて、
print (“Hello World!”)
こちらの名前で保存。
test.py
ターミナルで、ファイルが置いてあるディレクトリに移動し、
python3 test.py
で実行します。
プログラム
・xとyが等しい場合はYes等しくない場合はNoを表示する
x = y = 2
if x == y:
print(“Yes”)
else:
print(“No”)
”’
xが10より小さければ xは10より小さい と表示
xが10と等しければ xは10です と表示
xが10よりも大きければ xは10より大きい と表示
”’
x = 10
if x < 10:
print(“xは10より小さい”)
elif x == 10:
print(“xは10です”)
else:
print(“xは10より大きい”)
for文
繰り返し処理
例えば10までの数字を順番に表示したい場合
for i in range(10):
print(i)
for の後に 変数 in 順番に取り出したい集合体を指定します。
range(10)は[0,1,2,3,4,5,6,7,8,9]のリストを作る関数です。
プログラム
1~100までの数値を表示し、3で割り切れる数の時だけその数字と Hello という文字、それ以外は数字のみを書き出してみよう。 “%d Hello”%変数
for i in range(1,101):
if i % 3 == 0:
print (“%d Hello”%i)
else:
print(i)
便利な関数
enumerate()関数
for index, i in enumerate(range(1,101)):
print(“%d %d”%(index, i))
実行結果
0 1
1 2
2 3
その他
Pythonの書き方ルール PEP8
まとめ
イベント概要
https://elv.connpass.com/event/133587/
■ 日時:2019年6月17日(月) 19:00-21:30
(18:00開場としますので時間を持て余す方はコワーキング利用下さい!
18:15位からPythonインストール方法が分からない方サポートいたします。)
■ 会場:CO-CreationLABO
〒102-0093 東京都千代田区平河町1-4-3平河町伏見ビル2F
■参加費:無料 ※受付時にお名刺を1枚ご用意願います。※各種ドリンク(有料)あり。
ITエンジニアコミュニティeLVとは?
eLVはスキルアップに資する誰でも参加可能なコミュニティです。
「組織の枠を超え、ITエンジニアの価値(スキル)向上に寄与する」ということを目的としたコミュニティです。
また、プチ勉強会の企画を募集中です。
※他のイベントはこちらからチェック下さい。
https://elv.connpass.com/
※メンターのいる勉強部屋情報はこちらからご覧いただけます。
http://hfs.connpass.com/
※Co-Creation BAR(ICT関係者の集うBAR)のイベントはこちらからチェック下さい。
https://elv-ccb.connpass.com/
講師紹介
松本 綾子(マツモト アヤコ)
株式会社CRE-CO
独学で、Excelを学び、PythonやVBAを利用した社内用のツール作成等を行う。
その他:
eLV TechnicalCoach & ManagementPartner
Django Girls Japan テクニカルディレクター https://djangogirls.org/
プログラミングをもっと広めたいという想いで活動中。
トギャッターまとめ、もしくはハッシュタグ検索
#elv勉強会
https://twitter.com/hashtag/eLV%E5%8B%89%E5%BC%B7%E4%BC%9A?src=hash