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

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

RPG

https://paiza.jp/works/mondai/class_primer/class_primer__heros

今までの問題の応用だったので
難しくはなかったですね。
時間はかかりますが。。。

“`py
class Status():
#当初の勇者のステータス
def __init__(self,level,hp,attack,defense,speed,clever,fortune):
self.level = int(level)
self.hp = int(hp)
self.attack = int(attack)
self.defense = int(defense)
self.speed = int(speed)
self.clever = int(clever)
self.fortune = int(fortune)

def levelup(self, add_hp, add_attack, add_defen

元記事を表示

【Python】辞書内包表記を使ってDBアクセス回数を減らす方法

# 概要
Pythonの辞書内包表記を使って、DBへの接続回数を減らす実装を行いました。
以下にサンプルコードを紹介します。

# 辞書内包表記を使う
例えば、以下のようなコードがあります(DjangoのORMを使用)。

“`py
for item in list_fruit_cd:
fruit_data = FruitCd.objects.filter(fruit_cd=item).first()
## 後続処理…
“`

上記だと`list_fruit_cd`の要素数が大量の場合に毎回DBアクセスすることとなり、パフォーマンスに影響が出る可能性もあります。そんな場合に、`for`文の外で一度だけDBアクセスさせ、その結果を辞書に格納し、その後のループで辞書から必要なオブジェクトを取得するようにするとパフォーマンスが向上すると思われます。

つまり、以下のようにします。

“`py
fruit_dict = {obj.fruit_cd: obj for obj in FruitCd.objects.filter(fruit_cd__in=list_frui

元記事を表示

python GUI入門 tcl/tk ウィジェット一覧とサンプル

# 実行サンプル
tcl/tkウィジェット一覧と動作例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/a5d4d6ab-9f2b-bc59-7cc8-b75fd0c73bae.png)

# 実行環境
windows10
python3.9.5

pythonモジュール tcl/tk

# 実行手順
ソースコードを作成する
windowsコマンドプロンプトでプログラム作成したフォルダに移動し、下記実行する
“`
python プログラム名.py
“`

# 参考 URL https://www.nakamuri.info/mw/index.php/%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D%E3%81%AA%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88

https://imagingsolution.net/program/python/tkinter/checkbut

元記事を表示

出口のない迷路

https://paiza.jp/works/mondai/class_primer/class_primer__closed_maze

ぶっちゃけ文章をよんで全然意味がわからなかったです。
とりあえず入力例を見てみます

“`
4 4 1
p 2 4
a 3 1
i 4 2
z 1 2
1
1
1
2
“`

・最初の行は地点の数 N と、移動の回数 K , 移動を開始する地点の番号 S
・脱出するには、迷路の地点を与えられた指示通りに移動し、移動で訪れた(移動の開始・終了地点を含む)地点に置かれたアルファベットをつなげた文字列を呪文として唱える必要があります。
・各頂点からは、他の頂点に向かって一方通行の 2 つの道が伸びています。
・続く N 行のうち i 行目(1 ≦ i ≦ N)では、番号 i 地点に置いてあるアルファベット a_i と
 1 つめの道のつながっている地点の番号 r1_i , 2 つめの道のつながっている地点の番号 r2_i  が与えられます。
・続く K 行のうち i 行目(1 ≦ i ≦ K)では、
 i 回目の移動で選んだ道の番号 M_i が与え

元記事を表示

スクレイピングして企業概要を取得する②

# はじめに
前回取得したタグファイルのデータをクレンジングし、企業概要をエクセルファイルに出力するモジュールを紹介します。

## 前回の記事
前回の記事のリンク先は下記になります。
[前回の記事](https://qiita.com/nogizakapython/items/0fa0a7b9034dc89a0657)

## ソースコード
“`python
# 会社概要をエクセルファイルに書き込む処理
# 新規作成 2024/3/3
# Create by 乃木坂好きのITエンジニア

# ライブラリのインポート
import re
import openpyxl as op
import shutil
import os
import sys

#項目を取得
pattern1 = ‘

#内容を取得
patturn2 = ‘


patturn3 = ‘


patturn4 = ‘

# pタグを取得
patturn5 = ‘

# データ切り替えレコード変数の定

元記事を表示

ZED SDK の設定可能な候補を見つける

ZED SDK はStereoLabsのカメラ zed2, zed-x, zed mini を使うためのライブラリである。
そのZED SDK を概観するために、各項目で設定できる項目には何があるのかを見つけるためのpythonスクリプトをメモする。

## 想定する読者
stereolabsのzed2, zed mini, zed z などのステレオカメラの利用者
いまどきのステレオカメラは何ができるのかを知りたい人
## 前提
ZED SDK 4.0

## 注意
無保証です。

## 実施方法
– 以下のスクリプトを実行する。

“`:.py
import inspect

import pyzed.sl as sl

def show_params(some_params):
print(f”{str(some_params)}”)
for k, v in inspect.getmembers(some_params):
if k.find(“__”) < 0: print(f"{type(some_params)}

元記事を表示

静的メンバ

https://paiza.jp/works/mondai/class_primer/class_primer__static_member

“`py
class Ghest():
def __init__(self):
#初期化
self.sum = 0

def take_food(self, price):
self.sum += int(price)
def take_softdrink(self, price):
self.sum += int(price)
#ここでデフォルト引数追加
def take_alcohol(self, price=500):
pass
def get_sum(self):
return self.sum

class Adult(Ghest):
def __init__(self):
super().__init__()
#初期化
self.al

元記事を表示

デフォルト引数

https://paiza.jp/works/mondai/class_primer/class_primer__set_default

すみません、デフォルト引数を使わないまま
解答しました。。。

“`py
class Ghest():
def __init__(self):
#初期化
self.sum = 0

def take_food(self, price):
self.sum += int(price)
def take_softdrink(self, price):
self.sum += int(price)

def take_alcohol(self, price):
pass
def get_sum(self):
return self.sum

class Adult(Ghest):
def __init__(self):
super().__init__()
#初期化

元記事を表示

Tello-Console2 メソッド一覧

# メソッドとは
 メソッドとは、簡単にいうと **ある機能そのもの** を指します。TELLO-CONSOLE2 では、ドローンを制御したり、ドローンから状態を取得するなどさまざまな機能をメソッドとして提供します。


# メソッド一覧
 Tello Console2 に含まれるメソッドは **[TELLO SDK 3.0](https://dl.djicdn.com/downloads/RoboMaster+TT/Tello_SDK_3.0_User_Guide_en.pdf)** に準拠しています。
## 基本制御メソッド
– **[takeoff](https://qiita.com/GAI-313/items/8cdb167368a620d809d8#takeoff)**
– **[land](https://qiita.com/GAI-313/items/8cdb167368a620d809d8#land)**
– **[up](https://qiita.com/GAI-313/items/8cdb167368a620d809d8#up)

元記事を表示

Tello-Console2 の紹介

# Tello-Console2
:::note
この記事は短期間かつ不定期に更新します。
:::
 こんにちは。GAI-313 です。前回2年ほど前に Tello-Console を開発し、数多くの方々にご利用いただき、さまざまな意見をいただきました。その結果以下の重大な問題が見つかりました。

– **Windows での動作が安定しない**

 私の環境では Windows がなかったこともあり、Windows に対応するパッケージをうまく開発できませんでした。しかし、ここで新たにクロスプラットフォームで動作する新たな Tello-Console。**Tello-Console2** をリリースします。

## Tello-Console と Tello-Console2 の違い
 わざわざ番号を振って分けたのは、ドローンを制御およびドローンからの情報を取得するコードの記述方法を大幅に変更したことあります。Tello-Console ではすべて OpenCV を用いて画像データの取得を行っていたことで、データ受信に大きな遅延が発生してしまいました。しかし Tello-Consol

元記事を表示

colspanとrowspanを考慮してテーブルをパースする

Pythonでスクレイピングなどする際、BeautifulSoupを用いてHTMLをパースすることがよくあると思います。表をパースする場合はTableタグのパースをすれば良いので同様に対処できます。

しかし以下のようなcolspanやrowspanが設定されている表の場合には工夫が必要になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/437488/6d13399b-5d36-53e3-297e-d86e555deaa5.png)

“`html:sample.html

クラスの継承

https://paiza.jp/works/mondai/class_primer/class_primer__inheritance

さて、これもなかなかあまりないので
手探りでやってみましたがだめでした。

“`py
class Ghest():
def __init__(self,number,food_name,age,order):
self.number = int(number)
self.food_name = food_name
self.age = int(age)
self.order = int(order)

def __str__(self):
“””表示文字列に変換する”””
return f”{self.number} {self.food_name} {self.age} {self.order}”

def getnum(self):
return self.numbe

LaTeXのforestパッケージのforest環境で樹形図を作成するときにオフサイドルールで簡略化させるPythonコード

# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。

# はじめに
言語学をやっていると避けて通れないのが樹形図(句構造木)作りです。樹形図を作成する方法としては、PowerPoint(もしくはKeynote)を使用したり、AdobeのIllustratorやInDesignを作成するというのが手っ取り早い方法ですが、よほどバランス感覚が優れていなければ、やはりLaTeXを使わざるを得ません。というのもLaTeXには[forestパッケージ](https://ctan.org/pkg/forest)という非常に強力な樹形図作成ツールが存在しているからです。

とはいえ、forestの記法は非常に面倒です。“[“と“]“をひたすらネストさせて、
“`LaTeX:ベタ打ち (1)
\begin{forest}
wherenchildren=0{tier=word}{}
[VP[DP[John]][V’[V[sent]][DP[Mary]][DP[D[a]][NP[letter]]]]]
\end{forest}
“`
みたいに記述しなければいけないわ

Python3: Wikipedia, WiktionaryのID取得、AmazonのASIN取得、YouTubeのチャット取得、そうでない場合はパーセントエンコード

# はじめの前のおねがい
できれば「いいね♡」をお願いします。励みになります。

# はじめに
今まで私のマイページ[^1]では「Python, Pythonista3 & Automator: AmazonのURLからASINのみが記載されたURLを生成する[^2]」などで、1つのコードであれもやりたい、これもやりたいと、色々な機能を含めてきたわけですが、実際に自分で運用していく中で、まあこのくらいのことができれば良いだろうという段階まで出来上がりました。つまり

1. WikipediaのページID取得
1. WiktionaryのページID取得
1. AmazonのASIN取得
1. YouTube Liveのチャット取得
1. パーセントエンコード[^3]

をそれぞれ、`http://`以降の文字列を参考にして判別し、`〒`の場合は「[乗換案内](https://www.jorudan.co.jp/norikae/)」の住所検索用に郵便番号の部分を取ったものを出力し、それ以外の場合はパーセントエンコードをするといったものです。

[^1]:「頭痛が痛い」みたいな表現になってし

Python初心者の備忘録 #12 ~統計学入門編02~

# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #11 ~統計学入門編01~](https://qiita.com/Yushin-Tati/items/4fab2dbedb5a3211f0ed)
次の記事:まだ

本記事は**確率、正規分布、標準化**についてまとめてあります。
## ■学

PythonでCloud Vision APIを使用して画像からJSON形式でテキストを読み込む

コードのみ貼り付けます。
導入手順については[画像内のテキストを検出する](https://cloud.google.com/vision/docs/ocr?hl=ja)から。

“`python
from google.cloud import vision
import io
import json
import tkinter as tk
from tkinter import filedialog

def save_and_download_text(image_path):
# クライアントを初期化
client = vision.ImageAnnotatorClient()

# 画像ファイルを読み込む
with io.open(image_path, ‘rb’) as image_file:
content = image_file.read()

image = vision.Image(content=content)
image_context = vision.ImageContext(langu

クラスのメンバの更新

https://paiza.jp/works/mondai/class_primer/class_primer__change_member

コメントで頂いたコードを元に作成。
メンバの更新するときに、いろんなWebページでよくあるコードをみると
変数の名前がgetするときもchangeするときも、同じ変数を使っている事が多いんだけど
私としてはよく分かりづらいので、new_をつけてみた。これでわかりやすいはず。
phpのときもこれどの値が入るのかがわかりづらかった。

“`py
class Employee():
def __init__(self,number,name):
self.number = int(number)
self.name = name

def getnum(self):
return self.number

def getname(self):
return self.name

def change_num(se

Pythonでの閏年判断

閏年で不幸になる人を少しでも減らすためのメモ

# 閏年の特徴

↓とてもわかりやすいサイト↓
https://www.casio.com/jp/watches/contents/leap-year/

– 閏年は、西暦年が4で割り切れる年
– ただし、100で割り切れる年は閏年ではない
– しかし、400で割り切れる年は閏年になる
このルールにより、閏年は一般的に4年に1度発生するが、上記の例外によって調整される

検索条件で1年前以降とかを指定する時に何も考えずにyear – 1とかしちゃうと閏年の日にエラーになる(戒め)

# 指定した年が閏年かどうかを判断

Pythonでは、calendar モジュールの isleap(year) 関数を使用して、指定した年が閏年かどうかを判断できる

“`python
is_leap = calendar.isleap(2024)
print(is_leap) # 出力: True
“`

# 指定した範囲内の閏年の数を計算

calendar モジュールの leapdays(y1, y2) 関数は、指定した範囲内の閏年の数を返す

コーディング面接対策で有名なサイト「LeetCode」で問題を解いてみた

[Supership](https://supership.jp/)の名畑です。待ちに待ち続けた[うる星やつらの「扉を開けて 前編」](https://www.youtube.com/watch?v=yKhj-JPn9Ek)、本当に良かったです。[OVA版](https://filmarks.com/movies/45059)からもう35年以上経っているんですね。当時繰り返し見たなという懐かしい記憶。後編も楽しみすぎる。そして、きっと、原作34巻、つまりは[完結編](https://filmarks.com/movies/26956)の令和版も今後ありますよね?

## はじめに

会社によってはプログラミング職での採用試験の際にコーディングテストを応募者に課すところがあります。
要は経歴や口頭試問だけでは能力を測らず、実際にコードを書いてもらうというものです。

ホワイトボードで書いてもらうような形式もあれば、試験問題を提供するWebサービスに挑戦してもらう場合もあるでしょう。

そんなコーディング面接対策で有名なサイトとして[LeetCode](https://leetcode.c

DockerとFastAPIでHello Worldした

## 実行環境
– Visual Studio Code: 1.87.0
– OS: MacOS Sonoma 14.2.1

> 学習者が記録用に書いた記事です。
> ご指摘、追加情報などあれば些細なことでもコメントからいただけると励みになります。

## ファイルの構成

“`shell
$ tree .
.
├── app
│ └── main.py
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
“`

## Dockerfile

“`Dockerfile
FROM python:3.11-slim-bullseye
EXPOSE 8000
WORKDIR /app
RUN apt update -y && apt-get update -y
RUN pip install –upgrade pip
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY app .
CMD [“uvicorn