- 1. [ABC377] ABC 377(Atcoder Beginner Contest)のA~C(A,B,C)問題をPythonで解説(復習)
- 2. 【備忘録】PyQt5からPyQt6へのバージョンアップ
- 3. ターゲットグループ障害発生時:Lambda関数でALBルールを制御し、障害時にメンテナンスページを表示する方法
- 4. pythonでエクセル表をコピーしてパワポに張り付ける
- 5. 【Python】PyTorchでCNNからの多値分類(CIFAR-10)
- 6. プログラミング初心者が「家計簿アプリ」を作ってみた。
- 7. 非エンジニアがGPTでバナーを生成しようと奮闘した話
- 8. Python 3.13.0 でvenvを使うと plt.plot() できないバグがあるらしい
- 9. PythonでPerplexity API叩いてみた
- 10. 【合格体験記】Python3 エンジニア認定基礎試験
- 11. CompositeパターンとFactory Methodで構築する複雑なオブジェクト階層管理
- 12. paizaラーニング問題集「【配列 2】立体で計算」を解いてみた
- 13. ABC377回答メモ
- 14. 【Python】PyTorchで多値分類(MNIST)
- 15. データベースとスプレッドシート
- 16. 【Python】PyTorchで多値分類(アヤメ)
- 17. 【Python】PyTorchで2値分類
- 18. Pythonのデコレーター演算子
- 19. Pythonのセイウチ演算子(Walrus Operator)について徹底解説
- 20. ショートカットアプリとHomePod miniで毎朝『今日は何の日?』を自動読み上げさせる
[ABC377] ABC 377(Atcoder Beginner Contest)のA~C(A,B,C)問題をPythonで解説(復習)
# [ABC377] ABC 377(Atcoder Beginner Contest)のA~C(A,B,C)問題をPythonで解説(復習)
# A問題
– 文字を一つずつ見て, `A` `B` `C` が全て存在していれば,並び替えれば `ABC` になると言える.
“`A.py
“””
<方針>
– 文字を一つずつ見て, `A` `B` `C` が全て存在していれば,並び替えれば `ABC` になると言える.
“””
# 入力
S = input()# それぞれの文字が存在したかを記録するフラグ
a_exist = False
b_exist = False
c_exist = False# 全ての文字を見る
for s in S:
# Aだった
if s == “A”:
a_exist = True
# Bだった
if s == “B”:
b_exist = True
# Cだった
if s == “C”:
c_exist = True# 全部存在してたら
if a_exist and b_exist and c_
【備忘録】PyQt5からPyQt6へのバージョンアップ
## はじめに
LinuxやPython界隈ではバージョンアップでハマることが多いですね。ラズパイStretchでPython3.5のコードを使っていましたが、アップグレードやらなにやらしているうちに、USBに繋いだArduinoを認識しなくなり、仕方なしにBookwormを再インストールしたら、仮想環境でないとPythonが使えなくなっていたり、Python3.5にライブラリがpip installできなくなっていたり・・・numpyすら入らなかったです。Cythonのバージョンを下げても何してもダメでした。私の力量不足ですが。
そこで、いっそのことPython3.5で書かれたコードをBookwormで標準のPython3.12へ書き換えることに。PyQt5もpip installできず、PyQt6にバージョンアップすることになりました。PyQt5とPyQt6であまり変更はないという話がちらほらありますが、実際は結構違うように思います。備忘録的に変更点を記します。
## 準備
2024年時点で最新のRaspberry Pi osはBookworm。Raspberry Pi 3Bでも問
ターゲットグループ障害発生時:Lambda関数でALBルールを制御し、障害時にメンテナンスページを表示する方法
## はじめに
この記事では、AWSのApplication Load Balancer (ALB) を使用し、ターゲットグループに紐づくすべてのEC2インスタンスが正常でない場合に、Lambda関数を利用して動的にメンテナンスページ(固定レスポンスページ)を表示させる手順を紹介します。この設定により、アプリケーションの可用性を高めつつ、ユーザーに適切なメンテナンス情報を提供することが可能になります。
本記事が、誰かの技術の支えとなることを願っています!
## 前提:本記事は前回の検証の続きになります。
今回の内容は、以下の記事に続く検証内容です。
前回は、Application Load Balancer (ALB) を使用して複数のEC2インスタンスへの負荷分散を行い、CloudWatchの「**HealthyHostCount**」とEventBridgeを組み合わせてEC2障害を検知するシステムを構築しました。
**ALBで複数EC2インスタンスを負荷分散する手順**
https://qiita.com/free-honda/items/d8fbcd649a71
pythonでエクセル表をコピーしてパワポに張り付ける
pythonでエクセルの表をコピーしてパワポに貼り付けるプログラムを作ってみました。
本当は文字と上下左右中央寄せもコピーしたかったけど疲れたでここでopenpyxlで特定の範囲で下記情報をコピー
・テキスト
・背景塗りつぶし色
・文字色
・太字情報
・セルのマージ情報
・不完全だけど表サイズ●実行例、このぐらいコピーできれば個人的には満足
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3638856/a598804a-a2e8-aab5-c7eb-7ee4a64b7f83.png)“`excel_to_pptxtable.py
import openpyxl
from openpyxl.styles import PatternFill, Font, Border
from openpyxl.utils import get_column_letter
import sysdef excel_get_cell_info(sheet, cellkey):
”
【Python】PyTorchでCNNからの多値分類(CIFAR-10)
# はじめに
前回は、PoTorchでニューラルネットワークを実装し、MNIST を使って多クラス分類をしました。今回は、畳み込みNNを実装し、CIFAR-10の分類を行います。# できたこと
– データセット: CIFAR-10
– 3x32x32
– 10クラス
– 50,000枚の訓練画像, 10,000枚の検証用画像
– 機械学習モデル: CNN
– 畳み込み
– 位置の移動に無関係な特徴量を抽出
– プーリング
– Max Pooling
– 物体の大きさによらない普遍的な特徴量を抽出
– 活性化関数: ReLU
– 損失関数: 交差エントロピー関数
– 最適化手法: SGD分類結果のイメージ
![ch_09_5_result_images_labels – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/ae146a6d-c3de-8be9-18ce-9e4db5ab3c06
プログラミング初心者が「家計簿アプリ」を作ってみた。
作成したアプリはこちら [みんなの家計簿](https://kakeibo.questerx.com/)
![スクリーンショット 2024-10-27 14.09.29.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780860/238a9b02-b67d-f79e-eaf4-b3fcb15eaaab.jpeg)
私はプログラミンとは無縁の仕事をしており、仕事でもせいぜいエクセルとワードの基本操作程度しか扱いません。
個人開発の過程をこちらの紹介しようと思ったのは、開発中にかなりQiitaの記事のお世話になったこと、そして私もいずれはQiitaに記事を投稿したいと思ったからです。
技術的な記事ではありませんが、それをこのような形で達成できて良かったです。## 使用した技術等
* Python
* Django
* Heroku何の言語を使おうか悩んで色々と検索していましたが、Pythonのシンプルな文法がしっくりときたのが決め手です。
「言語自体はPythonに決めたけど、ウェブアプリはど
非エンジニアがGPTでバナーを生成しようと奮闘した話
現役のWEBディレクターです。
一応、非エンジニアですが、wordpress、rails、spring bootなど改修程度で触ったことあるので初級プログラマーレベルの知識はあります。今回は社内で「広告バナー作成のコスト低減」や、「ターゲットに合わせたデザインを出したい」などの課題や要望がありなんとか画像生成AIで作成できないか考えました。
結果的にはできなかったのですが、今後のヒントになるような気がしたので、自分なりに今回やったことをまとめました。
## まずはChatGTPの画像生成を試してみる
ひとまずデフォの機能でどこまでできるか試してみました。
結果的には簡単な画像は作成できるけど、少しでもこだわると以下のようなことがあり、うまくできませんでした。– 文字が絵と同化する
– 日本語がうまく読み込めない
– 背景と文字調整が難しい▼作成された画像
Python 3.13.0 でvenvを使うと plt.plot() できないバグがあるらしいタイトル通りの問題が発生中とのこと.
以下のエラー文が表示されます.
tkinter関連のバグみたいです.
“`
_tkinter.TclError: Can’t find a usable init.tcl in the following directories:
“`対処法は2つです.
1. Python 3.12 を使う
2. Python 3.13.1 が出るのを待つ.[githubでの議論](https://github.com/python/cpython/issues/125235)を見ると,Python 3.13.1 では治るらしいのでしばらく待ちましょう.
## 参考文献
* https://github.com/python/cpython/issues/125235
PythonでPerplexity API叩いてみた
こんにちは。AIツールの情報を集めているときに、大量のツール名リストからツールの詳細を取得するためにPerplexity APIを使ってみました。
# APIキーの取得
参照:[公式ドキュメント](https://docs.perplexity.ai/guides/getting-started “Getting Started”)まず普通に[Perplexity](https://www.perplexity.ai/)にログインしたら、歯車のアイコンを押して設定を開くとAPIのリンクがヘッダーに表示されます。
そこからクレジットを追加するとAPIキーが発行できるようになります。クレジットの追加が最低3ドルからだったので3ドル追加しました。# APIを叩いてみる
コードの書き方はOpenAIのAPIとかなり似ていました。実際openAIクライアントをインポートしています。互換性があるみたいです。
>The API is conveniently OpenAI client-compatible for easy integration with existing applic
【合格体験記】Python3 エンジニア認定基礎試験
こんにちは。今回はOdysseyの[Python3 エンジニア認定基礎試験](https://cbt.odyssey-com.co.jp/pythonic-exam/python3basic.html)を受験し、無事に合格することができたので学習方法や試験を受けての所感をまとめたいと思います。
![スクリーンショット 2024-10-27 10.48.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3853136/1f136512-0f1e-a365-34a8-3e3e6fa2c09c.png)## 1. 背景
私は今年からIT系の会社に新卒入社し、エンジニアとして業務を行っています。業務ではクラウド(主にAWS)によるシステム構築を行っていますが、Pythonを用いてコーディングを行うこともあります。
入社前は大学・大学院でバイオインフォマティクス研究室に所属しており、Pythonのコーディングは5年ほど使用経験がありましたが、業務で扱う上では標準的な知識が足りていないなと感じたため受験をする
CompositeパターンとFactory Methodで構築する複雑なオブジェクト階層管理
## はじめに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/aa351471-fa6f-a432-7c7c-0d8e67652da3.png)
複雑な階層構造を持つオブジェクトの管理は、多くのシステム開発で直面する課題です。この記事では、CompositeパターンとFactory Methodパターンを組み合わせて、Pythonでこの課題を解決する方法を解説します。
## なぜこの組み合わせが必要なのか?
### 課題
1. 複雑な階層構造を持つオブジェクトの管理が煩雑
2. オブジェクトの生成ロジックが複雑化
3. コードの保守性と拡張性の確保が困難### 解決策
– Compositeパターン:階層構造の統一的な扱い
– Factory Methodパターン:オブジェクト生成の抽象化
– 両者の組み合わせ:柔軟で保守性の高い設計の実現## メリット
1. **統一的なインターフェース**
– すべてのコンポーネントを同じように扱える
–
paizaラーニング問題集「【配列 2】立体で計算」を解いてみた
https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__calculate_in_three_dimensions
▼考え方
N=3(3×3×3)の三次元配列が与えられたことを想定し、3要素からなる縦列・横列・斜め列の和のうち最大値を求めるという前提で、説明します。
[概要]
3×3×3の立方体を考えます。要素は1~27の数字とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881331/65822ebc-e854-2d8b-ae24-ecc9ba5c9ccc.png)[処理1]
x,z軸における縦列・横列・斜め列の和を計算します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881331/42d41475-abfa-9366-aaee-752a
ABC377回答メモ
# 0.はじめに
なんとなく、問題表示に時間かかったり、コードテストも時間かかったりした気がします。
また攻撃とか受けてるのかな‥‥。
D問題が解けそうで解けずに結局3問ACで終了。
レートは+5と微増でした・・・。# 1.A – Rearranging ABC
ABC用にそれぞれフラグを持ち、それらの文字があったら
1をセット。最後にフラグを合計して3だったらYes違ったらNoを出力して終了https://atcoder.jp/contests/abc377/submissions/59158888
# 2.B – Avoid Rook Attack
行と列ごとに、駒がある数をカウント
最後に、8から行駒カウントを引いた値と8から列駒カウントを引いた値を掛けた値を
出力して終了https://atcoder.jp/contests/abc377/submissions/59165464
# 3.C – Avoid Knight Attack
駒と駒が移動できる座標を保持するセットSを用意
駒ごとに、駒位置とそこから移動出来る8か所をS
【Python】PyTorchで多値分類(MNIST)
# はじめに
前回は、ロジスティック回帰を使ってアヤメの分類を行いました。今回はニューラルネットワークとMNISTを使って、手書き数字認識を行います。データローダーを使ったミニバッチ学習や、Transforms(transformer, attentionじゃない…念のため…)を使った前処理、GPUの利用なども実装したいと思います。# やったこと
– データセット: MNIST
– 問題: 多クラス分類
– 機械学習モデル: ニューラルネットワーク(隠れ層2つ)
– 活性化関数: ReLU
– 最適化手法: SGD
– 前処理: テンソル化、正規化(-1から1)、平滑化
– データローダーによるミニバッチ学習
– Transformsによる前処理
– GPU利用![最初の50件 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/94ea4f13-1dcf-0c74-0f7f-65a4ee08c691.png)
![学習曲線_損失 – コピー.png](https://qii
データベースとスプレッドシート
# スプレッドシートを制御する標準的な方法
スプレッドシートは究極のノーコードツールで式を埋め込むことで様々なアプリケーションを簡単に作ることができます。・簡単なスプレッドシートの使用例
https://qiita.com/kawamo55/items/4a0a733ea229cde8d57f
本格的なアプリケーションを作るとき使用するスプレッドシートの制御方法は
|スプレッドシート|制御スクリプト|
|–|–|
|Excel | VBA |
|LibreCalc|LibreOffice Basic|
|Google Spredsheet|GAS|上の2つはOld Visual Basic系の文法でGASはJavaScriptです。
これら全ては、全てPythonに置換えることが可能です。# Excelを例にPythonで制御する方法としては・・・
以下のURLで音声合成を呼び出す方法と同様に
https://qiita.com/kawamo55/items/8ebe565e8ef4177cecff
win32com.clientを使ってWindowsのAc
【Python】PyTorchで多値分類(アヤメ)
# はじめに
前回は、PyTorchを使って二値分類を行いました。今回は多値分類を行います。# やったこと
– データセット: Iris
– 入力次元数: 4
– 出力次元数: 3
– 機械学習モデル: ロジスティック回帰
– 損失関数: 交差エントロピー関数
– 最適化アルゴリズム: 勾配降下法![学習曲線_損失 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/3e3a43cc-420a-0a02-125b-686c233f31af.png)
![学習曲線_精度 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/c2c87834-438e-f78c-1e9a-cb6233ac7214.png)# 実装の方針
– 予測関数側では活性化関数は不要で、**線形関数の出力をそのまま出力とする**
– 予測関数出力から **確率値を得たい場合は、予測関数出力にsoft
【Python】PyTorchで2値分類
# はじめに
前回はPyTorchを使って、単回帰モデルの実装・訓練を行いました。今回は二値分類を行います。# やったこと
アイリス・データセットからラベルが0と1のデータを抽出し、二値分類を行いました。
– 機械学習モデル: ロジスティック回帰
– 損失関数: 交差エントロピー誤差
– 最適化関数: SGD
![決定境界 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/871a83c3-fcc8-9454-160d-c4c94c1707f6.png)
![学習曲線_損失 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689015/6dea5b0a-c13b-74c8-647a-de53571039e2.png)
![学習曲線_精度 – コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6890
Pythonのデコレーター演算子
# Pythonのデコレーター入門
Pythonでこのような`@`がつく構文を見たことはありませんか?
“`python
@my_tag(‘cat’)
“`
Pythonには、関数やメソッドに追加の機能を持たせるための「デコレーター」と呼ばれる構文があります。
コードをシンプルに保ちながら、共通の処理(ロギング、キャッシュ、認証など)を再利用可能にします。## 基本的な使い方
デコレーターの仕組みと基本的な使い方
#### `@`で関数を装飾する例デコレーターは、Pythonの関数に対して、追加の処理を簡単に付与する仕組みです。
`@`構文を使うことで、デコレーターが適用された関数をラップします。#### 関数を装飾する
以下のコードでは、@を使って関数にデコレーターを適用する方法を示しています。
“`python
def sample_function(func):
def wrapper():
print(“関数の前処理を実行します…”)
func() # 引数として受け取った関数を呼び出す
pri
Pythonのセイウチ演算子(Walrus Operator)について徹底解説
# Pythonのセイウチ演算子(Walrus Operator)について徹底解説
Python 3.8から導入されたセイウチ演算子(`:=`)は、変数への代入を式の中で行うことができる新しい演算子です。この演算子は、コードの可読性を高め、冗長性を減らすために使用されます。
## 基本的な書き方
セイウチ演算子を使用する基本的な書き方は以下の通りです:
“`python
if (n := len(some_list)) > 0:
print(f’リストの長さは {n} です。’)
“`上記の例では、`some_list`の長さを変数`n`に代入し、その長さが0より大きい場合にメッセージを表示します。従来の方法では、次のように書く必要がありました:
“`python
n = len(some_list)
if n > 0:
print(f’リストの長さは {n} です。’)
“`## よくある使用方法
### 1. ループ中での使用
セイウチ演算子は、ループ内での条件チェックに便利です。以下の例では、リスト内の要素を処理しつつ、その数を把握で
ショートカットアプリとHomePod miniで毎朝『今日は何の日?』を自動読み上げさせる
# 背景
Google Home mini を利用していたときは「今日は何の日?」機能で、その日の日付の過去の出来事を毎朝起床時間に自動読み上げさせていた。しかし、Home Pod mini に買い替えてからは同様の機能が見つからず…(Siriアホの子すぎる😥)。
個人的に好きな機能だったので、同様の機能をショートカットアプリとHome Pod miniで実現させた。
# 実装
## ショートカットアプリ
[別記事](https://qiita.com/howmuch515/items/fbc30fc7d9780a07642c)でショートカットアプリからPythonのコードを直接実行させる方法を示した。
今回はコード量が少々長くなっているのでGistにPythonコードをアップロードしておき、それを読み込むことにした。こうすることでPythonのコードをPC上で修正したり、差分管理できるメリットがある。
実装した結果は以下の通り。`curl -s` と sオプションを指定することでcurlコマンドの余計なログを出力しないようにした。
![7ED33C84-9357-