Python初心者にできること・作れるもの4選!サクッと作ってみよう!

Python初心者に作れるものってどんなものがあるんだろう?

そんな疑問を解消するためにこの記事ではPythonで初心者に作りやすいものを紹介していきます。何か気になるものがあったら作ってみるといいですよ。

記事の内容
  • Python初心者が作りやすいもの
  • 作りたいものが作れないとき
  • おすすめの勉強法

Pythonでできることはたくさんあるけど、この記事では一例を紹介します。また、PythonでWebアプリ開発をするときってどんな知識が必要なの?って疑問に思う場合は以下の記事を参考にしてみてください。

Pythonでどんなものが作れるのか見ていこう

初心者でもPythonでできること

Python使って色々できることはあるけど、学び始めていきなりWebサービス開発っていうのは結構苦しいのが正直なところですよね。Pythonを学んでちょっとしたら何ができるのかなーって考えてみるとちょっとしたことは色々できると思うので、今回はPythonでできることを4つほど紹介したいと思います。

  • スクレイピング
  • 画像処理
  • Excel自動化
  • TODOアプリ作成

色々できることはあるけど、今回はその中から少しだけ紹介します。何か作れそうなものがあったら作ってみてもいいかもしれないですよ。

Pythonでスクレイピングを行う

スクレイピングはweb上の情報を取ってくるやつですね。別にPythonに限った話じゃないけど、webページのデータをプログラムで取得する事ができます。

Webページの情報をプログラムで取得できるよ

どういった情報が取れるかっていうと画面に映っている情報。例えば、今あなたが見ているこの文章なんかです。

PythonではBeautifulsoupというものを使うと簡単にできるのでちょっとやってみますね。プログラムを書く前にライブラリを入れておきます。

$ pip install requests
$ pip install beautifulsoup4

プログラムはざっくりこんな感じにしましょう。このサイトのトップページの記事のタイトルを取得して表示するプログラムです。

import requests
from bs4 import BeautifulSoup

load_url = "https://gadgelaun.com/"
html = requests.get(load_url)
soup = BeautifulSoup(html.text, "html.parser")

for title in soup.select(".post-title > a"):
    print(title.text)

このプログラムを実行するとこんな感じになります。ファイル名は[youtube_scraping.py]で作ったのでそれを実行。

MacBook-Pro:desktop 〇〇$ python youtube_scraping.py
iPhoneショートカットで定型文をLINEに自動送信する
iPhoneショートカットとGASをつなげてLINEに通知する
【GAS】1日のGoogleカレンダーの予定を毎朝LINEに通知させる方法
GASを使ってGoogleTask(TODO)をSlackにメンション/通知する【GoogleAppsScript】
GoogleAppsScript(GAS)で簡単なWebアプリ開発をする
【iPhone】iMovieの使い方【カット・写真・音楽・テロップ・文字】
LINEアバターの作り方・消し方 - アイコン・背景・保存方法を紹介!
iMovieの文字入れをKeynoteで行う方法
【Mac】iMovieの使い方【カット・写真・音楽・保存・テロップ】
【Mac】無料で使えるおすすめサムネイル作成アプリ
【GAS】Gmailに来たメールをLINEに転送して通知する方法
【無料】文字起こしアプリのおすすめを紹介します
IFTTTでLINEを連携して通知・送信させる方法
【IFTTT(イフト)の使い方】Webサービス・アプリを連携して自動化しよう
IoT家電の事例を紹介!生活がもっと便利にスマートになるかもしれません
iPhoneのメモをPDF・画像として保存する方法
【プログラミング言語なでしこ】日本語でプログラミングを試してみる
【iOS14】ウィジェット写真の固定・変更・複数設定方法
【iOS14おすすめウィジェット】ホーム画面に追加してより便利に!
iOS14新機能一覧【ウィジェット?背面タップ?】
XaaSとは?例とメリット・デメリットを紹介!
Vrewアプリで動画に自動でテロップを入れる方法
【Photoshop×スプレッドシート】動画のテロップを半自動で一括作成
【無料・有料プラン】LINEミュージックの使い方と解約方法
【無料】Repl-AIを使ったLINEチャットボットの作り方
チャットボットとは?種類と事例を紹介します
GoogleKeepの使い方と活用法
パソコン作業を疲れにくくするグッズ?おすすめの周辺機器を紹介します。
家事代行サービスの料金を比較!
ハンドメイド販売サイトのおすすめと選び方

