Pythonの総復習➁

Pythonの総復習➁

ここからはPyhtonの総復習をしていきたいと思います。 総復習といっても、私が購入したこの本からとなります。

この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,400円程ならコスパよく、買っておいてよかったと満足してます。


詳しい解説や実装されたものについては、割愛させていただきます。それぞれの解説や実行結果についてはリンクを貼っておきますので、参考してみてください。

リンク先のサイトにて一つ一つ学んだ後、一気にざっと復習するときでもこちらを活用してみてください。

やはり、一度度学んだだけで終わりでなく、二度、三度と繰り返し自分なりにアレンジしていけば学びも深化していくと思います。

他人が作ったプログラムを利用するには?

import モジュール名

詳しくはこちらをご参照ください。

モジュールを作ってみよう

tax.pyというモジュール
tax.py def taxprice(price):
    ans = price * 1.08
    return ans

モジュールの保存場所に注意

今回のように単純なプログラムであれば、後で読み込み使いやすいように同じフォルダ内に一緒に入れておけばわかりやすくなります。


詳しくはこちらをご参照ください。

作ったモジュールを読み込んでプログラムを動かしてみよう

import tax

print(tax.taxprice(100),”円”)
詳しくはこちらをご参照ください。

標準モジュールを動かしてみよう

一例としてcalenderを使ってみよう。他にもmath,random,datetime,time,csv,jsonなどなどたくさんあります。

import calendar
print(calendar.month(2022,2))
詳しくはこちらをご参照ください。

ボタンをクリックするとあいさつ表示がでるアプリを作ってみましょう

import tkinter as tk

def displabel():
    lbl.configure(text=”Hello”)

root = tk.Tk()
root.geometry(“200×100”)

lbl = tk.Label(text=”ラベル”)
btn = tk.Button(text=”push”, command = displabel)

lbl.pack()
btn.pack()
tk.mainloop()
詳しくはこちらをご参照ください。

おみくじアプリを作ってみよう

import tkinter as tk
import random

def displabel():
    kuji = [“1等”,”2等”,”3等”,”4等”,”5等”]
    lbl.configure(text=random.choice(kuji))

root = tk.Tk()
root.geometry(“200×100”)

lbl = tk.Label(text=”ラベル”)
btn = tk.Button(text=”push”, command = displabel)

lbl.pack()
btn.pack()
tk.mainloop()
詳しくはこちらをご参照ください。

外部ライブラリをインストールするには?

windowsならコマンドプロンプトを開く。MacOSならターミナルを開く。
外部ライブラリをインストール pip install ライブラリ名 (macOSでは、pip3 install ライブラリ名)

外部ライブラリをアンインストール pip uninstall ライブラリ名 (macOSでは、pip3 uninstall ライブラリ名)

インストールされたライブラリの確認 pip list (macOSでは、pip3 list)

画像表示アプリを作るには?

今回は4つのモジュールを使って作ってみましょう。
import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image
import PIL.ImageTk

def dispPhoto(path):
    newImage = PIL.Image.open(path).resize((400,400))
    imageData = PIL.ImageTk.PhotoImage(newImage)
    imageLabel.configure(image = imageData)
    imageLabel.image = imageData

def openFile():
    fpath = fd.askopenfilename()

if fpath:
        dispPhoto(fpath)

root = tk.Tk()
root.geometry(“500×450”)

btn = tk.Button(text=”ファイルを開く”, command = openFile)
imageLabel = tk.Label()
btn.pack()
imageLabel.pack()
tk.mainloop()
詳しくはこちらをご参照ください。

先に作ったアプリ、モノクロ画像に改造するには?

・・・省略・・・ def dispPhoto(path):     newImage = PIL.Image.open(path).convert(“L”).resize((300,300)) ・・・省略・・・
詳しくはこちらをご参照ください。

先に作ったアプリ、モザイク画像に改造するには?

・・・省略・・・ def dispPhoto(path):     newImage = PIL.Image.open(path).convert(“L”).resize((40,40)).resize((400,300),resample=0) ・・・省略・・・
詳しくはこちらをご参照ください。

簡単な人工知能プログラムを作ってみよう

scikit-learn:機械学習のライブラリを使ってみよう。

たくさんの学習用の画像データを使って学習し、与えられた画像を見て答えを予想する。

