Python3関連のことを調べてみた

Python3関連のことを調べてみた

AWS CDKでカスタムIAMポリシーを作成する

## 目的
AWS CodeCommitのカスタマーマネージドポリシーを参考に、AWS CDKで個人開発した内容を記事とします。

下記を満たす実装を目指します。
* 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する
* ブランチに対するアクションを許可または拒否する

https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/customer-managed-policies.html

## 何をつくるか
CodeCommitを利用可能な2つのユーザグループを作成し、下記制限を満たすカスタムIAMポリシーをアタッチします。
* 管理ユーザグループ:
* CodeCommitに対するFullAccess権限をもつが下記を制限する
* 接続元のIPアドレスを制限
* 一般ユーザグループ:
* CodeCommitに対するPowerUser権限をもつが下記を制限する
* 接続元のIPアドレスを制限
* MASTERブランチへ

元記事を表示

文字列中に同じ文字が並んでいたら1文字にまとめたい

文字列中に同じ文字が並んでいたら1文字にまとめたい場合、Rubyでは`String#squeeze`を利用します。

“`ruby
p “112233445566778899”.squeeze
#=> “123456789”
“`

Python3で、同じことを実現するにはどうすればよいでしょうか?

まず`itertools.groupby`を利用する方法があります。

“`python
import itertools
s = “112233445566778899”
t = ”.join(c for c, _ in itertools.groupby(s))
print(t)
#=> ‘123456789’
“`

内包表記の代わりに`operator.itemgetter`を利用することもできます。

