- 1. Pythonで実装されたCOBOLインタープリタのご紹介
- 2. python tkinter スライダーとスピンボックスの値連携
- 3. Pythonデコレータ入門
- 4. AWS CDKでカスタムIAMポリシーを作成する
- 5. 文字列中に同じ文字が並んでいたら1文字にまとめたい
- 6. プログラミング初心者が最難関問題をAIに解いてもらった【村人の友好関係 (paizaランク S 相当)】
- 7. 島探し (paizaランク S 相当):
- 8. Pythonでスクレイピングをしてみよう
- 9. mod7占い (paizaランク S 相当):Python3解答例
- 10. ChatGPTのおかげで未使用だった”Python”を実務で初めて使用できたお話。
- 11. Python 導入方法について
- 12. ipynb on VSCodeにおいてmatplotlibで描画した3dグラフをいろんな角度から見られるように表示する方法 ~ipymplを使うよ~
- 13. paizaラーニングレベルアップ問題集をPython3でやってみた
- 14. お菓子の詰め合わせ (paizaランク A 相当):Python3解答例
- 15. Python if文まとめ
- 16. GAME言語コンパイラ to C on python3 ‘miep2.py’
- 17. 本の整理 (paizaランク A 相当):Python3解答例
- 18. f18: pythonista3 現状 + stash 起動エラー暫定回避
- 19. PythonでSVGファイルをPDFドキュメントに挿入する方法
- 20. pyzbarライブラリの使用で発生した”ImportError: Unable to find zbar shared library”エラーを解消
Pythonで実装されたCOBOLインタープリタのご紹介
## はじめに
プログラミングをしていると、「この機能はどう動作するのだろう?」と気になることがよくあります。そんな時、まずはWebで検索して機能を確認し、さらに簡単なプログラムを書いて動作を確認することが一般的です。
Ruby、Java、Pythonならば、コードを書いて即実行できるので、試してみることに抵抗がありません。C++も、Visual Studioなどを使用すれば比較的簡単に試すことができますね。
しかし、COBOLはどうでしょうか?
手軽に動かせるCOBOL環境はなかなか見つかりません。もちろん、OpenCOBOLなどをセットアップすれば動作させることは可能ですが、そのセットアップには時間と労力がかかり、誰でも簡単に扱えるとは言い難いです。
そこで、「ないなら作ってしまおう」と考え、開発したのがインタープリタ型COBOL「Smart Interpreter Training COBOL」(以下 SIT COBOL)です。
![Black Beauty Makeup YouTube Thumbnail.png](https://qiita-image-stor
python tkinter スライダーとスピンボックスの値連携
python tkinter スライダーとスピンボックスの値連携
spinboxの値は spinbox1.get() で取得する
scale1の値は var_scale 変数を用意しておき、
tk.scale1 = ttk.Scale で variable= のオプションで設定するself.var_scale1 = tk.IntVar(self.root)
self.scale1 = tk.Scale(self.frame03, from_=0, to=255, orient=tk.HORIZONTAL, resolution=1, variable=self.var_scale_1, length=200, showvalue=False, command=self.func_scale_1_scrolled) # resolution=ステップ値, length=GUIフォームのサイズ:横幅 label=記述なしでラベル表示しない、showvalue=Falseで値表示させない“`
import tkinter as tk
from tkinter import
Pythonデコレータ入門
**Python** のデコレータは、関数やメソッドの振る舞いを変更するために使用される特殊な機能です。
`デコレータ`は、関数を引数として受け取り、新しい関数を返す関数です。
`デコレータ`は、`@`記号を使用して簡単に適用することができます。デコレータの例
例えば、次のようなデコレータがあります。“`python
def my_decorator(func):
def wrapper():
print(“Something is happening before the function is called.”)
func()
print(“Something is happening after the function is called.”)
return wrapper
“`このデコレータは、`my_decorator`という名前の関数で定義されています。
この関数は、`func`という名前の引数を受け取り、新しい関数`wrapper`を返します。`wrapper`関数は、`func`が呼び出
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.3beautifulsoup4と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で割り切れる組み合わせの数を効率的に計算するためのものです。
ChatGPTのおかげで未使用だった”Python”を実務で初めて使用できたお話。
## 使えずに眠っていた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 × Python 出会いと実施したこと
当初は**ChatGPTを活用してできる業務改善**を探していただけなんです。そんな中
**YouTubeで見たおすすめ 7つの仕事術の内の1つで「分類」という項目に着目しました。**そして普段の業務で改善したかったことは、約2,000アイテムからデータ分析を行うための
前処理で「分類」を実施し事前にデータに要素を追加したいということ
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