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

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

GAME言語 compiler to C by python3 ‘gamecc’

GAME言語のコンパイラをpythonで書いてみました。

GAMEコンパイラfor C – gamecc.py

gamecc.py file.gmとすると、GAME言語で書かれたfile.gmを、Cコンパイラでコンパイル可能なC言語形式に落としたものを出力します。

結果は、標準出力に出力するので、gamecc.py file.gm >file.cと、リダイレクトしてご使用下さい。
file.cはccでコンパイル可能です。 `cc file.c -o a.out`、`./a.out`で実行することが出来ます。

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

まだ未完成です。素数発生プログラムが動き始めたばかりなので、アルファ版としてリリースします。version 0.7.0

“`gamecc.py
#!/usr/bin/python3
import sys
import re
lines=[]
cp=0

def out_header():
print(“#include “)

元記事を表示

本の整理 (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(会社に入社して一番はじめに触

元記事を表示

ラズパイでSPI接続LCDを使う

# 使用したディスプレイ

amazonで2000円ちょっとで売ってるやつ

http://www.lcdwiki.com/3.5inch_SPI_Module_ILI9488_SKU%3AMSP3520

# 動作確認環境

Raspberry Pi 4

# 接続

| name | pin # | GPIO |
|-|-|-|
|VCC | 2 | – |
|GND | 20 | – |
|CS | 24 | 8 |
|RESET | 31 | 6 |
|DC/RS | 29 | 5 |
|SDI(MOSI) | 19 | 10 |
|SCK | 23 | 11 |
|LED | 22 | 25 |
|SDO(MISO) | 21 | 9 |

# 作成したもの
https://github.com/tyano463/msp3520

# 制限事項

タッチ操作は非対応

# 懸念点

文字列単体で表示すると、表示領域以外の色がくすむ

全体を一括で表示する必要があるのかもしれない

# その他

## 一般ユーザで実行してpermission deniedになる場合

SPI

元記事を表示

path to trajectory c++ -> python

#!/usr/bin/env python3
import rclpy
import rclpy.node
import rclpy.qos
import rclpy.executors
from autoware_auto_planning_msgs.msg import PathWithLaneId
from autoware_auto_planning_msgs.msg import Trajectory
from autoware_auto_planning_msgs.msg import TrajectoryPoint
from std_msgs.msg import Float64MultiArray

class PyPTTNode(rclpy.node.Node):

def __init__(self):
super().__init__(“py_ptt”)
self.point_counter = 0
self.counter = 0
self.objectlist = []

元記事を表示

2,3体問題と数値解析

# はじめに
複数の惑星が存在した場合、その惑星が万有引力によりどのような軌跡を描くのかを調査する問題を多体問題という。一般的に3体問題以上の系は厳密に数式を用いて運動方程式を解くことができない。そこで、今回は2体問題や3体問題についてpythonを用いた差分法で運動方程式を解くことにより、適切な計算量以内の範囲でシミュレーションをすることを目的とする。

# アルゴリズム
加速度と変位の関係式である運動方程式から変位を求めるために、以下のようなアルゴリズムを用いる。

## 速度と変位
微小区間($t=t$から$t=t+\Delta t$)に粒子の加速度$\textbf{a}$が与えられたとき
速度と変位は以下のように表すことができる。これは、微分の定義から来ている。

“`math
\textbf{v}(t+\Delta t)=\textbf{v}(t)+\textbf{a}(t)\Delta t
“`

“`math
\textbf{x}(t+\Delta t)=\textbf{x}(t)+\textbf{v}(t)\Delta t
“`
これを$t=0$から$t=t$ま

元記事を表示

文字の一致 print内にif文を埋め込む

https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str

今回、print内にif文を書くことで、短い行数で同じ動作をするプログラムをPython 3で書いてみた。
もし、正しいif文で書くとこのようになる。
## プログラム本文
“`py:patern1.py
a = input()
b = input()
if a == b:
print(“OK”)
else:
print(“NG”)
“`
print文の中で処理をするように書き直すと以下のようになる。
“`py:patern2.py
a = input()
b = input()
print(“OK” if a == b else “NG”)
“`
## 結果と分析
### patern1の場合の結果
![スクリーンショット 2024-08-20 214201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828295/fb709aad-76b1-1

元記事を表示

AtCoder Python チートシート

## 入力
### 一行だけ取る
|Input |script |結果 |
|—|—|—|
|abcde|s=input() |s=’abcde’ |
|abcde |s=list(input()) |s=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’] |
|5(1つだけ) |a=int(input()) |a=5 |
|1 2 |x,y = map(int,input().split()) |x=1,y=2 |
|1 2 3 4 5 … n |li = input().split() |li=[‘1′,’2′,’3′,…,’n’] |
|1 2 3 4 5 … n |li = list(map(int,input().split())) |li=[1,2,3,4,5,…,n] |
|FFFTFTTFF |li = input().split(‘T’) |li=[‘FFF’, ‘F’, ”, ‘FF’] |
### 複数行取る
#### patern 1
“`py:input.txt
3
a
b
c

元記事を表示

Python3: List A から List B の要素を除く

リスト内包表記 を使います。

## プログラム

“`py:remove_list.py
#! /usr/bin/python

list_aa = [1, 2, 3, 3, 4, 5, 4, 5, 6]
list_bb = [4,5]
print(list_aa)
print(list_bb)
bb_set = set(list_bb)
new_list = [item for item in list_aa if item not in bb_set]
print(new_list)
“`

## 実行結果