サイトの記事のタイトルが取得できました。これだけ少ないプログラムでトップページにあるこのサイトの記事のタイトルが全部取れてしまうのはなんかちょっと悲しい気持ちになりますね。スクレイピングはこんな感じでHTMLの構造が分かってしまえば簡単です。

WebページをChromeのディベロッパーツールで見てHTMLとCSSの構造が分かってしまえば、スクレイピングは結構簡単にできてしまうからpythonを学び始めて「ちょっと情報さらっと取得したい!」って思ったら試してみるといいです。

Chrome開発者ツール

(右クリックの「検証」から見れる)

ちなみに、スクレイピングは禁止されているサイトもあるからそこら辺は利用規約なんかを見てください。例えばYoutubeなんかダメです。

 

本サービスの利用には制限があり、以下の行為が禁止されています。

1. 本サービスまたはコンテンツのいずれかの部分に対しても、アクセス、複製、ダウンロード、配信、送信、放送、展示、販売、ライセンス供与、改変、修正、またはその他の方法での使用を行うこと。ただし、(a)本サービスによって明示的に承認されている

3. 自動化された手段(ロボット、ボットネット、スクレーパなど)を使用して本サービスにアクセスすること。ただし、(a)公開されている検索エンジンを YouTube の robots.txt ファイルに従って使用する場合、または(b)YouTube が事前に書面で許可している場合を除きます。

Youtube利用規約

まあスクレイピングされて良い思いするサイトなんてないですよね。もし、プログラムで情報にアクセスしたいならそのサービスにAPIがないか確認してみるといいです。

Pythonで画像処理を行う

次は画像処理をやってみます。Pythonで指定した画像を加工したりすることができる。

結構いろんな画像編集ができるよ

画像処理のプログラムを書く前にopencvという画像処理を扱うのに便利なライブラリを入れておきます。