“`python
import itertools, operator
s = “112233445566778899”
t = ”.join(map(operator.itemgetter(0), itertools.groupby(s)))
print(t)

元記事を表示

プログラミング初心者が最難関問題をAIに解いてもらった【村人の友好関係 (paizaランク S 相当)】

# はじめに
プログラミング初心者がpaizaラーニングの最難関問題をAIに解いてもらった結果と、実装されたコードについてのメモをまとめた記事です。
詳しいことはあまり分からないのでコメントなどで私の知識を補ってくださる方はぜひコメントをお願いします。
# 問題内容
以下を参照
[【殿堂入りキャンペーン】村人の友好関係 (paizaランク S 相当)](https://paiza.jp/works/mondai/s_rank_skillcheck_archive/group_popularity)
# 使用したAI
ChatGPT (無料版) GPT-4o
# AIが実装したコード
import sys
input = sys.stdin.read
data = input().splitlines()

# 入力をパース
N, M, Q = map(int, data[0].split())
friendship = [[0] * (N + 1) for _ in range(N + 1)]

# 友好度情報の格納
fo

元記事を表示

島探し (paizaランク S 相当):

[島探し (paizaランク S 相当)](https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island)

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island

## 背景
列の数がM、行の数がNの表があります。表の各マスは白か黒で塗られています。
黒で塗られたマスが上下左右で隣接している時、その黒マスの塊をまとめて「島」と呼びます。
例えば、以下のような4列×5行の表(M=4、N=5)があった場合
![スクリーンショット 2024-08-29 6.26.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527611/7bcfb3eb-e3d0-c1da-4fdd-279745ef69f4.png)
この表には以下の(1)~(3)のように3つの島が存在します。

![スクリーンショット 2024-08-29 6.26.51.png](ht

元記事を表示

Pythonでスクレイピングをしてみよう

## はじめに
こんにちは、らっじです

今回は、Pythonでスクレイピングする方法を解説します

## 環境
以下の環境で実行してます

– Ubuntu 24.04 LTS x86_64 (Proxmox)
– Python 3.12.3 venv
– beautifulsoup4 4.12.3
– requests 2.32.3

beautifulsoup4とrequestsはpipでインストールしています

## スクレイピングとは
WebページはHTMLで書かれていて、それを解析して必要な情報を抜き出すことをスクレイピングといいます

:::note warn
スクレイピングをしまくるとサーバーに負荷がかかったりするので、スクレイピングを禁止しているサイトもあります
:::

スクレイピングの手法は大きく分けて、

1. HTTPリクエストを送り、返ってきたレスポンスのHTMLを解析する
2. ブラウザをスクリプトで操作して情報を取り出す

という2種類がありますが、今回は1のほうをやります

(2のほうはSeleniumというライブラリでできるので興味があったら調べてみ

元記事を表示

mod7占い (paizaランク S 相当):Python3解答例

[ mod7占い (paizaランク S 相当)](https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7)

https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7

## 背景
あなたは今、「mod7占い」というサービスを始めようと考えています。

mod7占いとは、整数が書かれた複数のカードの中から3枚を選び、そこに書かれた整数の和が7で割り切れるかどうかで運勢を決めようというものです。 カードは必ず異なる3枚を選ぶ必要があり、全てのカードには全て異なる数字が書かれています。

占いというからには、7で割り切れる組み合わせはそれなりに少なくする必要があります。 そこで、適当な複数のカードに対して、カードに書かれた3つの整数を足した和が7で割り切れるような組合せがいくつあるかを計算するプログラムを作成してください。

このPythonコードは、与えられた整数のカードから3枚を選び、その和が7で割り切れる組み合わせの数を効率的に計算するためのものです。

元記事を表示

おはよう”My Python君”。ChatGPTでようやく目覚めたようだね。

## 今度こそPythonを実務に活かせそう!
こんにちは。某小売業で冷凍バイヤーしていますK-jiです。

過去に少し学んだPythonを実際の業務で初めて使用できたので
この喜びを、同じ悩みを持っている方にも共有できればと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840234/76c84861-4030-0d0c-8c85-494ec6b3f3f4.png)

## (1) ChatGPTの活用を勉強していただけなのですが、、、
実施したかった商品マスターの細分化を**ChatGPTからの直接分類を依頼**してたのですが、
**どうやら300品程のデータは直接分類できない**のか、すぐにChatGPTの制限がかかります。

「スクリプトをお手元のPCで実行する方法で、行数の制限なくデータを処理できます。」
と返事をもらい、Pythonの活用を決意しました。(もっと早く気付くべきでした

Python 導入方法について

# 挨拶
おはこんばんにちは。
ポポノタンと申します。
エンジニア志望の元製造メンです。

今回はPythonの導入方法について解説していこうと思います。

:::note warn
windows環境にVSCodeを導入する解説となっております。
:::

※Macや仮想環境での導入は今回は取り扱わないです。ご了承くださいm(_ _”m)

# ①PythonのインストーラーのDL
![18f5c49bbc4139ae5149a4b04edf4135.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3864659/cce92cc9-874c-206d-7020-530cd859022d.png)

https://www.python.org/downloads/

上記のURLから「Download Python~」と書いてある箇所をクリックし、PythonのインストーラーをDLしてください。

# ②Pythonのインストーラーを起動
![240703d44508a5f0c1aaf66793f27d

ipynb on VSCodeにおいてmatplotlibで描画した3dグラフをいろんな角度から見られるように表示する方法 ~ipymplを使うよ~

【ポイント】
ipymplのインストールと`%matplotlib ipympl`の使用

## 下準備
(下記は、venvによる実行環境管理を前提とします)
– VSCode, Pythonのインストール
– プロジェクトディレクトリに移動
– 仮想環境の作成(venv)
– `python3 -m venv myenv`
– 仮想環境に入る
– `source myenv/bin/activate`(Mac)
– `.venv/Scripts/Activate.ps1`(Windows)
– ノートブック用パッケージipykernel, ipymplのインストール
– `pip install ipykernel ipympl`
– その他必要パッケージインストール(matplotlib, numpyは一つ前の手順で自動的にインストールされる)
– カーネルの選択
– ipynbファイル右上の「カーネルを選択」から先ほど作成した環境を選択

## コードの実行
次のサンプルコードを、ipynbのセルに入れて実行してみます。

“`python
import m

paizaラーニングレベルアップ問題集をPython3でやってみた

paiza×Qiita記事投稿キャンペーンということで、キャンペーン対象問題25問をPython3で解いてみました。
– – –
###### [文字の一致](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str)
“`py
print(“OK” if input() == input() else “NG”)
“`
– – –
###### [一番小さい値](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num)
“`py
print(min(int(input()) for _ in range(5)))
“`
– – –
###### [足し算](https://paiza.jp/works/mondai/d_rank_skillcheck_sample/addition)
“`py
a, b = map(int, input().split())
print(a + b)
“`
– – –
###### [Eメールアドレス

お菓子の詰め合わせ (paizaランク A 相当):Python3解答例