“`text
$ ./remove_list.py
[1, 2, 3, 3, 4, 5, 4, 5, 6]
[4, 5]
[1, 2, 3, 3, 6]
“`

元記事を表示

Pythonで自然言語処理 (NLP) を使って感情分析をしてみた

こんにちは!今回は、Pythonを使って簡単な感情分析を行う方法を紹介します。感情分析は、テキストデータがポジティブ(肯定的)かネガティブ(否定的)かを判断する技術です。これを通じて、NLP(自然言語処理)の基本を学びましょう。

# 1. 必要なライブラリのインストール
まず、必要なライブラリをインストールします。以下のコマンドを実行してください。

“`
pip install numpy pandas scikit-learn nltk
“`
これで、データの前処理や機械学習モデルの構築に必要なツールが揃います。

# 2. データの読み込み
次に、ユーザーレビューが格納されたCSVファイルを読み込みます。レビューには、テキストの内容とそれがポジティブかネガティブかを示すラベルが含まれています。
“`
import pandas as pd

# CSVファイルからデータを読み込む
data = pd.read_csv(‘sentiment_reviews.csv’)
print(data.head())
“`
この段階で、データが正しく読み込まれているかを確認しましょう

元記事を表示

djangoのlogin_requiredデコレーター実装について調べた

## デコレーターとは

関数の前後に他の特定の処理を入れ込む機能です。オープンソースでも使われているとの情報を確認し、実際の実装を見ていましたが、djangoで使われていると記事を見たので、コードを調べて複雑な点をメモ書きとして残しておきます。

## djangoの login_required の例

https://github.com/django/django/blob/main/django/contrib/auth/decorators.py

“`python

def login_required(
function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None
):
“””
Decorator for views that checks that the user is logged in, redirecting
to the log-in page if necessary.
“””
actual_decorator = user_

元記事を表示

Pythonのasync/await

Pythonの`async`と`await`キーワードは非同期タスクを管理するために使用されます。

非同期プログラミングは、他のタスクをブロックすることなく複数のタスクを同時に処理できるようにします。Pythonでは、コルーチンを使用してこれを実現します。

`async`キーワードは、関数を非同期コルーチンとして定義するために使用され、`await`キーワードはコルーチン関数内で別のコルーチンの実行を待つために使用されます。

### コルーチンとは何か?
コルーチンは、特定のポイントで実行を一時停止し、再開する機能を持つ通常の関数とほぼ同じです。これにより、非ブロッキング動作が可能になり、コルーチンの実行が遅延した場合や、他のコードを実行するために意図的に実行を一時停止することができます。

コルーチンはジェネレータ関数と非常に密接に関連しています。実際、Python 3.5で`async`と`await`が導入される以前は、ジェネレータ関数を特別な方法で使用してコルーチンを実装していました。

Python 3.5以降のバージョンでは、`async`と`await`という2つの

元記事を表示

名刺バインダー管理 (paizaランク B 相当):Python3解答例

[名刺バインダー管理 (paizaランク B 相当)](https://paiza.jp/works/mondai/b_rank_skillcheck_archive/name_card)

https://paiza.jp/works/mondai/b_rank_skillcheck_archive/name_card

### 背景
![スクリーンショット 2024-08-17 20.24.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527611/015c47bf-1587-6236-3af8-9e1eaf57f0b3.png)

1枚のファイルには、n個のポケットが横に並んでおり、表と裏の両面から名刺を眺めることができます。
このため、1つのポケットには、2枚の名刺が背中合わせに入っています。

– 1番からn番の名刺は、1枚目のファイルの表面から見たときに左詰めに並んでおり、
– n+1番から2n番の名刺は、1枚目のファイルの裏面から見たときに左詰めに並んでいます。
– 2枚目以降のファ

元記事を表示

【合格体験記】Python 3 エンジニア認定実践試験

## はじめに
前回に続き、Python 3 エンジニア認定実践試験の受験所感を記事にしようと思います。
Python 3 エンジニア認定データ分析試験は以下記事にしているので、よろしければ併せてご覧ください。

https://qiita.com/mmm_qiita/items/77f6050acb9254d4d04a

## Python 3 エンジニア認定実践試験とは
概要は以下となります。

:::note warn
記事投稿時の情報となり、内容が変更される可能性がありますので、受験される際はご自身でもお調べいただくことをおすすめいたします。
:::

| 内容 | 詳細 |
| —- | —- |
| 主催 | 一般社団法人Pythonエンジニア育成推進協会 |
| 試験内容 | ・より実践的なPython文法を出題
 ※Python 3 エンジニア認定基礎試験の上位資格 |
| 試験時間 | 75分 |
| 試験形式 | 選択式 |
| 問題数 | 40問 |
| 合格ライン | 70%(28問以上の正解で合格) |
| 受験料金 | 一般: 13,200円(

元記事を表示

Python3: Fizz Buzz (paizaランク C 相当)やってみた

分岐の問題なんですが、単純な繰り返しでもある。

https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz

“`py:
def fizzbuzz_gen():
F = “Fizz”
B = “Buzz”
FB = “Fizz Buzz”
i = 0
while True:
yield from (
i+1, i+2, F, i+4, B
, F, i+7, i+8, F, B
, i+11, F, i+13, i+14, FB
)
i += 15

fb = fizzbuzz_gen()

N = int(input())

for _ in range(N):
print(next(fb))
“`
分岐なしでやってみました。無駄な演算をなるべく減らしてみます。

“`py:
unbox = lambda *xs: xs[-1]

元記事を表示

OTHERカテゴリの最新記事