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

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

[数理最適化][実装]Python で Nelder-Mead法


# **概要**

* **Nelder-Mead法**は導関数を使わずに凸関数を最適化するアルゴリズムです.
* 本稿ではNelder-Mead法を実装しベンチマークテストを行います.
* 言語は**Python**で実装します.
* 本稿では実装とテストに焦点を置いているため数学的な背景についてはあまり触れませんのでご容赦ください.
* 説明には**個人的な解釈が多分に含まれます*

元記事を表示

非常に便利なhping3

いつも負荷試験等でお世話になっているhping3についての記事です。

:::note warn
※攻撃ツールとして利用することは厳禁であり、必ず管理下にあるノードに対してのみ実行しましょう。
:::

hping3は非常に強力なツールで、TCP/IPパケットの生成、送信などができネットワークの診断やセキュリティテストなど幅広く利用されていると思います。ただ負荷試験については場合によってですが、そのままの利用ができないパターンもあります。

その一つとして、hping3には時刻データを含むパケットを送信する機能がありません。そのため、時系列データを伴う負荷試験にhping3を利用するのは難しくなります。

**※もちろん、JMeterとかGatlingを使うという方法もありますが、時系列データのテストにDummyデータ送りたいだけの場合とか、わざわざ新しいツール覚えるより手っ取り早くhping3のみで負荷試験して時間短縮したいですよね?**

