- 1. atcoder練習(2024.11.16)
- 2. atcoder練習(2024.11.16)
- 3. 複雑ネットワークの次数分布
- 4. X(旧Twitter)で著名人のポストを取得する方法(2024年11月)
- 5. 【AWS CloudWatch Logs】EC2からPythonで実務想定のテストログを生成/送信
- 6. TesseractとSympyを使って画像から方程式を認識して解を求める
- 7. 相関行列を表示し、ヒートマップを描画する方法
- 8. UVを使った環境構築とDockerコンテナのセットアップ
- 9. PythonとTkinterで作る共有ステート管理 – カスタムEventManagerによるウィンドウ間の状態同期 –
- 10. 【Django】後方互換性を保つデータベース変更をしよう(SeparateDatabaseAndState)
- 11. 【備忘録】plt.show() は何のためにあるのか
- 12. グラフを2つ上下に表示させる方法
- 13. 【個人開発】Djangoでワードプレスに劣らないシンプル&高機能なブログアプリを作成してHerokuにデプロイしてみた。
- 14. gemini apiで遊んでみた。
- 15. pythonの文字列型の型変換
- 16. ポケモンのタイプ相性クイズをCodePenで(Python→CodePen)
- 17. random 関数を使用た「数当てゲーム」と「じゃんけんゲーム」
- 18. 新機能「Python in Excel」で機械学習を実行してみた。
- 19. pythonによるOutlook操作
- 20. PyTorch内蔵の学習済みResNetとMacBook Pro搭載カメラで物体検出の推論をする
atcoder練習(2024.11.16)
# キーワード
# 問題
https://atcoder.jp/contests/abs/tasks/abc085_c日本でよく使われる紙幣は、
10000 円札、
5000 円札、
1000 円札です。以下、「お札」とはこれらのみを指します。青橋くんが言うには、彼が祖父から受け取ったお年玉袋にはお札が
N 枚入っていて、合計で
Y 円だったそうですが、嘘かもしれません。このような状況がありうるか判定し、ありうる場合はお年玉袋の中身の候補を一つ見つけてください。なお、彼の祖父は十分裕福であり、お年玉袋は十分大きかったものとします。制約
1≤N≤2000
1000≤Y≤2×10
7N は整数である。
Y は
1000 の倍数である。
入力
入力は以下の形式で標準入力から与えられる。N
Y
出力
N 枚のお札の合計金額が
Y 円となることがありえない場合は、-1 -1 -1 と出力せよ。N 枚のお札の合計金額が
Y 円となることがありうる場合は、そのような
N 枚のお札の組み合わせの一例を「
10000 円札
x 枚、
5000 円札
y 枚
atcoder練習(2024.11.16)
# キーワード
endswith, exit, 守破理
# 問題
https://atcoder.jp/contests/abs/tasks/arc065_a英小文字からなる文字列
S が与えられます。
Tが空文字列である状態から始め、以下の操作を好きな回数繰り返すことで
S=T とすることができるか判定してください。T の末尾に dream dreamer erase eraser のいずれかを追加する。
制約
1≦∣S∣≦10
5S は英小文字からなる。
入力
入力は以下の形式で標準入力から与えられる。S
出力
S=T とすることができる場合 YES を、そうでない場合 NO を出力せよ。入力例 1
Copy
erasedream
出力例 1
Copy
YES
erase dream の順で
T の末尾に追加することで
S=T とすることができます。入力例 2
Copy
dreameraser
出力例 2
Copy
YES
dream eraser の順で
T の末尾に追加することで
S=T とすることができます。入力例 3
Copy
複雑ネットワークの次数分布
## 身近なネットワーク
身近にあるネットワークの例として、➀空港
➁友人関係・SNSのフォロー関係
➂タンパク質の相互作用*
④サイト・論文の引用関係
➄道路網などがあります。
*Protein-Protein Interactions : PPIと呼ばれる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3753744/c1e49c36-f26e-8f5d-f504-1e37a16e547f.png)
この中で➀~④に共通する性質があります。
それは、
・スモールワールド性
・スケールフリー性
の2つです。## スモールワールド性
社会心理学者[スタンレー・ミルグラム](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%AC%E3%83%BC%E3%83%BB%E3%83%9F%E3%83%AB%E3%82%B0%E3%83%A9%E3%83%A0)が1967年に行ったスモールワールド実
X(旧Twitter)で著名人のポストを取得する方法(2024年11月)
(内容やコードは誤りを含む可能性があるのでその点ご理解の上各自自己責任のもとご参照下さい)
# 概要
本記事で取り扱うことは次の通りです。
1. Xの開発者用アカウントを取得する
1. 認証関連のキーを取得する
1. コードを書いてポスト(ツイート)を取得する# ちょっとした背景
筆者は仮想通貨を時々触ってbotを作りたいなと思っては途中で断念するということを繰り返してしまっておりました。その中で、私がフォローさせて頂いている方々が「イーロンのツイート監視して動物呟いていないか見るべきでは」みたいなことをつぶやいておられました。ほかにも「トランプがXに戻ったので常にツイート見ておいたほうがいいんじゃないか」のみたいなのもありました。自分は過去botを作ろうにもアイディアがなくて頓挫ということを繰り返しているのですが、これを見てアイディアのベースとなるものを頂いた気がしたので作ってみることにしました。
# 本題
概要で述べた3ステップに分けて進めていきます。## ステップ1:開発者アカウントを取得する
まずは開発者アカウントの作成です。とりあえず[開発者向けページ](ht
【AWS CloudWatch Logs】EC2からPythonで実務想定のテストログを生成/送信
## はじめに
個人学習の目的を含めているため、不要な手順や無駄な工程があるかもしれません。
Pythonの実行環境としてEC2を利用していますが、お好きな環境で利用可能です。## 本記事の目的
Pythonを使ってランダムなIPアドレスを含むログメッセージを生成し、
それをAWSのCloudWatch Logsに送信する。
(PythonとAWS CLIの個人学習)↓実際に生成したログ↓
メッセージにランダムなIP`例)IP=186.139.154.218`とランダムなstatus含む。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879433/a7ed5eaa-62e7-7cc2-5e76-4ddc2387b9e3.png)“`text:CloudWatchから確認したログのサンプル(3件)
2024-11-16T12:17:23.252+09:00
Sample log entry at 2024-11-16T03:17:23.252405: status=INF
TesseractとSympyを使って画像から方程式を認識して解を求める
# 概要
この記事では、OCRエンジン「Tesseract」を使って、画像から数式を認識し、数式計算ライブラリであるSympyを使って方程式の解を解く方法について紹介します。Pythonを使った手順も含め、数式認識から計算までの流れを詳しく説明します。
# 動作環境
Ubuntu 22.04 LTS
Python 3.10
pytesseract 0.3.13## 事前準備
### 1. Tesseractのインストール
Tesseractとは、Googleが開発したオープンソースの光学文字認識OCR(Optical Character Recognition)ライブラリです。
参考サイト
https://pypi.org/project/pytesseract/“`bash
pip install pytesseract
“`### 2. 関連のライブラリのインストール
Pythonで画像処理を行うためのパッケージであるOpenCVとPillowをインストールします。
“`bash
sudo apt-get install python3-opencv
pip
相関行列を表示し、ヒートマップを描画する方法
:::note info
**本記事で学べる事**
– 相関行列を表示
– ヒートマップを描画
:::最終的に↓のようなヒートマップを描画できるようになりましょう!!
## 事前準備
“`python
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
“`## 任意のデータフレームを作成
今回は、5種類の株を想定し、それぞれの株価が1か月間完全にランダムに変化する場合を考えます。そして、それぞれの株の値動きの相関を調べてみます。まずは、適当にデータを用意します。
“`python:データフレームを作成
dates = pd.date_rang
UVを使った環境構築とDockerコンテナのセットアップ
以前はPoetry派でしたが
https://qiita.com/phlin0424/items/88e1391b2d8e24991048
最近`UV`を使うことになったので`Dockerfile`を更新したいと思います。
“`dockerfile
# Pythonをインストール
FROM python:3.12-slim# ワークディレクトリパスを指定
WORKDIR /app# UVをインストールに必要なライブラリをインストール
RUN apt-get update -y \
&& apt-get install -y curl ca-certificates \
&& apt-get -y clean all# UVのインストール
ADD https://astral.sh/uv/install.sh /uv-installer.sh
RUN sh /uv-installer.sh && rm /uv-installer.sh# UVを使用するに必要なパスを通す
ENV PATH=”/root/.cargo/bin/:$PATH”
PythonとTkinterで作る共有ステート管理 – カスタムEventManagerによるウィンドウ間の状態同期 –
## はじめに
Tkinterで複数のウィンドウを持つアプリケーションを作る際、ウィンドウ間でデータを共有・同期させる必要が出てきます。
よくある解決策として、グローバル変数を使用する方法がありますが、アプリケーションが大きくなるにつれて管理が難しくなります。この記事では、イベントベースの状態管理を実装することで、この問題を解決する方法を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/d2bd3f2f-bc7c-5b86-0293-cebe4a0df11f.png)
## サンプルプログラム
商品の在庫管理を行う簡単なアプリケーションを例に説明します。
メインウィンドウで在庫数を更新すると、サブウィンドウにもリアルタイムで反映されます。“`python
import tkinter as tk
from tkinter import ttk
from dataclasses import dataclass
from typing import
【Django】後方互換性を保つデータベース変更をしよう(SeparateDatabaseAndState)
# 前置き
サービスの継続的な運営のために後方互換性を保つ開発は重要です。
DjangoのようなWebバックエンドフレームワークを利用する際、一度作成したテーブルにカラムを追加したり削除するのはよくあるでしょう。
その際、ORMの定義と実際のテーブル定義にギャップが生じる状態がありえます。
この記事では、Djangoにおいて後方互換性を保って安全にリリースすることで継続的なサービス開発を行う方法を紹介します。
なお、この記事を書くにあたって検証したコードのバージョンは以下の通りです。
– Python: 3.13
– Django 5.1.2
– データベース: SQLite3## 問題が起きるケース
DB変更を伴うDjangoアプリケーションをリリースするときに以下の2点を**完全に同時に**行うことは難しいです。
– ソースコードの変更(差し替え)
– DBマイグレーション実施(DDL適用)※たとえリリースが自動化されていたとしても。
以下のテーブルがあるとします。
“`python:models.py
# Before: 以下の例の「Blue」のコー
【備忘録】plt.show() は何のためにあるのか
# 疑問点
ふと思いました。
以下の`plt.show()`を含む`sample1`, 含まない`sample2`どちらを実行しても、、、
“`python:比較
# sample1_plt.show()を含む
x = [1, 3, 5, 7, 9]
y = [2, 4, 6, 8, 10]
plt.plot(x, y, ‘o’)
plt.show()# sample2_plt.show()を含まない
x = [1, 3, 5, 7, 9]
y = [2, 4, 6, 8, 10]
plt.plot(x, y, ‘o’)
“`
↓のグラフが表示される。では`plt.show()`は何のためにあるのか、と。
# 事前準備
**実行環境: Google Colab**
“`python
import numpy as
グラフを2つ上下に表示させる方法
**グラフを上下に分けて表示させたい場合、subplotを使うと、きれいに可視化できる!!**
# 事前準備
“`python
import numpy as np
import matplotlib.pyplot as plt
“`# `subplot`を利用
`plt.subplot(2, 1, 1)`は上下に2つグラフを作ったうちの1つ目のグラフ
`plt.subplot(2, 1, 2)`は上下に2つグラフを作ったうちの2つ目のグラフ
を指します。今回は、`y=sin(x)`, と`y=cos(x)`を上下に並べるようなグラフを表示してみましょう。
“`python:sample1_simple_version
# グラフの大きさを指定
plt.figure(figsize=(20, 6))# グラフの1つ目
plt.subplot(2,1,1)
x_1 = np.linspace(-10, 10,100)
plt.plot(x_1, np.sin(x_1))# グラフの2つ目
plt.subplot(2,1,2)
x_2 = np.linspace(
【個人開発】Djangoでワードプレスに劣らないシンプル&高機能なブログアプリを作成してHerokuにデプロイしてみた。
以下のサイトが今回作成したブログアプリになります。
https://app-django-blog-5b5e6d3b4f06.herokuapp.com/
PC表示
![スクリーンショット 2024-11-15 23.21.55.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780860/e18607a5-90b5-91ec-0fbe-bc803bb8d451.jpeg)
スマホ表示
gemini apiで遊んでみた。
Google gemini apiで遊べるようなので、プロンプトで実行して遊んでみました。
gemini api の api-keyを取得する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2261995/c81dfe85-d056-87fb-0eda-1cba9cb3b0d1.png)apiキーを取得したら config.iniや環境変数にセットする。
※ このAPI_KEYはパスワードジェネレータでテキトーに作った文字列です。“`ini
[DEFAULT]
API_KEY=S3aW@o81643957s6d198_691!p3r88
“`
モジュールインストールする。“`bash
python -m venv .venv
.venv/Scripts/Activate.ps1
pip install google-generativeai
“`コードで遊ぶ。
“`python
import sys
import configparser
from e
pythonの文字列型の型変換
### 文字列型の日付を型変換
“`python
str_datetime = “26/10/2024 05:58:26 PM”
“`# その1: datetimeを使用
#### str ⇒ datetime
“`python
import datetimeconverted_datetime = datetime.datetime.strptime(str_datetime, “%d/%m/%Y %I:%M:%S %p”)
print(converted_datetime)
print(type(converted_datetime))# 2024-10-26 17:58:26
#“`
https://docs.python.org/ja/3/library/datetime.html#strftime-and-strptime-format-codes
# その2:to_datetime()を使用
#### str ⇒ timestamps
“`Python
# pip install pa
ポケモンのタイプ相性クイズをCodePenで(Python→CodePen)
以前、ポケモンの対応相性クイズのPythonのコードを投稿しました。
[ポケモンのタイプ相性クイズ(Python)](https://qiita.com/8787kazuye/items/c10fa41da1eefe34e641)
これをCodePenなどでつくったら、もっと気軽にできるなと思ったのでChatGPTにお願いしました。まず、できた実物はこれです。Start Quizボタンを押すと始まります。
random 関数を使用た「数当てゲーム」と「じゃんけんゲーム」
### 数当てゲーム
`random` 関数を使用して簡単な「数当てゲーム」を作成します。プログラムが1から100までのランダムな数字を選び、ユーザーがその数字を当てるというシンプルなゲームです。—
## はじめにHI Engineer Collegeでは、実務未経験のエンジニアの方や、エンジニアに興味がある方を募集したおります、まずはお気軽にお問い合わせください。
※ (株)G&T(【内々定まで最短2週間】ゼロからしっかりじっくり研修☆20代活躍中!)
※ HI Engineer Collegeに興味あがある方はこちら(プログラミングを学習したい方)
—
### エンジニア向けチャットルーム「TechTalk」参加者募集中!
プログラミングやITの話題を気軽に共有し、学び合えるエンジニアのためのチャットルーム「TechTalk」では、新たな参加者を募集中です!
**こんな方にオススメです**
– 最新技術の動向やトレンドを追いかけたい
– 日々の開発で
新機能「Python in Excel」で機械学習を実行してみた。
# Python in Excel とは
Excel in Pythonとは…言葉の通り「Excelの中でPythonが使えるようになった」という機能です。
Python in Excelでは、Pythonのライブラリーを用いて、数値計算や統計分析、データの可視化などがExcel上で可能になります。
2023年8月にパブリックプレビュー版がリリースされ、2024年9月に正式提供が開始されました。昨年から使われている方は新機能でもないですね。https://support.microsoft.com/ja-jp/office/python-in-excel-%E3%81%AE%E6%A6%82%E8%A6%81-55643c2e-ff56-4168-b1ce-9428c8308545
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780099/44fc6ca5-3e13-084f-bfe7-56fe9e3d9340.png)
↑上記MicrosoftのHPより。Exc
pythonによるOutlook操作
## 概要
今回はpythonによるOutlook操作するプログラムを書いてみました。
学習のメモ程度に記述していますのでご承知ください。## 実行環境
・windows:Windows11Pro 23H2
・python:3.12.3## 参考
大変参考になりました。感謝申し上げます。https://qiita.com/run1000dori/items/51867dbe24a2a4272bb6
## ソースコード
“`mail.py
”’
以下)Outlookメール送信画面を表示するプログラム
事前準備
pip install pywin32
”’
import win32com.client
import datetime# 現在の日付を取得
today = datetime.date.today()# mmdd形式で日付をフォーマット
formatted_date = today.strftime(“%m%d”)# メモ帳のパス
path = ‘memo.txt’# メモ帳の読み取り
testmessage = []
with open(pat
PyTorch内蔵の学習済みResNetとMacBook Pro搭載カメラで物体検出の推論をする
前回はM4 Pro MacBook Pro上にPyTorchの実行環境を構築しました。
https://qiita.com/xtrizeShino/items/abe5b9caaadecbd1efd6
今回は、PyTorchの`torchvision`に含まれている学習済みの`resnet101`を使ってWebカメラで撮影した物体を検出する推論を実装してみました。`torchvision`は、人気の高いデータセット、モデルアーキテクチャ、コンピュータビジョンでよく利用される画像の加工機能を含むライブラリです。`resnet101`は物体検出を行うネットワークで、101層のニューラルネットワーク層から構成されています。
![スクリーンショット 2024-11-16 7.49.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3919880/3fb5327f-2b76-2fec-8c5b-68fc9be9afe1.png)
## 実行環境
ハードウェアリソースとしてMacBook Proを使用し