- 1. 構造体の更新
- 2. Python 文法まとめ
- 3. python CGI の掲示板もどき。
- 4. No module named ‘utils’ デバッグ
- 5. 【python】乃木坂46でクラスの継承を勉強する②
- 6. 構造体の整列
- 7. 【勝手に正誤表】「O’REILLY Pythonデータサイエンスハンドブック(初版第5刷)」
- 8. Python初心者の備忘録 #11 ~統計学入門編01~
- 9. dynamodb-localをシードデータで初期化して起動する
- 10. クイックソート
- 11. 【Python】文字列・検索・大小区分・部分一致
- 12. Googleによる生成AIモデル「Gemma」をMacBook(M2)で動かしてみた
- 13. Python3でprint文一行で終わらせてみた
- 14. Discord.pyで使用すべきライブラリ達
- 15. VS-Codeでデバッグ開始が機能しない
- 16. ツリーと再帰【Algorithm-Data構造入門Ⅳ】
- 17. EC2+Python+Selenium+Cronで仮想サーバ上でスクレイピングを定期実行する
- 18. スタックとキュー(LIFOとFIFO)【Algorithm-Data構造入門Ⅲ】
- 19. 配列と連結リスト【Algorithm-Data構造入門Ⅱ】
- 20. それ,numpy で書かない?–8–
構造体の更新
https://paiza.jp/works/mondai/class_primer/class_primer__change
前回の記事のコメントで教えていただいた方法を参考に。
配列の特定のインデックスのその中の構造体の要素の更新方法が
わからず、色々調べつつ。
勉強になりました。。。“`py
class Member():
def __init__(self, name, old, birth, state):
self.name = name
self.old = int(old)
self.birth = birth
self.state = statedef __str__(self):
“””表示文字列に変換する”””
return f”{self.name} {self.old} {self.birth} {self.state}”N,K= map(int,input().split())
members = [Member(*input()
Python 文法まとめ
### 目次
1. **[プログラミング入門](#1-プログラミング入門)**
– [1.1 プログラミングとは](#11-プログラミングとは)
– [1.2 Pythonとは](#12-pythonとは)
– [WEBアプリケーション開発](#webアプリケーション開発)
– [データ分析](#データ分析)
– [機械学習・AI](#機械学習・ai)
– [ゲーム(GUI)アプリ開発](#ゲームguiアプリ開発)
– [スクレイピング](#スクレイピング)
– [1.3 プログラミングの進め方](#13-プログラミングの進め方)
– [1.4 print関数](#14-print関数)
– [1.5 コメント](#15-コメント)
– [1.6 エラーへの対処方法](#16-エラーへの対処方法)
– [1.7 Pythonプログラミングにおける注意](#17-pythonプログラミングにおける注意)
– 行の先頭から書く
– 1行に1命令
– 全角スペースの罠
python CGI の掲示板もどき。
# 掲示板に使えそうなの出来ました。
時間確認は4年に1度のイベントとなります。
ご参加頂ければ、有難くおもいます。
簡単な、キャプチャーに続ぎ、scriptの紹介を致します。
最後まで、お楽しみ頂ければ、幸せにおもいます。### 構成
・エラー処理
・時間
・受信
・デコードとハッシュ代入
・URL変換
・ファイル書き込み
・html書き出し
・Fileからの書き出し大体そのようになっています。
では、キャプチャー
![スクリーンショット 2024-02-29 025555.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/b6afd1ec-ff9a-eb85-a97a-7b126a81f5fb.png)
![スクリーンショット 2024-02-29 025637.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625232/b256ef88-1a00-aa33-397c-194d6c7b6e
No module named ‘utils’ デバッグ
## エラー内容
pythonで実行したところ,以下のエラーが発生した.“` shell:エラー内容
Traceback (most recent call last):
File “parser.py”, line 11, in
from utils.helpers import get_conf
ModuleNotFoundError: No module named ‘utils’
“`## 使用している環境
今回は ROS は関係ありませんが,一応載せます.
– 使用PC: Jetson AGX Orin
– JetPack: 5.1.2
– CUDA: 11.4
– cudnn: 8.6
– python: 3.8
– tensorflow: 2.12.0
– ubuntu 20.04
– ROS noetic## 原因: import 方法が違った
正しくは,`getconf`をインポートすべきだった.
“` shell: ライブラリをインポート
pip3 install getconf
“`コード上では,
“
【python】乃木坂46でクラスの継承を勉強する②
# はじめに
以前公開した下記の記事でアドバイスしていただいた部分を修正するソースコードを公開します。https://qiita.com/nogizakapython/items/218054822a90feb4a586
## 自転車クラス
“`python
class Bycycle:# コンストラクタ
def __init__(self,name=”人”):self.__name = name
# getter Div
# getter name
@property
def getName(self):
return self.__name@getName.setter
def setName(self,set_name):
if len(set_name) > 0:
self.__name = set_namedef ride(self):
print(f”{self.__name}は自転車を漕ぐ”)def breaking(self):
pri
構造体の整列
https://paiza.jp/works/mondai/class_primer/class_primer__sort
指定されたアルゴリズムの問題は解けたので構造体に戻ります。
構造体の整列から。“`py
class Member():
def __init__(self, name, old, birth, state):
self.name = name
self.old = old
self.birth = birth
self.state = state#main
N = int(input())
members =[]for _ in range(N):
member = Member(*input().split())
members.append(member)#sort members[1]=oldに注目してソート
members.sort(reverse=False, key=lambda x:x[1])for
【勝手に正誤表】「O’REILLY Pythonデータサイエンスハンドブック(初版第5刷)」
![rtop_fig2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3287420/a5fdf7da-b334-9185-ef94-5f584bc9c3db.png)
## はじめに
つい最近、第2版が発売されてようですが、この記事は初版本について調べたものです。
そろそろデータサイエンスのお勉強しましょうと、タイトルの本でサンプルコードを動かし始めたが、ErrorやWarningが頻繁に出て修正するのに多くの時間がかかてしまった。
主な原因としては、多くのモジュールをインポートするため、本が書かれた時点と現在とではモジュールの仕様が異なり、対応が取れていないようです。
そこで、途中で理解することを後回しにして、一通りサンプルプログラムからErrorやWarningが出ないような作業を行ったので備忘録として残しておく。
色々調べると、皆さん苦労されているようで!
(写真の付箋のように沢山あった)## 書籍名
O’REILLY Python データサイエンスハンドブック 2022年7月1日 初
Python初心者の備忘録 #11 ~統計学入門編01~
# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #10 ~DSに使われるライブラリ編05~](https://qiita.com/Yushin-Tati/items/372b9d48f0c357aa24cd)
次の記事:まだ今回からPythonを使用した**統計学**についてまとめてい
dynamodb-localをシードデータで初期化して起動する
## 概要
[amazon/dynamodb-local](https://hub.docker.com/r/amazon/dynamodb-local)のDockerをシードデータで初期化して起動したかったので作りました。
事前に用意したデータを取り込んでDynamoDBをDocker上で起動できます。下記のレポジトリをクローンしてREADMEの手順で実行すれば使えます。
https://github.com/sasakitimaru/dynamo-local-init
# 使い方
READMEに書いてありますが解説も交えて手順書いときます。
### 1. リポジトリのクローン
“`jsx
git clone https://github.com/sasakitimaru/dynamo-local-init.git
“`### 2. DynamoDBにマウントするボリュームのディレクトリ作成
“`jsx
mkdir -p dynamodb-local
sudo chmod 777 ./dynamodb-local
“`書き込み権限を振っておかないとエ
クイックソート
今回はクイックソートについて。
よく分からなかったので考え方について検索https://medium-company.com/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88/
上のがわかりやすかったです。
要するに、グループの中で、ある一つの値を決め、その値より大きいグループと小さいグループにわけ、それらの中でも同じようにわけ、ソートする感じ。“`py
# アルゴリズムが正しく実装されていることを確認するために導入するカウンタ変数、ソート処理には関係がないことに注意
count = 0“””
A[left] ~ A[right-1] をクイックソートする
配列 A をクイックソートするには quick_sort(A, 0, n) を呼び出す
left=左端、right=右端
“””
def quick_sort(A, left, right):
# ソートする範囲の長さが1以下の場合は何もしない
if left+1 >= right:
【Python】文字列・検索・大小区分・部分一致
## この記事でわかること
Python で文字列や文字列のリストを検索する時に,
– 大小を区別して検索するのか
– 部分一致なのか完全一致なのか以上のことがわかるようになります.
また,忘れたときにこの記事を見てすぐ確認できます.## 今回検索に使用するメソッド・演算子
|メソッド・演算子|説明|
|–|–|
|find|文字列の検索に使用|
|in|文字列・リストの検索に使用|
|contains|DataFrame の検索に使用|
|isin|DataFrame の検索に使用|## 早めの結論
### 大小区別
– 基本的に大小を区別して検索する
– 区別したくない場合は lower 関数を使用するなど工夫する### 部分一致
– 文字列は部分一致する
– リストは部分一致しない(完全一致)
– 正規表現を使用すればリストでも部分一致する
– Dataframe は contains メソッドで部分一致する
– Dataframe は isin メソッドで完全一致する## 文字列の検索
### 文字列の大小区別
“`Python
# 検索対象 (“ap
Googleによる生成AIモデル「Gemma」をMacBook(M2)で動かしてみた
[Supership](https://supership.jp/)の名畑です。「[【ヒプステ】-Battle of Pride 2023-【Cinema Edit】3面ライブスクリーン映像](https://www.youtube.com/watch?v=-_rp6Ns0SYw)」を見てきたんですが、映画館という場の進化は素晴らしいものがあるなと思いました。
## はじめに
**Google**から生成AIモデル[Gemma](https://blog.google/technology/developers/gemma-open-models/)がリリースされました。
– [Google、オープンな生成AIモデル「Gemma」公開 商用利用OK、Geminiと同じ技術の軽量LLM – ITmedia NEWS](https://www.itmedia.co.jp/news/articles/2402/22/news092.html)
– [Gemma が Google Cloud で利用可能に | Google Cloud 公式ブログ](https://cloud.googl
Python3でprint文一行で終わらせてみた
Python3で、print文一行でプログラムを完結させてみました。
題材は、[アルゴ式](https://algo-method.com/)、[paizaラーニング](https://paiza.jp/works)等の問題を使用させて頂いております。
– ###### 半角スペース区切りで与えられた文字列を改行区切りで順に出力
– 問題
標準入力で$N$個の文字列が1行で与えられるので、それらを入力して、順にそのまま$N$行で出力してください。
– 入力
$N$
$S_1$ $S_2$ $\dots$ $S_N$
– 出力
$S_1$
$S_2$
$\dots$
$S_N$
– 出典
[N個のデータの入力](https://paiza.jp/works/mondai/stdin/stdin_n)(paizaラーニング)
– – –
– 解答例($N$を活かす)
“`py
n=int(input())
S=input().split()
fo
Discord.pyで使用すべきライブラリ達
## はじめに
この記事は私のメモ的なものですので、読むなら軽く参照程度で構いません。## 待機処理
`asyncio`モジュール、`time`ではDiscord API Gatewayへの接続が途切れてしまうため`asyncio`をつかう
“`py:main.py
import asyncio# 中略
@bot.event
async def on_message(msg: discord.Message):
if msg.content == “wait”:
await asyncio.sleep(5) # 一応コルーチンなのでawaitつける
await msg.channel.send(“waited”)
“`
音楽コマンドなどでは`asyncio.Queue()`を使うコード省略(←?)
## データベース系
`pymysql`が一般的だが非同期処理をするため`aiomysql`を使う
“`py:main.py
import aiomysql
import aiomysql.cursorsid = 12345
VS-Codeでデバッグ開始が機能しない
# 【環境】
OS: Windows11 Pro(23H2)
Python 3.12.2 64bit
Visual Studio Code 1.86.2
Python Debugger V2024.0.0# 【症状】
* VS-Codeでデバッグ開始が機能しない
* デバッグ無しで実行は機能する# 【対処方法】
Pythonのバージョンをダウングレードする
Python 3.12.2 64bit ⇒ Python 3.10.7 64bit
ツリーと再帰【Algorithm-Data構造入門Ⅳ】
# ツリーの概念
ツリーは、データ構造の一種であり、木構造とも呼ばれます。ツリーは**根**(root)と呼ばれるノードから始まり、枝分かれするようにして複数のノードが連なっています。それぞれのノードは、**子ノード**を持つことができますが、親ノードは一つだけです。ツリーは階層構造を持ち、データを効率的に管理するのに役立ちます。# 完全2分木の性質
完全2分木は、すべての葉が同じ深さを持ち、かつ全てのノードが0個または2個の子ノードを持つ二分木です。このような性質を持つ完全2分木では、ノード数がN個の場合、高さはlog(N)になります。これは、ツリー内の各レベルでノード数が2倍になるためです。## 完全2分木の表現
以下の例では、要素数が6の完全2分木を考えます。
“`
[0]
/ \
[1] [2]
/ \ / \
[3] [4] [5] [6]
“`
この完全2分木は、インデックスを使って配列で表現されます。この場合、各ノードのインデックスは次のようになります。・根:0
・左の子
EC2+Python+Selenium+Cronで仮想サーバ上でスクレイピングを定期実行する
# はじめに
AWS EC2を使用してSeleniumを活用したスクリプトをCronを使って定期実行する手順を紹介します。
当初は、AWS Lambda上で定期実行することを考えていましたが、Python3.7でseleniumを起動している記事が多く、うまくスクレイピングが出来ず悩んでいました。
> 23年10月ごろにPython3.7のサポートが終了しているため、うまくいかないと考えられます。EC2で仮想サーバーを立て、そのサーバーにChromedriver等をインストールして、Cronで定期実行する方法だとうまく実行できたため、今回記事にしました。
# 簡単な流れ
1. **EC2インスタンスのセットアップ** – AWSで無料枠のLinux EC2インスタンスを立ち上げます
2. **必要なツールのインストール** – Python、Selenium、およびWebDriverをEC2インスタンスにインストールします
3. **Pythonスクリプトの作成** – 定期実行したいPythonスクリプトを作成します
4. **Cronの設定** – スクリプトを定期的に実
スタックとキュー(LIFOとFIFO)【Algorithm-Data構造入門Ⅲ】
# LIFOとFIFOとは
## LIFO
**LIFO**(Last In, First Out)は、最後に追加された要素が最初に取り出されるデータ構造です。これは、例えば本棚に本を積み重ねるようなイメージです。新しい本を最後に追加し、必要なときには一番上の本から取り出します。## FIFO
**FIFO**(First In, First Out)は、最初に追加された要素が最初に取り出されるデータ構造です。これは、例えば列に並ぶ人々や食料品のレジの待ち行列などのイメージです。最初に並んだ人や商品が最初に処理されるという原則です。# スタックとキュー
## スタック
### スタックとは
スタックは、**LIFO**のデータ構造であり、新しい要素がスタックの一番上に追加され、最も新しい要素が最初に取り出されます。### 自作関数を使用した例
“`python
class Stack:
def __init__(self):
self.items = []# タックの先頭に要素を追加
def push(self, item):
self.items.a
配列と連結リスト【Algorithm-Data構造入門Ⅱ】
## 配列
配列はデータを連続的に格納するデータ構造であり、インデックスを使用して要素にアクセスします。配列は任意の位置へのデータの読み書きが定数時間で行えますが、要素の追加や削除には全体の要素のシフトが必要であり、これによりO(n)の時間がかかります。### Pythonでの配列操作例
“`python
# 配列の作成
arr = [1, 2, 3, 4, 5]# 要素の追加
arr.append(6)# 先頭に要素を追加(O(n)の時間がかかる)
arr.insert(0, 0)# 先頭の要素を削除(O(n)の時間がかかる)
arr.pop(0)
“`配列の操作メソッドについて詳しくはこちらをご覧下さい。
https://qiita.com/jay_42tokyo/items/56e01f01b39229bc5d5c
## 連結リスト
連結リストは、データとポインタを持つノードが連結しているデータ構造です。連結リストでは要素の追加や削除がO(1)の時間で行えますが、要素の探索にはポインタをたどる必要があり、これによりO(n)の時間がかかります。また、連結
それ,numpy で書かない?–8–
## それ,numpy で書かない?–8–
ChatGPT 3.5 に書いてもらったプログラムが,リストおよびリスト内包表記を使うものだったので,書き換えをお願いした。
User
以下の julia プログラムをリファインしてください。
1. 実引数,仮引数には list ではなく,Numpy ndarray を使う。
1. 当然,関数内でも list および リスト内包表記は使わない。
1. ムダに長い変数名を使わない。10文字以内。“`Python
def cross_product(v1, v2):
“””
Calculate the cross product of two vectors.
“””
x = v1[1] * v2[2] – v1[2] * v2[1]
y = v1[2] * v2[0] – v1[0] * v2[2]
z = v1[0] * v2[1] – v1[1] * v2[0]
return [x, y, z]def line_plane_intersection(line_po