sklearnにどんなデータが入っているか見てみましょう。

import sklearn.datasets

digits = sklearn.datasets.load_digits()

print(“データの個数”, len(digits.images))
print(“画像データ”,digits.images[1])
print(“何の数字か=”,digits.target[1])
詳しくはこちらをご参照ください。

数値リストを表示する

import sklearn.datasets
import matplotlib.pyplot as plt

digits = sklearn.datasets.load_digits()

plt.imshow(digits.images[1], cmap=”Blues”)
plt.show()
詳しくはこちらをご参照ください。

データを20個表示させてみる

import sklearn.datasets
import matplotlib.pyplot as plt

digits = sklearn.datasets.load_digits()
for i in range(20):
    plt.subplot(2,10,i+1)
    plt.axis(“off”)
    plt.title(digits.target[i])
    plt.imshow(digits.images[i], cmap=”Greys”)
plt.show()

詳しくはこちらをご参照ください。

画像ファイルから数字を予測するプログラムを作るには?

import sklearn.datasets
import sklearn.svm
import PIL.Image
import numpy

#画像ファイルを数値リストに変換する
def imageToData(filename):
    #画像を8×8のグレースケールに変換
     grayImage = PIL.Image.open(filename).convert(“L”)
     grayImage = grayImage.resize((8,8),PIL.Image.ANTIALIAS)
     #数値リストに変換
     numImage = numpy.asarray(grayImage,dtype= float)
     numImage = numpy.floor(16 – 16 * (numImage / 256))
     numImage = numImage.flatten()
     return numImage
#数値を予想する
def predictDigits(data):
#学習用データを読み込む
     digits = sklearn.datasets.load_digits()

#機械学習をする
     clf = sklearn.svm.SVC(gamma = 0.001)
     clf.fit(digits.data, digits.target)

#予想結果を表示する
     n = clf.predict([data])
     print(“予想”,n)

#画像ファイルを数値リストに変換する
data = imageToData(“3.png”)

#数値を予想する
predictDigits(data)

➀「3」という数字を書いた画像ファイル(「3.png」)を用意します

➁プログラムが画像ファイルを読み込み「3」と予想することを確かめます。

詳しくはこちらをご参照ください。

手書き数字を認識して答えてくれるアプリを作るには?

import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image
import PIL.ImageTk

#機械学習で使うモジュール
import sklearn.datasets
import sklearn.svm
import numpy

# 画像ファイルを数値リストに変換する
def imageToData(filename):
    # 画像を8×8のグレースケールに変換
    grayImage = PIL.Image.open(filename).convert(“L”)
    grayImage = grayImage.resize((8,8),PIL.Image.ANTIALIAS)

# その画像を表示する
    dispImage = PIL.ImageTk.PhotoImage(grayImage.resize((300,300)))
    imageLabel.configure(image = dispImage)
    imageLabel.image = dispImage

# 数値リストに変換
    numImage = numpy.asarray(grayImage, dtype = float)
    numImage = numpy.floor(16 – 16 * (numImage / 256))
    numImage = numImage.flatten()
    return numImage

#数値を予想する
def predictDigits(data):
    #学習用データを読み込む
    digits = sklearn.datasets.load_digits()

#機械学習をする
    clf = sklearn.svm.SVC(gamma = 0.001)
    clf.fit(digits.data, digits.target)

#予想結果を表示する
    n = clf.predict([data])
    textLabel.configure(text =”この画像は” + str(n) +”だと推測します”)

#ファイルダイアログを開く
def openFile():
    fpath = fd.askopenfilename()
    if fpath:
#画像ファイルを数値リストに変換する
        data = imageToData(fpath)
#数字を予想する
        predictDigits(data)

#アプリのウィンドウを作る
root = tk.Tk()
root.geometry(“450×450”)

btn = tk.Button(root, text=”ファイルを開く”, command = openFile)
imageLabel = tk.Label()
btn.pack()
imageLabel.pack()

#予想結果を表示するラベル
textLabel = tk.Label(text=”手書きの数字を認識しますね”)
textLabel.pack()
tk.mainloop()
詳しくはこちらをご参照ください。

*尚、ここではバージョン「Python 3.10.1」を使用しています。

わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。