- 1. 【前編】Pythonでカンタン画像解析~タピオカはいくつ?~ を手直し
- 2. Pythonでマイクロサービスの作成
- 3. Django の JWT クライアント
- 4. pythonで作る数当てゲーム
- 5. Python3エンジニア認定試験の勉強
- 6. インターネット接続にプロキシサーバ必須な環境にて、PythonのSMTPクライアントでGmailからメールを送る方法
- 7. Windows で「有効なフォントファイルではありません」と表示される場合の対処法
- 8. pipenvをインストールする方法
- 9. たった3時間で言語処理をする。~MeCabとWordCloudとGoogle Colabでサクッと簡単~
- 10. じゃんけんゲーム
- 11. kivyMDチュートリアル其の什肆乃弍 Components – Layout篇
- 12. PostgreSQL: テーブルの所有者を変更する (Python3)
- 13. AOJトライに関する知識知見の記録共有:Volume0-0044
- 14. C# から Python へ JSON の受け渡し
- 15. Python ctypes 構造体 pragma pack (push,1)
- 16. 【Python3】「ModuleNotFoundError」の対応
- 17. WebTransportでもテキストチャットがしたい!(WebSocket比較あり)
- 18. クラスター・サーバー上等でのmatplotlibに関するメモ
- 19. matplotlibのsubplotはもうやめたい その2
- 20. 重相関係数の意味あい
【前編】Pythonでカンタン画像解析~タピオカはいくつ?~ を手直し
初投稿!
プログラム初心者なので、間違えてたらごめんなさい。
タイトルのサンプルコードが動いたのでメモがわりに(^ω^)
Pythonの画像処理をやってみようと思い、検索したらこちらの記事が目に入りました。
https://rightcode.co.jp/blog/information-technology/python-image-analysis-hsv-tapioca
画像解析初心者でしたのでサンプルコードをそのままコピーしたのですが・・・。そもそもコンパイルエラー(´;ω;`)
何が悪かったのか、他の記事も検索してみました。
すると、初心者の私でも分かりやすい記事が!
https://tech-blog.rakus.co.jp/entry/20201225/open-cv
(てか、画像解析触れたかっただけだから、これで終わりにすれば良かったなw)
この記事のサンプルコードをとりあえずコピー・・・(笑)
“`perl:Image_processing_Experience.py
import cv2filename = “tapioca_drink.
Pythonでマイクロサービスの作成
#準備
Python環境の用意→インストールは[こちら](https://www.python.org/downloads/)から
Flaskのインストール“`
$ pip install flask
“`
sqlachemyのインストール“`
$ pip install sqlachemy
“`
requestsのインストール“`
$ pip install requests
“`DBの用意(今回はSQLite3)
#実行環境
MacOS 11.4
Python 3.9.0
SQLite 3.32.3
requests 2.24.0
sqlachemy 1.4.26
Flask 2.0.2#webサーバーを立てる
今回は, ブラウザ上で選択したアイテムの値段を計算するwebサイトをマイクロサービスアーキテクチャもどきで作成する.
今回の機能としては以下の2つ
①dbに登録されている商品と値段を表示する
②選択した商品のみの表示“`main.py
import json
import osfrom flask import Flask,
Django の JWT クライアント
Django の JWT クライアントです。
Django のサーバーはこちらのものを使いました。
[ジャンゴ(django)でJWTを使う方法](https://dev-yakuza.posstree.com/django/jwt/)
[django-rest-framework-jwt](https://github.com/jpadilla/django-rest-framework-jwt/) を使っています。Django のバージョン
“`text
$ django-admin –version
3.1.4
“`#token を与えないでエラーが出ることを確認#
“`bash:go_check.sh
http http://localhost:8000/api/blog/posts/
“`実行結果
“`text
$ ./go_check.sh
HTTP/1.1 401 Unauthorized
Allow: GET, OPTIONS
Content-Length: 58
Content-Type: application/json
Date:
pythonで作る数当てゲーム
1~100のランダムな数字を当てるゲームです。
“`python:kazuate.py
import random
count = 1
answer = random.randint(1,100)while True:
number = input(‘1~100の間で数字を入力してください >> ‘)
if number.isdecimal():
number = int(number)
else:
print(‘間違った入力がされました。\n’
‘もう一度数字の入力をお願いします。’)
continueif answer == number:
print(f’正解です。正解は{answer}。’)
print(f'{count}回目のチャレンジで正解しました。’)
break
elif answer > number:
print(f’入力された数字は{number}。それより大きい数です。’
Python3エンジニア認定試験の勉強
#Pythonエンジニア認定試験
受けてみました。勉強時間は2日間(約10時間)。
CBTで、受験料は1万円。##筆者のスペック
転職ついでに2020年に2週間ほどかけて無料のPythonセミナーを受けるも、
ほぼ理解できなかった。クラスやpandas分析までやった記憶はあるが、
「printは覚えたぞ!」程度で終了。
それから1年半の間ほぼpython使わずにいたらさっぱり分からなくなった。
仕事で無理やり使ったりしていた程度。(以下参照)
※ファイルのコピーをコマンドではなくPythonを使ってみる
※SQLデータを敢えてPythonで出力してみる
※ネットに落ちてるコードをコピーして形態素解析してみる
※とりあえずProphetが動くようにしてみる##勉強方法
①過去問を解き続ける
②間違えたところをググる###①過去問を解き続ける
以下サイトに会員登録して、
・知らない問題が出てこなくなるまで
・950点以上になるまで
繰り返し解いた。
850点→650点→550点→750点→850点→950点
というような推移だった記憶がある。https://diver.di
インターネット接続にプロキシサーバ必須な環境にて、PythonのSMTPクライアントでGmailからメールを送る方法
#本記事の内容
– インターネット接続にプロキシサーバ利用が必須な環境において、Gmailからメールを送れるPythonアプリを実装します。メールプロトコルはSMTPです。Gmailのsmtpサーバを用いて、Pythonからメールを送りたかったのですが、
インターネット接続のためにプロキシサーバを経由させる必要がでたので、対応方法を調査してまとめました。例えば、企業内の内部ネットワークやクラウドにおける内部ネットワークからのメール送信等、インターネット接続にプロキシサーバ利用が必要となるプライベートなネットワーク環境でPythonアプリを動かすことを想定しています。
きっと状況としては、よくあるはず。何かの役に立てば幸いです。#実施環境
– Windows 10
– Visual Studio Code
– Python 3.8#手順の流れ
1. Googleアカウントでのアプリ認証用のパスワード発行
2. SMTPでプロキシ設定できるPythonライブラリのインストール
3. Pythonプログラムの作成と実行## 1. Googleアカウントでのアプリ認証用の
Windows で「有効なフォントファイルではありません」と表示される場合の対処法
# イントロダクション
フォント画像の描かれた SVG から、FontForge で Python Script を使用して ttf のフォントファイルを作成しました。
その際以下のアラートが出て、フォントを利用できないことがありました。![invalid_font_alert.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33738/99ad82bb-f75e-2ef1-7315-e42c1ac25915.png)
# ENV
– Windows10
– FontForge# 原因
! (半角ビックリマーク)が指定されていない。
## 解説
「!」は UTF-8 で U0021 という文字コードを割り当てられています。これは制御文字を除くと一番先頭の文字コードになるため、恐らく Windows ではフォントファイルの有効性を確認するアルゴリズムとして「!」の有無を見ているのだと思います。
ちなみに「!」に空白の画像を指定しても「有効なフォントファイルではありません」と出てプレビュ
pipenvをインストールする方法
①まずpythonを下記からダウンロード、インストールしておく
https://www.python.org/downloads/②get-pip.pyの取得
下記の Supported Methods >> get-pip.py に従ってget-pip.pyをダウンロードする
https://pip.pypa.io/en/stable/installation/③pipインストール
ダウンロードしたget-pip.pyに移動し、下記コマンドを実行“`python get-pip.py
④pipenvをインストール
下記コマンド実行“`pip3 install pipenv
※pip install pipenv ではcommand not found :pip と表示される。
理由は下記に記載されていました。
https://teratail.com/questions/269321
たった3時間で言語処理をする。~MeCabとWordCloudとGoogle Colabでサクッと簡単~
# Introduction
## きっかけ
最近はWebアプリ開発にかまけて、楽しい楽しい言語処理を疎かにしていたので、久々にさわってみたくなりました。言語処理といえば、、、MeCabですね。https://qiita.com/Senple/items/1ad08b1a7ac9560bef62
ただ現在はMac使いのボク(キリッ)ですが、米津玄師+WordCloudの記事当時は、WindowsによるMeCabの環境設定に大いに苦労しました。もうあんな思いはしたくないですし、時代はクラウドなので、クラウドでの環境設定に興味を持っていました[^1]。言語処理といっても、仰々しいことをやるのはしんどいので、簡単[^2]にWordCloudでの可視化と組み合わせてみました。
実際の作業は、思い立って画像をダウンロードするまで、3時間かかってないです[^3]。 簡単楽ちん♪## 結論
こんな感じのpngファイルが完成します。![sample_shirasujiro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw
じゃんけんゲーム
“`python:jyanken.py
import randomcount = 1
jyanken = [‘グー’, ‘チョキ’, ‘パー’]def kati():
print(‘———————————–‘)
print(‘あなたの勝ち’)
print(‘あなたは’ + jyanken[int_te] + ‘相手は’ + jyanken[aite])
print(f'{count}回目で勝負がつきました’)def make():
print(‘———————————–‘)
print(‘相手の勝ち’)
print(‘あなたは’ + jyanken[int_te] + ‘相手は’ + jyanken[aite])
print(f'{count}回目で勝負がつきました’)#最初に手を決める部分、グーは1、チョキは2、パーは3に変換
while True:
te = input(‘手を決めて下さい:グー
kivyMDチュートリアル其の什肆乃弍 Components – Layout篇
ハロー、Qiita!いかがお過ごしでしょうか。
はい、今週も相変わらずやっておりますが、元気にやっていきましょう。
今週は何といっても、月食についての話題がホッとではなかったでしょうか。私も外を
歩いているところで見かけましたが、あまりよく分からなかったですね。時間帯もあった
のでしょうが、肉眼では捉えにくかったです。みなさんはどうでしたでしょうか。今週のKivyMDですが、先週から伝えている通り今日でコンポーネンツが終了します。
長かったような短かったようなよく分からない気持ちでもありますね。。ですが、完全に
終わりといった訳でも無く、ポロポロ有効化されてないプロパティなどあってバージョン
アップをしないと挙動が変わっているか分からないものもあります。一覧は以下の通りです。* NavigationRail
* Snackbar
* FileManager
* (*Picker)
* (DataTables)バージョンアップ後にポロポロ出てきたものを検索すると、ざっと上記5つが浮上してきま
した。前半2つは検索して見てもらえれば、どんな意図しない挙動があるか見ることがで
PostgreSQL: テーブルの所有者を変更する (Python3)
PostgreSQL で複数のテーブルの所有者を変更する方法です。
Ubuntu 21.10 で確認しました。ライブラリーのインストール
“`bash
sudo apt install python3-dotenv
“`“`text:.env
user=’******’
password=’******’
data_base=’******’
“`“`py:change_owner.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# change_owner.py
# Nov/20/2021
#
# ——————————————————–
import os
import sys
import psycopg2
import psycopg2.extras
from dotenv import load_dotenv
#
# ——————————————————
AOJトライに関する知識知見の記録共有:Volume0-0044
# タスク概要
Prime Number IIhttps://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0044
# コード実装例
TIPS1. 例外処理含む評価パターンを追加
1. 入力値自体が素数にその旨出力
1. 出力数をパラメータ変数指定し調整可能に“`
import pprint, sys
import sympydef core(arg, n=3):
r = [arg] if sympy.isprime(arg) else []
return [sympy.prevprime(arg)] + r + [sympy.nextprime(arg, i) for i in range(1, n+1)]def app(*args):
ret = []
for arg in args:
try:
r = core(arg)
except Exception as e:
r = e
C# から Python へ JSON の受け渡し
C#からPythonへJSON文字列を送り、少し編集してC#側に戻すサンプル。
Pythonにあまり詳しくないC#経験者向けに書いています。# 環境
– Windows10 64bit
– Visual Studio 2022
– .Net6.0
– Newtonsoft.Json
– Python 3.6.8# C#側
標準入出力を介してやり取りする形になります。
“`c#:Program.cs
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Diagnostics;// Pythonファイルのパス
string pythonFile = “Program.py”;// Python側に渡すJSON
JObject inputJObj = JObject.Parse(@”{
‘CPU’: ‘Intel’,
‘Drives’: [
‘DVD read/writer’,
‘500 gigabyte hard drive’
]
}
“);var proce
Python ctypes 構造体 pragma pack (push,1)
本日はPythonのctypesに関する記事です。
実用的な内容ですので是非LGTM ストックお願いします ^__^## ctypesとは
C言語のデータ構造をPythonで扱うことができるライブラリです。
Pythonをインストールするときにこちらのライブラリは標準でインストールされます。Cの構造体をPythonでも扱いたいときなどに非常に便利です。
> [Python ctypes 公式ドキュメント](https://docs.python.org/ja/3/library/ctypes.html)
## 事例
今回紹介する例としては、
C側:構造体のデータをバイナリでログとして出力
Python:C側で吐き出されたバイナリのログデータを読み込んで表示PythonでCのログを解析することで2次利用(可視化や機械学習)が各段にしやすいのでマスターしたい技術です。
# pragma pack (push, 1)
C側では構造体を定義するとき、 pragma pack をよく利用します。
これをPythonで定義するためには、下記が必要なので忘れないでください。
【Python3】「ModuleNotFoundError」の対応
#はじめに
Webスクレイピングをやろうとして、WebDriverや beautifulsoupなどモジュールはインポートできてるのに、seleniumやbs4が認識されず、「ModuleNotFoundError」が発生してました。
結論としてデフォルトパスが通ってなかっただけなのですが、すごく遠回りして「sys.path.append()」でパスを追加するなど非エンジニアの私としては難しかったので、一番簡単だった方法を記載します。
※Windows10環境・システムのプロパティから「環境変数」をクリックします。
![qiita1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265307/ad57b515-3143-50a5-5e40-2db3d0248fca.png)・ユーザの環境変数に新規で「変数名」をPYTHONPATHで「ModuleNotFoundError」となるライブラリのパスを「変数値」に指定。
(パスは「pip show selenium」などのコマンドで表示)
![qi
WebTransportでもテキストチャットがしたい!(WebSocket比較あり)
# チャットなんてWebSocketで簡単にできるでしょ?
WebTransportをチェックしている皆様こんにちは。
特に仕事でもないのにWebTransporttが気になって仕方ない私です。
(しかも git add 直前に文字化けを直そうとしてファイルが消えましたが挫けません!)さて、前回は簡単なechoをして1対1のやりとりができました。
そこで今回は複数人への送信ということでグループでのテキストチャットルームをやってみます。まあ、WebTransportでもWebSocketとそんなに変わらずすぐできるでしょ。とか思っていました。
## 今回作ったもの
[ソースコードはgithub](https://github.com/alivelime/sample_webtransport_echo/tree/master/chat)
クラスター・サーバー上等でのmatplotlibに関するメモ
– [サーバサイドにおけるmatplotlibによる作図Tips](https://qiita.com/TomokIshii/items/3a26ee4453f535a69e9e)
– matplotlib.use(‘TkAgg’) and matplotlib.use(‘Agg’)
matplotlibのsubplotはもうやめたい その2
Matplotlibのsubplotが使いにく過ぎて、はるか昔にこんな記事を書いた。https://qiita.com/ponnhide/items/fb375a610e4a9c0f743a
今回はその記事の続きで、subplot用の新しいツールをつくってみたという話。# Matplotlibのsubplotは使いにくい
正直言って、Matplotlibのsubplotは依然として使いにくい。僕はmatplotlibの自由度の高さが好きで、どれだけggplotを布教されてもmatplotlibを使い続けているのだけど、subplot周りの実装は真面目に微妙だと思う。そして、この点は他の人からも指摘がなされ、改善が求められている。– https://twitter.com/kasparmartens/status/1381991445381406722?s=20
– https://github.com/has2k1/plotnine/issues/46これらの要望に対する返しとして、最近matplotlibはある機能を実装してくれた。それが [subplot_mosaic]
重相関係数の意味あい
重回帰分析において,重相関係数の二乗(決定係数ともいうが)は独立変数どもが従属変数をどの程度説明するかを表す。
つまり,重相関係数が 0.5 ということは,独立変数どもが挙って従属変数を説明しようとしているが 0.5^2(Python なら 0.5**2であるが)つまり,0.25(つまり 25 %)しか説明できないということ。これは,ヤバいよね。なお,重回帰分析の最も単純な場合である回帰分析においては,重相関係数は相関係数の絶対値を取ったものであり,重相関係数の二乗は相関係数の二乗に他ならない。
つまり,独立変数と従属変数の間の相関係数が r の場合,重相関係数は abs(r) であり,重相関係数の二乗(決定係数)は r^2 である。相関係数の絶対値が 0.7 以上であれば,「強い相関がある」というように判断されるが,「独立変数は従属変数の 0.7^2 = 0.49 つまり,半分以下しか説明できていないのだよ」ということだ。
“`R
> x = c(3, 2, 4, 5, 1)
> y = c(1, 3, 4, 5, 6)
> ans = lm(y ~ x)
> summ