$ brew install opencv
$ pip install opencv-python
$ python3
>>> import cv2
// 何も表示されなければOK

    画像から顔を検出して四角で囲うようなプログラムを書いてみましょう。

    import cv2
     
    face_cascade = cv2.CascadeClassifier('/Users/〇〇/Desktop/haarcascade_frontalface_default.xml') 
    src = cv2.imread('/Users/〇〇/Downloads/girl.jpg')
    img_gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(img_gray)
     
    print(faces)
    for (x, y, w, h) in faces:
        cv2.rectangle(src, (x, y), (x + w, y+h), (0, 0, 200), 3)
    
    cv2.imwrite("/Users/〇〇/Desktop/output.png", src)
    

    haarcascade_frontalface_default.xmlっていうファイルを使っているけど、これはOpenCVのGithubから取得できる。使うだけで顔を認識してくれて便利です。

    実行するとこんな感じで人物の顔の部分を四角で囲ってくれます。顔を識別してくれるファイルがあるおかげですね。

    人物の顔をPythonで認識させる

    顔などを分類してくれるファイルはOpenCVにあらかじめ用意されているから、自分が使いたいものを使うといいでしょう。顔の部分にモザイク処理してみるとこんな感じ。

    import cv2
     
    face_cascade = cv2.CascadeClassifier('/Users/〇〇/Desktop/haarcascade_frontalface_default.xml') 
    src = cv2.imread('/Users/〇〇/Downloads/girl.jpg')
    img_gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(img_gray)
     
    for (x, y, w, h) in faces:
        # cv2.rectangle(src, (x, y), (x + w, y+h), (0, 0, 200), 3)
        small = cv2.resize(src[y:y+h, x:x+w], None, fx=0.08, fy=0.08, interpolation=cv2.INTER_NEAREST)
        src[y:y+h, x:x+w] = cv2.resize(small, (w, h), interpolation=cv2.INTER_NEAREST)
    
    cv2.imwrite("/Users/〇〇/Desktop/output.png", src)
    

    実行してみると顔の部分にモザイクがかかっていますね。モザイクの大きさも数値をちょっと変えてあげれば簡単に変える事ができるのは楽。

    Pythonで人物の顔にモザイクをかける

    動画に出ている人物の顔を認証してモザイクをかけるなんてこともできそう。ちょっとコードは多くなるかもしれないけど、やってみるのもありですね。画像関係はOpenCVやpollowっていうライブラリなんかを使ってみると楽だったりするからよかったら使ってみるといいですね。

    PythonでExcel自動化を行う

    Pythonを使ってExcelの作業を自動化するようなこともできる。

    毎回Excelをカタカタ叩いて入力しているなら、プログラムを一度書いてしまえばその作業時間を相当短縮する事ができそうです。仕事でExcelを使う時間がほとんどっていう人もいると思うから、プログラムの力を使えばかなり楽になるかもしれません。

    手作業のエクセル作業自動化できたらいいよね

    自分はExcel使わないけど、使う方は試してみるといいかもですね。

    PythonでTODOアプリを開発する

    TODOアプリケーションは言語やアプリケーションを試す上で結構良いです。TODOの閲覧と作成、編集、削除機能を作れば何となくそのフレームワークなんかの使い方が分かってくる。

    Pythonで作成したTODOアプリ

    CRUDを満たすものを作るのはおすすめです。

    CRUDとは、永続的なデータを取り扱うソフトウェアに要求される4つの基本機能である、データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の頭文字を繋げた語。

    CRUD

    PythonならFlaskやDjangoなどのフレームワークを使って作ってみるといいでしょう。

    作ったら後悔してみよう

    何か自分で作りたいものが作れたらインターネット上に公開してみるといいです。公開までしてみると開発の全体的な流れがざっくり知れるので自信が付くはずです。

    公開先はAWSやGCPなどのクラウドが一番に浮かぶけど、結構ハードルは高いはず。

    AWSとか難しくてよく分からないんだよなあ・・・
    気持ちは分かる・・・

    いきなりクラウドでゴリゴリにできるのであればいいですが、正直VPSの方が良いんじゃないかなと思います。VPSなら操作もクラウドより簡単で料金も手ごろです。

    以下の記事でおすすめのVPSを紹介しているので、何か作ったものを公開したかったら参考にしてみてください。

    Pythonで作りたいものがなかなか作れなかったら

    プログラミング学習は自分だけでやるとなかなかエラーを解決できなかったり、思い通りのものの作り方が分からなかったりするものです。だから本格的に学ぶには他の人に聞ける環境を作るのがおすすめ。

    プログラミングスクールを利用する

    今はサブスク型のプログラミングスクールなら安いものがあるから、コスパ良く教材や学習環境が欲しい方には良いかと思います。DIVE INTO CODEのライトプラン1010円/月・ベーシックプラン4980円/月、侍エンジニアPlus+の3278円/月なら手を出しやすいです。

    本を使って学習する

    本を使ったメインの学習はおすすめしないけど、サブ的に本を使っての学習はおすすめです。寝っ転がりながら見ることができるのはいいですよね。以下の記事でPythonも含めてAmazonのプログラミングの人気本を紹介しているので何か探している方は参考にしてみてください。

    ココナラで学習の手助けをしてもらう

    ココナラではプログラミングの学習を助けてくれるような人がたくさんいます。

    ココナラの例
    • プログラミングの手助けします
    • PHPプログラミング2週間教えます
    • Pythonプログラミングを教えます

    「プログラミング」と検索してみると2500件ほど見つかる。

    料金は出品者によって違うけど大体数千円でで依頼できるから、気になったらココナラ使ってみるといいですよ。

    Python初心者におすすめ勉強法

    Pythonを学んでちょっとしたらできることってなんだろう?って思ってちょっとPythonでできることを紹介したけど、結構便利な事ができます。画像処理なんかは日常的に使えそうです。

    それとPythonで書いたけど別にPythonだからできるとかそんなことはなくてPythonじゃなくてもPHPやRuby、JavaScriptなんかでできることも多いです。

    個人的には人工知能開発関連以外は他の言語でもいいんじゃないかなーっとも思ったりもする。ただPython便利だしね、いろいろPythonマスターしてやってやりたいよね。

    おすすめの勉強法は以下の記事で書いたから良かったら参考にしてみてね。