[ お菓子の詰め合わせ (paizaランク A 相当)](https://paiza.jp/works/mondai/a_rank_skillcheck_archive/school_hiking)

https://paiza.jp/works/mondai/a_rank_skillcheck_archive/school_hiking

## 背景
A 君は学校の遠足に持っていくお菓子を買わなければなりません。しかし、学校のルールにより、お菓子の総額は指定範囲内に収めなければなりません。
そこで、指定金額ギリギリまで使って、なるべく色々な種類のお菓子を食べたいと思った A 君は買うお菓子を決めるために、学校のルールと自分の要望を踏まえて以下の基準を満たす買い方をすることにしました。

:::note info
・お菓子の総額を指定範囲内

・種類の数を最大にする

・同じお菓子は複数買わない

・お釣りを最小

・お釣りを最小にすることよりも種類の数を最大にすることを優先する
:::

お菓子の値段が書いてあるリストが与えられるので、A 君の代わりに、上記ルールを満たすお菓子の組み

Python if文まとめ

# 0 はじめに

こんにちは。橘諸兄です。
久し振りの記事の投稿です。
私のfor文のまとめの記事を多くの方にご閲覧・高評価頂いております。ありがとうございます。

この記事では`if`文についてPythonの初学者さんにも分かるように書きます。

# 1 if文の使い方

`if`文は分岐処理に用いるもので、殆ど全てのプログラミング言語に実装されているでしょう。
`if`文に分類されるものは`if`、`elif`や`else`があります。

## 1-1 if
“`py
if (条件P):
Pの時の行う動作
“`

`if`はこれだけです。

例えば
“`py
n=3
if n==3:
print(“Yes”)
“`
だと
“`
Yes
“`
と出力されます。

## 1-2 else
`else`は`if`に対して次のように用います。

“`py
if (条件P):
(Pの時の動作)
else:
(Pでない時の動作)
“`

例えば
“`py
n = 2
if n == 3:
print(“Yes”)
else:
print(“No”)

GAME言語コンパイラ to C on python3 ‘miep2.py’

GAME言語からCへ変換するコンパイラをpythonで書いてみました。

GAME言語コンパイラ – miep2.py

`./miep2.py file.gm >out.c`とすると、GAME言語で書かれたfile.gmをCのソースに変換し、out.cに出力します。

本当はMIEP2ではなく、MIEPにしたいのですが、MIEPという名前は、43年前に中学生の僕と師匠の浜田さんがMicro Integer Expression Processorとして、自作のゲーム言語互換インタプリタ・コンパイラシステムに既に名付けていたので、2が付きました。

out.cはccでコンパイル可能です。 `cc out.c -o a.out`、`./a.out`で実行することが出来ます。

一般に冗長さを許せば、低級なプログラム言語で書かれたソースは、より高級なプログラム言語に翻訳することが容易です。

C言語はチューリング完全です。GAME言語はチューリング完全かどうかですが、brainfuckがチューリング完全で、GAME言語でbrainfuckの全てのインストラクションが記述できるので、GAM

本の整理 (paizaランク A 相当):Python3解答例

[ 本の整理 (paizaランク A 相当)](https://paiza.jp/works/mondai/real_event/book_sort)

https://paiza.jp/works/mondai/real_event/book_sort

## 背景
あなたはパイザ図書館で働く図書館員です。

パイザ図書館には N 冊の蔵書があります。この蔵書はすべて 1 段からなる本棚で管理されています。そして、それぞれの本には 1 から N までの相異なる整数の ID がついています。本棚の本は ID 順に並んでいます。

しかし、ある日、あなたが蔵書の点検をしていると、本棚の本がバラバラに並べられていることに気づきました。

![スクリーンショット 2024-08-24 16.15.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527611/fa1ac61c-c8bd-50ed-041d-40bc7850d73b.png)
そこで、あなたは、次のルールに従って本を並び替えることにしました。

f18: pythonista3 現状 + stash 起動エラー暫定回避

.

### **[ 01. pythonista3 の現状について ]**

2023/05 に pythonista3 v3.4 がリリースされて以降、
現在、暗雲が立ち込めている感じです

この pythonista3 v3.4 は、
python 3.10 のサポートがされているのですが、
バグが多く、フォーラムでは、
報告や改善要望などがあがっておりました

わたくしもいくつか報告をさせていただいていたのですが、
2024/06 にフォーラムにアクセスしたところ、
アクセス不可の状態になっております

Pythonista Forum
https://forum.omz-software.com/

心配するユーザーの方々も動向を見守ってます

Is Pythonista (Python for iOS/iPadOS) no longer with active development and support?
https://www.reddit.com/r/Python/comments/1ca9x6h/is_pythonista_python_for_iosip

PythonでSVGファイルをPDFドキュメントに挿入する方法

SVG(スケーラブルベクターグラフィックス)ファイルをPDF(ポータブルドキュメントフォーマット)に挿入することで、SVG画像のベクター特性を保持し、どの解像度でも鮮明さを保つことができます。また、PDF形式が持つクロスプラットフォームのドキュメント共有の利点を活用でき、技術文書、マニュアル、レポートなどの内容をより豊かで多様にし、容易に配布することが可能です。Pythonを使用すれば、SVGファイルをPDFに簡単に挿入できます。この記事では、**Pythonを使用してSVGファイルをPDFドキュメントに挿入する方法**を紹介します。

– **[PythonでSVGをPDFページに挿入する方法](#pythonでsvgをpdfページに挿入する方法)**
– **[PythonでSVGを添付ファイルとしてPDFに埋め込む方法](#pythonでsvgを添付ファイルとしてpdfに埋め込む方法)**
– **[PythonでSVGを添付ファイル注釈としてPDFに埋め込む方法](#pythonでsvgを添付ファイル注釈としてpdfに埋め込む方法)**

この記事で紹介する方法は、[Spire

pyzbarライブラリの使用で発生した”ImportError: Unable to find zbar shared library”エラーを解消

# 環境
Mac book Air 2023(チップ:Apple M2)
macOS Sonoma 14.6.1
Python 3.12.4

# Errorの内容
pyzbarライブラリを使用してバーコードやQRコードを読み取ろうとした際に、ImportError: Unable to find zbar shared libraryErrorが発生した。
“`python
from pyzbar.pyzbar import decode
:
ImportError: Unable to find zbar shared library
“`

これが発生するのは、zbarというバーコード読み取り用の外部ライブラリがシステムにインストールされていないか、正しく認識されていないことが原因だということ。

一旦それぞれをアンインストールした上で、zbar次にpyzbarの順番でインストールしてみたが、全く解決しない中**GitHub**( https://gi

pyproject.toml をベースにwhl ファイルを作る手順

Pythonでのパッケージ作成のためのツールはsetup.py(とsetup.cfg)の時代が長かった。
pyproject.toml を使ったwhl ファイルの作成手順をメモする。

#### 注意
(いまでは poetry というツールやuv, Rye というツールもあります。
まだ、それらを習得していないので、とりあえず、setuptoolsを用いた方法を試しています。)

## 前提:
すでに`python3 -m pip install .` でpyproject.tomlをもとにインストールできていること。

## 手順
“`
python3 -m pip install –upgrade setuptools wheel build
sudo apt install python3.8-venv

cd /path/to/your/project

python3 -m build wheel
ls dist
“`
## 結果
目的のwhl ファイルがえられた。

WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?の対処法

# 事の起こり

pyenvで最新版のPython(Python 3.12.1)をインストールしようとした時に以下の警告が表示されました。

**WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?**

# 対処法
Homebrewでpython-tkをインストールします。

“`bash
brew install python-tk
“`

再度pyenvでPython 3.12.1をインストールします。今度は成功しました。

“`bash
$ pyenv install 3.12.1
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.12.1.tar.xz…
-> https://www.python.org/ftp/python/3.12

Djangoを使ってみた感想

#はじめに

「DjangoかLaravelの勉強会をやるから資料作ってくれない?」

ある昼下がり、こう上司に言われました。
Laravelは以前、同僚がやったこと、だいたいみんな使えるということ、
Djangoを使った案件が近々動き出すこと、社内に使える人が少ないことからDjangoの勉強会を開くこととなりました。

# Djangoって何?
DjangoはPythonのFrameworkの1つである。
あのFa●●bookやYo●●ubeなどもこのDjangoを使って作られている。

そういえば、Yo●●ubeではオススメの動画が表示されるが、これはPythonを使った機械学習によるものなのかな。
![スクリーンショット 2019-06-24 10.54.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343721/355922df-ec83-d6a4-5152-1c08068fa15c.png)

## Djangoを使ってみて
DjangoとLaravel(会社に入社して一番はじめに触