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

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

最小のメモリ使用量の素数を求めるプログラム

最少のメモリ使用量の素数を求めるプログラムを示します。
実行ファイルです。`chmod +x prime6.py` として実行権をつけ、`./prime6.py N`として実行してください。Nはどこまでの素数を求めたいかの自然数です。

“`prime6.py
#!/usr/bin/python3

import sys
import math
prime=[]
def sub1(n):
for i in range(0,int(len(prime))):
if n%prime[i]==0:
return False
return True

def main():
global prime
n=int(sys.argv[1])
for i in range(2,n+1):
if sub1(i):
prime+=[i]
print(f”{len(prime)} primes{prime}”)

if __name__==”__main__”:
mai

元記事を表示

Pythonを使用してWord文書に行番号を追加または削除する方法

Word文書の行番号機能は、詳細な文書編集や解析に非常に役立ちます。行番号を追加すると、文書の可読性と特定の行を引用する際の効率が大幅に向上し、読者に明確な指針を提供し、不要な混乱や誤解を避けることができます。しかし、文書の編集が完了し、公開や出版フォーマットに変換する際には、行番号が不要になることもあり、読書体験を妨げることさえあります。このような場合、行番号を削除する必要があります。

Pythonを使用してWord文書の行番号を簡単に管理することで、作業効率を向上させるだけでなく、文書の専門性と整然さを保つことができ、さまざまなシナリオに対応できます。本記事では、**Pythonを使用してWord文書に行番号を自動的に追加または削除する方法**について説明し、文書処理作業を簡便にします。

– **[PythonでWord文書に行番号を追加する方法](#pythonでword文書に行番号を追加する方法)**
– **[PythonでWord文書の行番号を削除する方法](#pythonでword文書の行番号を削除する方法)**

本記事で使用する方法には、[Spire.Doc fo

元記事を表示

【python】乃木坂46の3期生メンバーで配列の要素をシャッフルしてみる

# はじめに
配列の要素をシャッフルして並び替えたら面白そうということで、配列の要素をシャッフルした処理を実装してみることにしました。

## どういうツールか?
コマンドプロンプトで人数を入力し、乃木坂46の3期生メンバー12人なので、1から12までの数字を入力したら、配列の要素をシャッフルし、0番目から指定された人数分、標準出力に出力されます。

## ソースコード
“`Python
# 乃木坂3期生メンバーシャッフル
# 好きな順にメンバーを出力する

# 配列の要素出力関数
def output_answer_member(w_array,count):
print(“——–ここから下に乃木坂3期生メンバーを好きな順に出力されます———“)
for i in range(count):
print(w_array[i])

