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

Python関連のことを調べてみた
目次

【python】NFC Felica Lite-S MACつき読み出し・書き込みの実装

MACつき読み出し・書き込みを実装していきます
読み出しについては[内部認証](https://qiita.com/Nekoq0o0p/items/4be549fef0127ce55fca)、書き込みについては[外部認証](https://qiita.com/drafts/3bf1649a4c158f2ff66a)で実装したコードに酷似しています。

:::note warn
本記事では、Felica Lite-Sを主として扱っています。
:::

# 前提
[ユーザーズマニュアル3章 ブロック](https://www.sony.co.jp/Products/felica/business/tech-support/data/fls_usmnl_1.4j.pdf)の21ページにあるブロックについての情報
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3629819/2dfe59f3-842d-9028-9b6a-ce611a487f55.png)

また、内部認証・外部認証を実装する過

元記事を表示

QiitaAPIを使って自分の記事の整理をしてリスト化する。

# はじめに
PythonでQiitaAPIを使って、記事の整理をしてみた。QiitaAPIは下記。

https://qiita.com/api/v2/docs

# 目次
+ [QiitaAPIの概要](#qiitaapiの概要)
+ [QiitaAPIでデータ取得する例](#qiitaapiでデータ取得する例)

# QiitaAPIの概要
+ Qiita APIはHTTPのメソッドでアクセスする。対応しているメソッドはGET、POST、PUT、PATCH、DELETEの5種類。APIでやり取りするデータのフォーマットはJSON。今回はデータ収集のためにAPIを使うので、GETメソッドを使う。

HTTPメソッド|内容
—|—
GET|データの要求。
POST|データの送信。
PUT|データの更新。
PATCH|データの部分更新。
DELETE|データの削除。

+ GETメソッドの場合はアクセストークンがなくても、1時間60回まではリクエストを受け付けてくれる。上限を超えるアクセス、または、POST、PUT、PATCH、DELETEのメソッドを使う場合は、アクセストーク

元記事を表示

中学生にもわかる!音楽共有SNS「DailyBeat」の仕組み(後編)

前編に続いて、DailyBeatの主要な機能について説明していくよ。

### 3. 楽曲投稿機能

楽曲投稿機能は、こんな感じで作られているんだ:

1. ユーザーが曲名、アーティスト名、ジャンルなどを入力する
2. 入力された情報をデータベースに保存する
3. 保存された情報をタイムラインに表示する

例えば、こんなプログラムを書くんだ:

“`python
@app.route(‘/post’, methods=[‘POST’])
def post_song():
title = request.form[‘title’]
artist = request.form[‘artist’]
new_song = DailySong(title=title, artist=artist, user_id=current_user.id)
db.session.add(new_song)
db.session.commit()
return “投稿完了!”
“`

この例では、`DailySong`というデータベースのテーブルに新しい曲

元記事を表示

中学生にもわかる!音楽共有SNS「DailyBeat」の仕組み(前編)

こんにちは!今日は、「DailyBeat」という音楽を共有するSNSについて、どんなふうに作られているのか、みんなにもわかりやすく説明していくね。

## DailyBeatって何?

DailyBeatは、毎日1曲の音楽を友達と共有できるSNSだよ。例えば、こんなことができるんだ:

– 今日聴いて気に入った曲を投稿する
– 友達が投稿した曲を聴く
– 好きな人をフォローして、その人の投稿をチェックする

音楽を通じて友達とつながることができる、そんなサービスなんだ。

## DailyBeatの主な機能

1. ユーザー登録とログイン
2. 毎日の楽曲投稿
3. みんなの投稿を見るタイムライン
4. 友達をフォローする機能
5. 投稿された曲を再生する機能

これらの機能がどんなふうに作られているのか、順番に見ていこう!

## DailyBeatの作り方

### 1. 使っている技術

DailyBeatは、主に以下の技術を使って作られているよ:

– Flask(フラスク):Webサイトを作るためのPythonのツール
– SQLite:データを保存するための小さなデータベー

元記事を表示

プログラミング言語別のDate型操作方法

## 記事を書こうと思ったきっかけ
今回この記事を書こうと思ったのは、仕事や自己学習の中で日付(Date型)を扱う機会があったことがきっかけです。仕事では主にVB.NETを使用し、自己学習ではReactを使って開発をしていますが、ふと「日付を扱う方法は、言語によってどのように異なるのだろう?」と疑問を持ちました。そこで調べた内容を整理し、この記事としてまとめました。
今回調べた言語は以下の4つです。
– Java
– Python
– JavaScript
– VB.NET

## JavaでのDate型の扱い

Javaでは、日付操作に古くからjava.util.Dateが使用されてきました。近年ではjava.time.LocalDateやZonedDateTimeなどのモダンなAPIが推奨されています。日付のフォーマット変換にはSimpleDateFormatやDateTimeFormatterが使われ、タイムゾーンの考慮も簡単に行えます。これにより、異なる地域間での正確な時刻操作や、過去・未来の日付演算が容易になります。
“`Java:
// 必要なクラスをインポートします
i

元記事を表示

paizaラーニング問題集「【シミュレーション 4】位置情報システム」を解いてみた

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__move_simulation

▼考え方

ポイントになる考え方1.~7.を以下に示します。

1.時刻t_1(=0),t_2,…,t_nと、各時刻におけるユーザーの位置情報(y,x)を、2次元リストtyxにセットします。以下に例を示します。

tyx = [[0, 0, 0], [100, 100, 100]]

2.リストtyxをもとに、題意に沿って計算した時刻とユーザの位置情報をリストuserlocationにセットします。以下に計算後の例を示します。

userlocation = [[0, 0, 0], [1, 1, 1], …., [99, 99, 99], [100, 100, 100]]

3.各時刻におけるユーザーの位置情報を計算する処理になります。以下に概要を示します。赤文字の部分を説明しますと、リストtyxのt_i=0と3のデータから、t_i=1と2の位置情報を計算し、リストus

元記事を表示

Fletアプリを実行しようとしたときにlibmpv.so.1が開けないと出た時の対処法

WSL2で
`flet run FILENAME.py`
を実行したときに以下のエラーが出た!

`Error while loading shared libraries: libmpv.so.1: cannot open shared object file: No such file or directory`

このエラーに対しては以下を実行することで解決しました。

“`
sudo apt update
sudo apt install libmpv1
“`

追記:
公式ドキュメントにLinuxでは追加の前提条件があったため乗せときます
https://flet.dev/docs/publish/linux#prerequisites

元記事を表示

デレステ実況の配信オーバーレイ

:::note info
著作権情報 THE IDOLM@STER™& ©Bandai Namco Entertainment Inc.
:::

# こんな感じのものを作ってみました

# アイドルマスターシンデレラガールズとは
https://cinderella.idolmaster.jp/sl-stage/

Androi

元記事を表示

PowerShellにおいて、Python venvの仮想環境化でblenderコマンドを使う

# この記事について(備忘録)
https://github.com/hbertiche/NeuralClothSim
上記の論文を実装する際に
“`shell: sh
$ blender –python get_body_model.py
$ blender –python get_sequence.py
“`
というblenderのコードを入力するところがあります。
Windowsの初期設定ではblenderのパスが通っていないため、大体の環境ではおそらくエラーが発生します。仮想環境に入らない状態でblenderにパスを通すのと、仮想環境下でblenderにパスを通すのではやり方が違うため両方紹介します。

# 目次
– [環境](#環境 )
– [仮想環境に入らない状態でblenderのパスを通す時](#仮想環境に入らない状態でblenderのパスを通す時)
– [仮想環境下でblenderのパスを通す時](#仮想環境下でblenderのパスを通す時)

# 環境
Windows11
Python 3.13.0
PowerShell

# 仮想環境に入らない状態でblen

元記事を表示

pythonでCLI形式の簡単なTODOアプリを作成してみた

## はじめに
pythonの基本的な文法は学習したが、実際にどういう場面で使うのかイメージしずらかったので簡単なTODOアプリを作成してみました。
いきなりWEBアプリを作成しようとすると、python以外のフロントの書き方とかで躓きそうだったので、まずは簡単にCLI形式で作成していきます。

## TODOアプリの機能について
今回作成するTODOアプリの機能としては以下です。
– 追加
– 表示
– 削除
– 更新
– 保存

めちゃくちゃシンプルです。もはやデフォルトのメモ帳使った方がいいレベルなのですが、今回はpythonの基本的な文法をどのような場面で使うのか実践したかったのでよしとします。

## 動かしてみる
まずは完成形でどのような挙動をするのか動かしてみます。

“`
#ファイルの実行
python3 main.py
“`

“`
#実行したいコマンドを入力する
#addでタスクの追加を行う
Enter command ‘add’ or ‘delete’ or ‘show’ or ‘update’ ‘exit’ to quit:add
Enter t

元記事を表示

パッケージ管理ツールuvでデータ分析環境を構築する

## はじめに
この記事ではPythonのパッケージ管理ツールである[uv](https://github.com/astral-sh/uv)で仮想環境を構築し、VSCode上でipynbファイルを実行できるようにするまでの流れをまとめる。前提としてuvは ver0.4.6 インストール済み、Windows11環境での作業となる。今回はデータ分析や機械学習モデルの開発でよく使われるpandasについて、ipynbファイルで以下のコードを実行してpandasのバージョンを表示させることを目標にする。
“`py
import pandas as pd
pd.__version__
“`
## 1. 仮想環境の構築
早速データ分析ができる環境を作っていきたい。まずは分析環境となるプロジェクトと、そこで使う仮想環境をuvコマンドで作成しよう。今回は`my_python`と名付けたディレクトリに`env1`というプロジェクトを作りたいので、以下のコマンドを`my_python`で実行する。
“`
uv init env1
“`
すると、`env1`というディレクトリと
– `.pytho

元記事を表示

[Python] 選択ソートを理解しよう!

## 概要
多分他に記事は山程ありそうなので、自分自身の辞書代わり程度に記載します!

競技プログラミングに興味が前からありますが、
最近Pythonに移行したので基礎からやってますー

## 選択ソートとは?
要素を順番に確認し、最小値 or 最大値の要素を見つけたら
その要素を先頭から順に並び替えます。

所謂ソートアルゴリズムってやつですな。

## 計算量
常にリスト全体の中から最小(または最大)の要素を探すため、
リストの長さが 「𝑛」の場合、比較の回数は 𝑂(𝑛2乗)になります。

リストがほとんどソート済みでも時間計算量は変わりません。

## 特徴
:::note info
メリット
・実装が簡単(理解しやすい!)
・メモリ使用量少
:::

:::note warn
デメリット
・比較回数が多いため、効率が悪く、リストが大きいと処理が遅い
:::

## 例
### 手順を簡単な例でイメージしてみよう!

次のリスト [29, 10, 14, 37, 13] を昇順にソートしてみましょう!

### 1. 最小値を探そう
[29, 10, 14, 37, 13] か

元記事を表示

PythonでExcelワークシートのページ設定を行う

Excelファイルのデータが整い、レポート形式で提示する必要がある場合、Excelファイルのページ設定を調整することが非常に重要です。これはドキュメントの専門的な外観だけでなく、印刷や電子共有時の読みやすさや実用性に直接影響します。このプロセスをPythonで自動化することで、大量の手動設定時間を節約し、複数のファイルの一貫性と標準化を確保することができます。Pythonを使用してページの余白、用紙の向き、縮尺などの重要な属性を簡単に制御することができ、最終的な出力を具体的なニーズに合わせることが可能です。本記事では、**Pythonを使ってExcelワークシートの一般的なページ設定を行う方法**を紹介します。

本記事で使用する方法は、[Spire.XLS for Python](https://jp.e-iceblue.com/introduce/spire-xls-for-python.html)を必要とします。PyPIからインストールできます:`pip install spire.xls`。

[無料ライセンスの申請](https://www.e-iceblue.com/Tem

元記事を表示

PythonでThorlabsのディレイステージを動かす

本記事にはBBD201というThrolabsのステージコントローラでオプティカルディレイステージ(DDS220)を動かす方法を記した。パッケージとかは作ってないが、色々試してうまくいかずようやくこの方法にたどり着いた。もし同じく困っている人がいればと思い、備忘録として書くことにした。なるべく細かく記したつもりであるが何か疑問などがあったらコメントいただければと思う。Pythonのthorlabs-apt-deviceモジュールを使うことで解決した。この方法で他のコントローラやステージもPythonでコントロールできるかもしれない。

# 経緯
 先日、ラボのパソコンが壊れてしまって復旧作業を行なった。弊ラボではLabViewを使用しているが、GUIプログラミングという謎仕様にアレルギーを発症してしまい、Pythonで書くことにした。最もな治療方法はLabViewを知ることであるが、2022年版を最後にサブスク型へ切り替えることにビジネスモデルを変えることになってしまった。故にラボの将来の運営を考えるとLabViewを知ることは所詮、対処療法に過ぎないだろうと思い、Pythonで書き直す

元記事を表示

【初心者】Git hub使用方法

## やること 
pythonで作ったプログラム(仮想環境以外)をgitにアップロードする。
アップロードしたものを更新する。

## アップロード手順
C:\Users\sharisa\Videos\ラズベリーパイIpad
本日はここの下の階層をGitにアップロードすることとする。

まずgithubにアクセス
https://github.com/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3882753/aac77257-7e9c-59a7-be13-0e25ec396cae.png)

New repositroryを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3882753/6d18a933-591b-02bb-8691-5e934f2dee9f.png)
Repository nameを任意の文字に変更する。日本語は多分ダメ。
![image.png](https

元記事を表示

Pandasの要素指定・置換

# はじめに
Pandasで要素を指定したり、要素の値を置換する方法をまとめる。

# 目次
+ [要素・範囲指定](#要素範囲指定)
+ [値の置換](#値の置換)

## 要素・範囲指定

種類 |対象 |指定方法|スライス , リスト
————-|—–|—–|—–
df.loc[] |範囲 , 複数|ラベル|〇
df.iloc[] |範囲 , 複数|番号|〇
df.at[] |要素|ラベル|-
df.iat[] |要素|番号|-

“`python:
import pandas as pd

df = pd.DataFrame({
‘White’:{‘A’:1,’B’:2,’C’:3,’D’:4,’E’:5}
,’Black’:{‘A’:10,’B’:20,’C’:30,’D’:40,’E’:50}
,’Red’ :{‘A’:100,’B’:200,’C’:300,’D’:400,’E’:500}
,’Green’:{‘A’:1000,’B’:2000,’C’:3000,’D’

元記事を表示

Swift/BATを用いた光度曲線のプロット方法:matplotlibとplotlyを用いたPythonスクリプト解説

# はじめに

Swift/BAT 衛星の 15-50 keV のエネルギーのライトカーブを生成する簡単な方法を、matplotlib と ploty で紹介します。

プログラムの基礎的な部分は、

https://qiita.com/yamadasuzaku/items/b184118383808cecaa75

と同じなので、こちらを参考にしてください。

google colab でも動かせるようにしています。その場合は、

https://colab.research.google.com/drive/1axbmskPdxg5CrGwBfTHt0wgT3PcaiLZs?usp=sharing

を参考にしてください。

## データのダウンロード

データのダウンロードは下記から実行します。

https://swift.gsfc.nasa.gov/results/transients/ 

あるいは、

https://github.com/yamadasuzaku/rksysoft/blob/main/astro/swift/swift_download_data.py

元記事を表示

XSPECにおけるzashiftとvashiftの違い:相対論的・非相対論的ドップラー効果の解説

## はじめに

この記事では、XSPEC で利用される **zashift** と **vashift** モデルの違いを、相対論的および非相対論的ドップラー効果の観点から数式を用いて解説します。特に、相対論的速度での赤方偏移を扱う **zashift** と、非相対論的速度によるエネルギーシフトを示す **vashift** が、それぞれエネルギーにどのように影響を与えるかに焦点を当てます。

また、Python を使用して相対論的ドップラーシフトの関係を視覚化し、理論をより深く理解できるようにします。最後に、SS 433 という天体の観測結果を取り上げ、理論と実際の観測データがどのように一致するかを示します。

## 光のドップラー効果とは

天文学において光のドップラー効果は、運動する天体が放射する光の周波数やエネルギーが、観測者に対してどのように変化するかを説明する重要な現象です。天体から放射された光が観測者に届く際、周波数が増加することを青方偏移、その反対に周波数が減少することを赤方偏移と呼びます。音のドップラー効果と異なり、視線と垂直方向に運動する天体から届く光が赤方偏移

元記事を表示

Kritaで漫画描いた複数ページをPythonスクリプトでpng及びpdf出力

### やりたいこと。
[krita](https://krita.org/ja/)ファイル名 [ヘッドネーム]数字連番.kra で保存されたファイルをoutフォルダにpngとpdfを作成すること。

・手順
 kraファイルからpngファイル出力
 pngファイルから結合してpdf化

# kraファイルからpngファイル出力

### ソースのカスタマイズ3か所
以下のkritaの作業場所フォルダと、出力先フォルダおよび、ヘッダー名を変更して下さい。
folder_path = “G:\\work\\漫画\\45_202409_y” # kritaの作成フォルダ
output_folder = “G:\\work\\漫画\\45_202409_y\\out” # png出力フォルダ
pagehead = “page_” # ヘッドネーム page_00100.kra であれば page_としてください

“`python auto_page_to_output_png.py
import os
import re
from krita import *

# Kritaアプ

元記事を表示

Pythonでのロギング:logging モジュールの基本と応用

# 概要
Pythonの標準ライブラリである logging モジュールは、プログラムの実行中に詳細な情報を記録するための強力なツールです。特に、デバッグや運用中のエラー検出、情報のトレースに役立ちます。この記事では、現場で使用しているlogging の基本的な使い方をメモします。

# 目次
– logging とは?
– 基本的な使い方
– ログをファイルに保存する方法
– ログフォーマットのカスタマイズする方法
– 複数ファイルにログを分ける方法

# logging とは?
logging モジュールは、Pythonでログメッセージを生成し、コンソールやファイルに出力するための方法です。print() を使ったデバッグよりもはるかに使い勝手が良く、レベルごとにメッセージを整理したり、ログのフォーマットや出力先をカスタマイズできる点が特徴です。

# 基本的な使い方
logging モジュールを使ってログを出力する基本的な方法です。
“`python
import logging

# ログの基本設定
logging.basicConfig(level=logging.INFO

元記事を表示

OTHERカテゴリの最新記事