そこで、今回はあるデータを大量に送信しつつも、送信タイミングの日時をデータ内のタイムスタンプフィールドに設定するという事をやってみました。(※コ

元記事を表示

Pythonでプロ野球の試合結果を予想してみた

### 前置き
Qiita Engineer Festa 2024に参加してから、この記事で19個目の記事投稿になる。

そこで、私はパッと思い浮かんだ。野球は、2つのチームが攻撃と守備を交代しながら、各頂点に4つのベースを持つ菱形の区画において、得点を競い合うスポーツである。基本的には、9イニング制で1番から9番まで選手がいて、3アウトで攻守交代になる。

### 以前3年前に作成したプログラムコード
“`python
import random, math

max_inning = 9
team1, team2, hit = “”, “”, 0
inning, score1, score2 = 1, 0, 0
inscore, inscore1, inscore2 = 0, 0, 0
hitper, hitInt, outs = 101, -1, 0
manual, end, batter = False, True, False
players = [0, 0, 0, 0]

def hitsim(team, manual):
global players, hitpe

元記事を表示

【AWS】関数delattr()を使って属性を削除する方法とサンプルコード

# 概要
指定したオブジェクトから指定した属性を削除する`delattr`関数を使ってみたので紹介します。

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

https://docs.python.org/ja/3/library/functions.html#delattr

# サンプルコード

“`py
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

john = Person(“John”, 30)

print(john.__dict__) # {‘name’: ‘John’, ‘age’: 30}

delattr(john, ‘age’)

print(john.__dict__) # {‘name’: ‘John’}
“`

`delattr(john, ‘age’)`を実行すると、`john`から`age`属性が削除されたことがわかります。

もちろん、ここで属性ではないもの(例:`gender`)を選択するとエラーになります。

元記事を表示

JavaScriptでECDSA署名してPythonで検証しようとしたら

## JavaScriptでECDSA署名したらPythonで検証できなかった

JavaScriptはWeb Crypto APIで署名

SubtleCrypto: sign()とSubtleCrypto: verify()

https://developer.mozilla.org/ja/docs/Web/API/SubtleCrypto/sign

https://developer.mozilla.org/ja/docs/Web/API/SubtleCrypto/verify

PythonはCryptographyライブラリで検証

cryptography.hazmat.primitives.asymmetric.ec.ECDSA

https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/#elliptic-curve-signature-algorithms

上手くいかない。
JavaScript同士、Python同士は問題ないのでお互いのデータのやり取りがおかしい。

SubtleC

元記事を表示

Pythonでサイコロ転がしゲームを作ってみた

### 前置き
今日は、6月21日だ。そこで、サイコロのことをぱっと思い浮かんだ。
サイコロの目は、6つあり、目の総和が21である。
そのような理由で、パソコンとサイコロを転がすゲームが作りたくなった。

### プログラムコード
“`python
import random

def get_user_choice():
while True:
try:
user_choice = int(input(“1から6の数字を選んで、入力してください: “))
if user_choice not in range(1, 7):
print(“無効な入力です。サイコロの目(1から6)を入力してください。”)
else:
return user_choice
except ValueError:
print(“無効な入力です。数字を入力してください。”)
“`
### 出力結果
“`

`

元記事を表示

Windows PythonとBLEAKを使ってESP32とBLE通信してみました

以前作ったESP32のBLE通信ソフトですが僕にとっては必要十分だったみたいで、
気が付けば2024年の今でも同じソースコードで使っています。
そこで以前WindowsC#で挫折したBLE接続ですが最近PythonのBLEAKで使える様に
なったそうなので挑戦してみる事にしました。

#実行に必要なリソース
  ESP32とArduinoIDE開発環境(以前作った奴です)
  Windows機とPython開発環境(Bleakをインストールしてください

#機能
  ESP32とSerial通信ぽい事をします(サンプルプログラムミみたいな感じです

#使い方
  ESP32側もコンパイルして動作させておきます
 Windows機からは「ESP32_BLE_SERVER」に接続して通信を行います。
通信するだけのソフトなので、後はお好きな様にどーぞ

#問題点
  接続・切断テストを行っていますが、全ての条件が網羅できていない様です。
  私はあまりPythonの事をよく判っていません。

“`py:WindowsBLE.py:
import asyncio
impo

元記事を表示

Pythonで決定性チューリングマシンのシミュレーションを行う

## 動機
学校の課題で決定性チューリングマシンの設計があったので, それの答え合わせ用にチューリングマシンのシミュレーションを行うためのPythonコードを書きましたので共有します。
何回か動作は確認しましたが保証はできません。
## コード
“`dtm.py
from typing import List, Dict, Tuple
from enum import Enum

class Transition(Enum):
“””
Enum representing the direction of transition in a Turing Machine.

Attributes:
RIGHT (int): Represents a move to the right on the tape.
LEFT (int): Represents a move to the left on the tape.
“””
RIGHT = 1
LEFT = -1

class State:

元記事を表示

python exe化

# pythonプログラムをexe化する
exe化ツールはいくつかあるが、pyinstallerを利用
Nuitkaはexeファイルが大きくなる傾向
* pyinstaller
* Nuitka

`pyinstaller –clean –onefile –noconsole`

使ってみたけど `–noconsole` だとexeが落ちた時に気付けないので、最近は`–noconsole`は外して実行
pyinstallerもexeファイルはでかい。。。

Edgedriverexeを取り込みたい
–binary “edge.exe;edge.exe”
でうまくいかない

アイコンのオプションもあったな。
–icon=test.ico

アイコンファイルの作り方
https://service.tree-web.net/icon_converter/

元記事を表示

Pythonで現在のプロ野球の順位表を作ってみた

プロ野球も、交流戦が終わり、今週金曜日からリーグ戦が再開しようとしている。
そこで、私はPythonを使って現在のプロ野球の順位表を作成するのに興味を持った。

### プログラムコード
“`
pip install pandas
import pandas as pd

# セントラルリーグのデータ
central_league_data = {
“チーム”: [“広島カープ”, “阪神タイガース”, “読売ジャイアンツ”, “横浜ベイスターズ”, “ヤクルトスワローズ”, “中日ドラゴンズ”],
“勝利数”: [32, 32, 31, 32, 27, 27],
“敗戦数”: [25, 30, 30, 31, 33, 33],
“引き分け数”: [4, 4, 5, 1, 4, 5],
“勝率”: [0.561, 0.516, 0.5081, 0.5079, 0.45, 0.45],
“ゲーム差”: [None, 2.5, 0.5, 0, 3.5, 0]
}

# パシフィックリーグのデータ
pacific_league_data =

元記事を表示

PythonでCoin Toss Gameを作ってみた

今年は、パリオリンピックが開催される。

そこで、私はよくサッカーの試合でエンドを決めるために使われているコイントスをPythonを使い、プログラムコードを書くことについて、興味を持った。

### What is Coin Toss?
硬貨などを投げ上げて、落ちたそれの裏表で物事を決めることである。

### プログラムコード
“`py
import random

def get_user_choice():
while True:
try:
user_choice = int(input(“What do you choose? Type 1 for Heads, 2 for Tails, or 3 to Quit: “))
if user_choice not in [1, 2, 3]:
print(“Invalid input. Please choose 1 for Heads, 2 for Tails, or 3 to Quit.”)
else

元記事を表示

Openpyxl: 背景色の変更

## プログラム

“`py:set_bg_color.py
#! /usr/bin/python
#
# set_bg_color.py
#
# Jun/19/2024
# —————————————————————
import sys
import openpyxl
from openpyxl.styles import PatternFill

# —————————————————————
xlsx_in=sys.argv[1]
xlsx_out=sys.argv[2]
sys.stderr.write(xlsx_in + “\n”)
sys.stderr.write(xlsx_out + “\n”)
wb = openpyxl.load_workbook(xlsx_in)

ws = wb.worksheets[0]
print(“ws.max_row = %d” % ws.max_row)

fi

元記事を表示

Openpyxl: 罫線を引く

罫線を引くプログラムです。

## プログラム

“`py:set_borders.py
#! /usr/bin/python
# —————————————————————
# set_borders.py
#
# Jun/18/2024
#
# —————————————————————
import sys
import openpyxl as xl
from openpyxl.styles.borders import Border, Side

# —————————————————————
xlsx_in=sys.argv[1]
xlsx_out=sys.argv[2]

bk = xl.load_workbook(xlsx_in)
ws = bk.worksheets[0]
print(“ws.max_row =

元記事を表示

ROS2のtf_transformationを使っているモジュールで、’Installing the transforms3d library by hand required. …’ と言われた時

2時間くらいハマったので備忘録を残しておきます。
同じエラーで苦しんでいる人が少しでも減りますように。

# TL; DR
transforms3dのバージョンを0.4.1以前にしてみてください。
もしくは、下記サイトの解決法を試してみてください。

# 概要
本日(2024/6/18)、ROS2のtf_tranformationsを使っているモジュールにて、突然下記エラーが出ました。
“`bash
Installing the transforms3d library by hand required. Please run
sudo pip3 install transforms3d
“`

原因を色々探ってみたところ、[6/17にtransforms3dのバージョンが0.4.2に上がっていたことが判明。](https://pypi.org/project/transforms3d/#history
)

0.4.1に戻してみたところ、無事にエラーを解消できまし

元記事を表示

Pythonで、Fizz Buzz 問題の理論を元に素数を判定してみた

### FizzBuzz問題とは
“FizzBuzz”とは英語圏の有名な言葉遊びです。ルールは1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を言うというものです。簡単なプログラミングの練習として、3の倍数のときは「”fizz”」、5の倍数のときは「”buzz”」、共通の倍数(のときは「”fizzbuzz”」、その他は「数値」を戻すという単純な処理を実装します。

この記事においては、1から1000までの範囲で、Fizz Buzz 問題を検証してみたい。
その後、1から100と1から1000までの素数を、FizzBuzz問題のように検証してみたい。

### FizzBuzz 問題応用編プログラムコード
“`
target = 1000
for number in range (1, target + 1):
if number % 3 == 0 and number % 5 == 0:
print (“Fizz Buzz”)
elif number % 3

元記事を表示

Pythonで九九の表を作成してみた

Pythonを使って、九九の表を作ってみました。

## 二重for文

九九になると、 for文を二重で使うのが一般的だ。
コードを書いていきましょう。

“`
for i in range (1,10):
for j in range (1,10):
if j == 9:
print (f”{i} x {j} = {i *j}”)
print ()
elif i*j < 10: print (f"{i} x {j} = {i *j}") else: print (f"{i} x {j} = {i *j}") ``` ### コードの出力結果 ``` 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2

元記事を表示

デコレーターについての備忘録

### デコレーターとは
デコレーターは、関数を修飾する関数です。これにより、関数を書き換えることなく、その関数に処理を追加したり、変更したりすることができます。

### デコレーターを使わない例
まず、デコレーターを使わない例を見てみましょう。

“`python
def add(a, b):
print(a + b)

print(‘Start!!’)
add(1, 2)
print(‘Finish!!’)

print(‘Start!!’)
add(3, 4)
print(‘Finish!!’)
“`

このコードでは、`add`関数を呼び出す前後に同じメッセージを表示しています。

### デコレーターの使用例
次に、デコレーターを使って上記の処理を簡略化する例を見てみましょう。

“`python
# デコレーター関数を定義
def my_decorator(func):
def wrapper(a, b):
print(‘Start!!’)
func(a, b)
print(‘Finish!!’)

元記事を表示

クロージャーについての備忘録

### クロージャーとは
クロージャーは、関数の外で宣言された変数や引数を保持する機能のことです。これにより、関数が定義されたスコープの外からも変数にアクセスできます。Pythonでは、すべてがオブジェクトとして扱われるため、変数もオブジェクトです。

### 基本的な関数の例
以下は、円の面積を計算する関数の例です。

“`python
def circle_area(pi, radius): # 関数オブジェクトを作成してcircle_area変数に代入
return pi * radius * radius

area = circle_area # ()がないと、変数に代入されている関数オブジェクトを取り出すだけ
print(area) #

print(area(3.14, 2)) # 12.56
“`

### クロージャーの例
次に、クロージャーを使った関数の例を見てみましょう。

“`python
def circle_area(pi):
def calculation(radius)

元記事を表示

ABC358のEをPythonで解く方法(復習)

[E-Alphabet Tiles](https://atcoder.jp/contests/abc358/tasks/abc358_e)の問題の解法が思いつかず&実装方法も思いつかず悔しかったのでこの記事で復習します。

# 問題文

>> AtCoder Landでは、アルファベットの書かれたタイルが販売されています。高橋君は、タイルを一列に並べてネームプレートを作ろうと考えました。

> 長さ$1$以上$K$以下の英大文字からなる文字列であって、以下の条件を満たすものの個数を998244353で割った余りを求めてください。
> – $1 \leq i \leq 26$ を満たす任意の整数$i$について以下が成立する。
– 辞書順で$i$番目の英大文字を$a_i$とおく。例えば、$a_1 = `A`, a_5 = `E`, a_{26} = `Z`$である。
– 文字列の中に含まれている$a_i$の個数は0以上$C_i$個以下である。

## 失敗したコード

“`python
from collections import deque, defaultdict

元記事を表示

Python講座 – 2024ver.

## 誰がこれを読むべきか
Pythonを学ぼうと思っている、プログラミング初心者
前提 : `$` の後に続くコマンドを実行する場合は、`$`を取り除いて入力してください

:::note info
初版年月日 : 2024年6月15日
更新年月日 : –
使用環境  : macOS (Monterey~)
確認環境  : Python3.8~
(Windowsでも動作に差はないと思いますが、シェルスクリプトの書き方が違うため、お気をつけください)
:::

## 目次
1. [はじめに](#はじめに)
1. [プログラミングとは](#プログラミングとは)
1. [プログラミング言語とは](#プログラミング言語とは)
1. [Pythonとは](#pythonとは)
1. [セットアップ](#セットアップ)
1. [python環境構築](#python環境構築)
1. [pipとは](#pipとは)
1. [python仮想環境とは](#python仮想環境とは)
1. [venvとは](#venvとは)

元記事を表示

OTHERカテゴリの最新記事