# メイン関数
def main():
# ライブラリを読み込む
import random
# 乃木坂46の3期メンバー配列
nogizaka_member3 = [“

元記事を表示

PostgreSQL: スキーマ内のテーブルのデータを総て削除

## プログラム

“`py:truncate_tables.py
#! /usr/bin/python
#
# truncate_tables.py
#
# Jul/11/2024
#
# ——————————————————–
import os
import sys
import psycopg2
from dotenv import load_dotenv
#
# ——————————————————–
def get_tables_proc(cursor_aa,schema):
sql_str = “select table_name from information_schema.tables where table_schema = ‘” + schema + “‘”
cursor_aa.execute(sql_str)
# print(sql_str)
rows = cursor_aa.fetchall()
#

元記事を表示

初心者向けPythonの課題を考える for MacOS

# 概要
会社の人材育成を目的にPython初学者への学習課題を考える。
課題は提示しますが、自分の好きなように実装してOKです。自分が面白いと思うこと、学びたいことを行ってください。

# 準備
– 私用PC(Mac)でPythonを使えるようにする
– コードを書くエディタを用意する
– 生成したコードはGitHubで公開するので、[GitHub](https://github.com/)アカウントを作る。
– [生成AI](https://chatgpt.com/)のアカウントを作る。**コードの書き方が分からないときはまずここに聞く!!**
– Pythonの学習教材(任意)
– [現場ですぐに使える! 最新Pythonプログラミング逆引き大全450の極意 単行本(ソフトカバー) – 2023/12/9](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E3%81%99%E3%81%90%E3%81%AB%E4%BD%BF%E3%81%88%E3%82%8B%EF%BC%81-%E6%9C%80%E6%96%B0

元記事を表示

Python3の環境構築(pyenv, pipenv, venv)

AWS-Amplifyで構成されたプロジェクトにて、LambdaFunctionをPythonで書かなくちゃいけなくなりました。普段Node.jsばっか書いてるので、バージョン管理でハマっちゃいましたので、ここでまとめて書いてみようという試みです。

AWS-Amplifyまで含めると長い話になるので、この記事ではいったん仮想環境の構築までを議論します。

# Python本体(exe)のバージョン管理の領域
Pythonのバージョン管理の領域は主に3つとなります。
– 開発マシン
– 開発系ではトップレベルのPython環境で、何気なくpyを呼び出したときに出てくるPythonのバージョンを指します
– プロジェクト
– このプロジェクトが指定する、Python環境を指しています
– デプロイする環境
– 実際に動作している環境です。プロジェクトといっしょになる(はず)

この領域に対して厳密に環境構築を行う必要があります。

*ただし、この記事ではデプロイする環境に関しては議論の対象外としています。

# Pythonのパッケージ管理の領域
Python本

元記事を表示

Python3エンジニア認定基礎に合格したので!

## **概要**
python3エンジニア認定基礎試験に合格したので、その勉強法と記録を記事にし、これから挑む誰かの援助になれば思います。

## **スペック**
はじめに私のスペックについて、ご紹介します。
私は元々、ITとは無縁の製造業勤務をしていて30代半ばで、ITに興味を持ち、独学でHTML, Reactなど2年ほど学びながら副業でHP制作などをしていました。
今年の4月にSESへと転職しましたが研修だけ受けて、いまだに案件には入場できておらず未経験のままです。現在、待機中なので簡単な資格を取得しようと思いpython3エンジニア認定基礎試験を受けようと思いました。

## **なぜ?pythonを選んだのか?**
元々、フロント技術はNext.jsやWordPressを用いて制作をしていたのですが、サーバーサイドの言語への理解は皆無でした。
Next.jsで制作するにあたり、お問い合わせフォームはNode.jsのコピペなどを組み合わせいただけで、理解という理解はしていませんでした。pythonは幅広い分野で活躍できる言語なのでサーバー、アプリ、機械学習とやってみたいことが

元記事を表示

Matplotlib scatter 散布図の各点の座標を取得

# Matplotlib のscatter(散布図)から、各点の座標を取得する
上記を調べてもヒットしなかったのでメモしておく。

plt.scatter() やsns.scatteplot()で作図した散布図の各点の座標を取得する。
scatterでは戻り値が「PathCollection」なのだが、ここから各点の座標を取得する方法を調べても公式ドキュメントに記されている構造が難解で辿り着けない。

– **seabornを用いる(sns.scatterplot())**
– 戻り値はaxes。axes.collections[0].get_offsets()、と辿る
→[[$x_1$ $y_1$] [$x_2$ $y_2$] […]…] のリストを取得
– **plt.scatterを用いる**
– 戻り値がPathCollectionなので、.get_offsets()と書けば良い
→[[$x_1$ $y_1$] [$x_2$ $y_2$] […]…] のリストを取得

以下、pythonのコード。
seaborn

元記事を表示

PostgreSQL: Python3 で csv をインポート (位置)

こちらのプログラムを改造して、csv の位置で、データをインポートします。
[PostgreSQL: Python3 で csv をインポート](https://qiita.com/ekzemplaro/items/d1ea0588fc8df31def04)

## サンプルの csv

“`text:cities_jp.csv
識別記号,都市名,人口,更新日
t1271,千葉,73561,2019-7-30
t1272,勝浦,24895,2019-8-10
t1273,市原,67294,2019-1-14
t1274,流山,73612,2019-5-9
t1275,八千代,63491,2019-8-4
t1276,我孫子,41827,2019-1-21
t1277,鴨川,12946,2019-7-23
t1278,銚子,79128,2019-11-26
t1279,市川,13572,2019-10-15
“`

## プログラム

ポイントは、次です。

“`py
row.iloc[index]
“`

“`py:csv_place_import.py
#! /usr/bi

元記事を表示

Pythonの列挙型の個数、最大値、最小値の取得

Pythonの列挙型(Enum)の個数、最大値、最小値の取得の仕方を備忘録として以下に示す。

“`py:enum.py
from enum import Enum, unique
@unique
class Position(Enum):
SQUARE = 0
SHORT = 1
LONG = 2

@unique
class Action(Enum):
WAIT = 0
SHORT = 1
LONG = 2
LIQUIDATE = 3

print(len(Action)) # 個数 4
print(max([e.value for e in Position])) # 最大値 2
print(min([e.value for e in Position])) # 最小値 0
“`

元記事を表示

初めてのPythonで “error: externally-managed-environment” を解決する

これが完璧な解決策かは、わかりません。もっと良い方法があれば、教えてください。

## 前提
– 初めてに近い状態で、Python を使う
– Python の様々なモジュールを使う
– Homebrew で Python をインストール
– macOS (Apple Silicon)

## 背景
OpenAI の API を使って、様々な作業をさせるPythonスクリプトを作ろうと思い、Pythonを学び始めました。

しかし、モジュール(ライブラリ?)のインストールで、躓きまくりました。最終的には、エラーメッセージに案内される方法で解決しました。

## Pythonのインストール

homebrew を使います。詳しくは、たくさん記事があるので、それを参考にしてください。複雑なことは何もありません。

– [homebrew](https://brew.sh/)

“`terminal
brew install python@3.12
“`

## モジュールのインストールでエラーが出る

次に、使いたいモジュールをインストールしようとすると、エラーが発生

“`term

元記事を表示

PythonとStreamlitでRaspiのタイムラプスカメラを作った話

理科の先生からタイムラプスで植物の成長を定点観測したいと要望があり作成しました。
iPadでタイムラプスしようとしてたらしいですが、定点観測なら断然Raspiの出番でしょう。
RaspberryPi4B(2GB版)
Bookworm64bit版

サクッと完成させようと思っていたのに意外にも躓いてしまったので忘備録として残しておきます。
躓き原因はOpenCVがライブラリが足りないとかで上手くインストールが出来ず、強制的に入れても今度はStreamlitでエラーが出てしまうと言う無限ループに陥りました。
何とか解消したいと藻掻きましたがPythonのバージョンとの兼ね合いで無理な事が分かり結局はvenvで対策をしました。

“`
sudo apt update
sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv libatlas-base-dev libhdf5-dev libhdf5-serial-dev libhdf5-103 libjasper-dev libqtgui4 libqt4-test

元記事を表示

Bike Sharing Demand データ分析

専門実践教育訓練講座の最終成果物として記事作成。
かなり冗長となるが講座の合否に使用される為、分析順序と考察を交えて記載。

# 目次
– [はじめに~記事概略まとめ](#はじめに記事概略まとめ)
– [本記事について](#本記事について)
– [作成の経緯](#作成の経緯)
– [著者について](#著者について)
– [作成の経緯](#作成の経緯)
– [著者について](#著者について)
– [データ分析歴](#データ分析歴)
– [プログラミング経験](#プログラミング経験)
– [分析環境](#分析環境)
– [テーマについて](#テーマについて)
– [Bike Sharing Demand 概略](#bike-sharing-demand-概略)
– [テーマ選定理由](#テーマ選定理由)
– [分析用データ](#分析用データ)
– [評価指標](#評価指標)
– [目標値設定](#目標値設定)
– [目標

元記事を表示

RMSLEに関する考察

# もくじ
– [本記事について](#本記事について)
– [RMSLE](#rmsle)
– [RMSLEの式、概要](#rmsleの式概要)
– [対比:RMSE](#対比rmse)
– [RMSEの図的イメージ](#rmseの図的イメージ)
– [RMSLEの図的イメージ](#rmsleの図的イメージ)
– [真値の小さいエリアでペナルティ大](#真値の小さいエリアでペナルティ大)
– [結び](#結び)

# 本記事について
RMSLEについて図的にイメージする。
Kaggleの[Bike Sharing Demand](https://www.kaggle.com/competitions/bike-sharing-demand/overview)に関する作成記事の補足で記載した。

Kaggleのコンペに挑戦したところ、評価値がRMSLEであった。
恥ずかしながらRMSLEについては聞いたことがなかった。
機械学習モデル精度の目標値を定めたいが、「RMSLE = c なら精度はどの程度

元記事を表示

【Python】unicodedataのeast_asian_widthで半角か全角かを判断する

# 概要
連携される文字列が「半角なのか全角なのか」を判定させる必要があったので、pythonの`unicodedata`モジュールを利用してみました。サンプルコードを紹介します。

公式ドキュメントはこちら。

> unicodedata.east_asian_width(chr)
ユニコード文字 chr に割り当てられたeast asian widthを文字列で返します。

https://docs.python.org/ja/3.6/library/unicodedata.html

# サンプルコード解説
`unicodedata`モジュールの`east_asian_width`を利用すると、「東アジアの文字幅」のカテゴリーが返ってきます。
主に以下の4つがあります。

F (Fullwidth):全角英数
W (Wide):全角かな、漢字
H (Halfwidth):半角カタカナ
A (Ambiguous):特殊文字

https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E

元記事を表示

TensorFlowを利用するWSGIサーバの構築に向けたPython3環境の構築(完結・Amazon Linux 2023編)

# まえがき
Python3環境構築シリーズ3部作も、今回のAmazon Linux2023をもって締めくくりとなりました。いろいろなことがありましたが、ひとつ気づいたことがあります。

今回、いい機会なので、Amazon Linux 2023のインスタンスを作ったのですが、AMIの選択肢は以下の画像のようになっていました。

![AMI images](https://hashimoto-net.jp/images/AMI_Images.png “AMI images”)

これは自分にとっても初耳なので、驚きでした。TensorFlowは扱いが難しいパッケージであるために、「Deep Learning OSS」と称して、AWSの側でも AMI イメージを用意しているのですね。

今回の記事は、tensorflow2.16.1をターゲットとしているため、ほぼ同様のことが出来るのではないかと思います。そういった意味では、使用されているLinuxをAWSのDeep Learning OSS 相当にするチャンスではないか、と。

## 前提
+ OS: Amazon Linux 2023

元記事を表示

[初心者]Python Djangoで単体テスト(unittest)書いて開発[Factory Boy][Mock]

## 1. はじめに

この記事では、Djangoを使ってシンプル(もどき)なECサイトを構築し、そのサイトに対して単体テストをどのように書くかについて学びます!
Pythonの日本語の教材って意外と単体テスト書いてくれてないので結構な分量で書きました。
![ヘッダー画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260345/6b295cec-4cf3-305e-baa4-df12b503ef6f.jpeg)

一応、超簡単に単体テスト書くといいこと触れときます。
コードの量が増えれば増えるほど機能追加や変更が恐ろしくなります。単体テスト書くと完璧ではないですが、リリースするのが少し自信出ます😉
開発初期では書く方が開発遅くなると思いますが、書かないと次第に辛くなっていきます(体験済み)ので身につけておいて損はないですよ!

簡単なアプリ作成経験あると仮定して作っていきます。経験ないと言う方は昔書いた記事を参考に

https://qiita.com/Bashi50/items/c686d30f

元記事を表示

OpenCV を使ってお絵かきアプリを作る方法(改良版)

# 0.最初に
「opencv お絵描き」でggって一番上に出てくる記事のものを改良したので紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719521/321a3703-c40c-b8af-e838-eaee8c69c9c5.png)

参考記事:

https://qiita.com/igor-bond16/items/ef26167a1139a34e24af

# 1.紹介
参考にした @igor-bond16 さんのはこんな感じ。
参考
マウスを速く動かしたときに連続せず点々になっているのが気になりますね。

次に改良したのがこんな感じ。
参考TensorFlowを利用するWSGIサーバの構築に向けたPython3環境の構築(続・Ubuntu編)

## 記述を行うところの動機
+ 前回の記事を補足したかった
+ 環境作成作業自体が混沌としていたので、実際の稼働に対する担保が取りづらくなっていた
+ 特に、pip3によるインストールでのインストールする必要なライブラリについては、明記する必要があった
+ 動くサンプルを提供しなければ、と思い込むタイプなので

## 前提
* OS:Ubuntu 24.04 LTS
* Python: version python-3.9.18
* Chat-GPT API:GPT-4V

## 環境作成

### OSのインストール
下記リンクを参考にしてください。

[Ubuntuを入手する](https://jp.ubuntu.com/download)

### OSのアップデート
こちらも行いましょう。
“`
sudo apt update
sudo apt upgrade
“`

### WSGIサーバのインストール
Apache です。
“`
sudo apt install apache2
“`

WSGI環境構築につきましては、前回の記事にリンクがありますので、参照ください

元記事を表示

PostgreSQL: Python3 で csv をインポート

テーブルのコラムが、総て csv のコラムにあるとします。

## プログラム

“`py:csv_import.py
#! /usr/bin/python
# csv_import.py
#
# Jul/10/2024
# ——————————————————————
import pandas as pd
import psycopg2
import sys
# ——————————————————————
from prepare_sql import prepare_sql_proc
from prepare_sql import get_columns_order
# ——————————————————————
csv_file = sys.argv[1]

dbname = “city”
user =

元記事を表示

OTHERカテゴリの最新記事