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

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

Microsoft Teamsのチャンネルにアプリケーションから通知を投げる

Microsoft Teamsにアプリケーションから通知を投げる方法の概略です。最新の方法に対応した日本語リソースがほぼ見つからなかったので、備忘録的に書いておきます。

## やりたいこと

やりたかったことは以下の2つです。

* 時間がかかるジョブの進行状況を知りたい
* ジョブが異常終了したことを検知できるようにしたい

これを実現するために、アプリケーションからチャットにジョブの進行状況を投げることにしました。Slack使えよって言われそうですけど、もろもろの事情によりMicrosoft Teamsしか使えない状況にあると思ってください。

## Webhookの設定

まずはwebhookのURLを取得します。以下のサイトを参考にしました。

[Create incoming webhooks with Workflows for Microsoft Teams – Microsoft Support (英語)](https://prod.support.services.microsoft.com/en-us/office/create-incoming-webhooks

元記事を表示

「令和6年一級建築士試験学科Ⅳ(構造)〔No. 1 〕」断面二次モーメントと断面係数をsympyのPolygonでやってみた。

・タイトルを変更予定です。
・**???section_modulusがでませんでした。??? TypeError…**
・専門家様のアドバイスをいただければ幸いです。

# 公式ホームページ
試験問題〔No. 1 〕,正答肢
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2024-1st-gakka4_5.pdf#page=2
https://www.jaeic.or.jp/shiken/1k/1k-mondai.files/1k-2024-1st-gokakukijun.pdf
「学科の試験」< 一級建築士を志す者に対して、... https://www.jaeic.or.jp/smph/shiken/1k/1k-mondai.html 「学科の試験」< 二級建築士を志す者に対して、... https://www.jaeic.or.jp/smph/shiken/2k/2k-mondai.html # 普通に? 勉強中 # sympyのPolygonで ```python # 令和6年一級建築士試験学科Ⅳ(構造)〔N

元記事を表示

Flutterで全角ファイルが取得できない 〜ドは2種類あるという話〜

# はじめに
今回は、Flutterで開発をしていた時に、なぜか日本語の画像ファイルが取得できなかったバグについて紹介します。最初はFlutter側の問題かと思いましたが、実は、mac側に問題がありました。そのため、「Flutter 全角ファイル 取得できない」など調べても、一生答えが出ずに困っていました。同じ悩みを抱えている方の手助けになればと思います。

# 問題
Flutterで、Assets中にあるファイル名が全角の画像ファイルが取得できない。

# 解決
コード側とファイル側の名前を合わせる。具体的には、濁点系のファイル名について、「**ファイル側の文字をコピペ→コード側にペースト**」が安全。

# 原因
macには「ド」が2種類あるため。

“`plaintext
【コード側】
ド:E3 83 89

【ファイル側】
ト゛:E3 83 88 E3 82 99
“`

正確には、ドだけではなく、濁点が分離するタイプ/しないタイプの2種類がいます。

Gitの差分を見ると、ドの箇所で差分が確認できます。
「イズナ」「バニーガール」とかもダメでした。

![2種類のド.p

元記事を表示

Delft 3Dの導入

# Delft 3Dとは
Delft3DはオランダのDeltares社の開発した、多様な水環境モデリングを行うことのできるオープンソースソフトウェア。

# 環境
Windows 11 Home/Pro

# 1. Delft3Dのダウンロード
公式サイトに登録してダウンロードできる.(要ユーザー登録)

# 2. 必要なソフトウェアのダウンロードとインストール
– Anaconda Python
– 最新版で普通にインストールでOK.
– Visual Studio 2019
– 2022は不可,2019でも新しいバージョンだと動かない.
– 16.11.10なら動く.
– Visual Studio 2019の古いバージョンは[こちらのリンク](https://learn.microsoft.com/en-us/visualstudio/releases/2019/history)からダウンロード可能.
– インストーラを開いたら,「C++によるデスクトップ開発」にチェックを入れる.
– 右側の「インストールの詳細」で「最新のv142

元記事を表示

NumPyの np.sum() と np.add.reduce() ってどう使い分けるの?

# `np.sum()` と `np.add.reduce()` を比較してみる

NumPyには、配列の要素を合計するための関数として、よく使われる `np.sum()` のほかに、 `np.add.reduce()` という関数もあります。今回、この2つの関数の違いと使い分けについてどう違うのか?と疑問が浮かんだので記録に残そうと思います!

## `np.sum()` とは?
`np.sum()` は、配列の要素を合計するための関数です。シンプルな加算だけでなく、**特定の軸に沿った合計**や、**部分的な合計**を簡単に行えるのが特徴

“`python
# 基本的な使い方

import numpy as np
# 1次元配列の合計
arr = np.array([1, 2, 3, 4])
print(np.sum(arr)) # 出力: 10

# 2次元配列の合計(軸を指定)
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(arr2, axis=0)) # 出力: [5 7 9]
print(np.sum(a

元記事を表示

【完全実装】0 から始める Lin-Kernighan-Helsgaun

巡回セールスマン問題の近似解法, 発見的解法として 最近傍法, 2-opt, Lin-Kernighan, Lin-Kernighan-Helsgaun (general k-opt) を紹介したいと思います。

言語はわかりやすく Python として、Numpy や NetworkX を最大限活用した実装を行います。

【使用したコードはこちらから】

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

【使用した図はこちらから】

https://docs.google.com/presentation/d/1MCNTu5wC637FDalA6YisQKFXhTJLK3j4dglQWrvHMt8/edit?usp=sharing

いずれもご自由にダウンロードしていただいて構いません。

# 1. 巡回セールスマン問題(TSP)とは
各 $n$ 頂点を 1 度だけ訪問するような最短の巡回路を求める問題です。

問題が座標点を与えるなら例えば `points

元記事を表示

Flask + SQLAlchemyで音楽共有SNSを作る – ライブラリのインポート編

## はじめに

この記事では、Flask、SQLAlchemy、その他の関連ライブラリを使用して音楽共有SNSを構築する際の、必要なライブラリとモジュールのインポートについて説明します。

## 必要なライブラリとモジュールのインポート

“`python
import os
from datetime import date, datetime, timedelta
from flask import Flask, render_template, request, redirect, url_for, flash, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user
from werkzeug.security import generate_password_hash, check_password_hash
from werkz

元記事を表示

【超基礎から解説編】Flaskで音楽共有SNSを作る:ユーザーモデルの設計と実装

## はじめに

音楽共有SNSの核となるユーザーモデルの設計と実装について解説します。データベースの構造、ユーザー情報の管理、そしてフォロー機能の実装方法を、初心者にもわかりやすく説明していきます。

## 目次

1. [ユーザーモデルの基本構造](#1-ユーザーモデルの基本構造)
2. [ユーザー情報のフィールド](#2-ユーザー情報のフィールド)
3. [フォロー関係の実装](#3-フォロー関係の実装)
4. [フォロー機能のメソッド](#4-フォロー機能のメソッド)
5. [まとめ](#まとめ)

## 1. ユーザーモデルの基本構造

“`python
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
“`

– `UserMixin`: Flask-Loginが提供するクラスで、ログイン機能に必要なメソッドを提供します。
– `db.Model`: SQLAlchemyのモデルクラスを継承し、データベースとの連携を可能にします。
– `id`: 各ユーザー

元記事を表示

【超基礎から解説編】Flaskで音楽共有SNSを作る:アプリケーションの初期化と設定

## はじめに

FlaskでWebアプリケーションを作る際の最初のステップ、アプリケーションの初期化と設定について解説します。ここでは、音楽共有SNSを例に、各設定の意味と重要性を初心者にもわかりやすく説明していきます。

## 目次

1. [Flaskアプリケーションの作成](#1-flaskアプリケーションの作成)
2. [アプリケーションの設定](#2-アプリケーションの設定)
3. [データベースの初期化](#3-データベースの初期化)
4. [ログイン管理の設定](#4-ログイン管理の設定)
5. [フォロワー関係のテーブル定義](#5-フォロワー関係のテーブル定義)
6. [まとめ](#まとめ)

## 1. Flaskアプリケーションの作成

“`python
app = Flask(__name__)
“`

この行は、新しいFlaskアプリケーションを作成しています。これは、Webサイトの土台を作る最初のステップです。`__name__`は、現在のPythonモジュールの名前を指す特別な変数です。

## 2. アプリケーションの設定

“`python
a

元記事を表示

DailyBeat技術スタックと選定理由

## ライブラリとフレームワーク

### 1. Flask
**選定理由**:
– 軽量で柔軟性が高く、小規模から中規模のアプリケーションに適している
– 学習曲線が緩やかで、初心者でも比較的容易に習得できる
– 必要な機能を持つ拡張機能が豊富に用意されており、開発効率を高められる
– Pythonベースであるため、開発者にとって親しみやすい言語である

**使用機能**:
– ルーティング(URLと機能の紐付け)
– テンプレートレンダリング(HTMLの生成)
– リクエスト処理
– レスポンス生成

### 2. SQLAlchemy
**選定理由**:
– Pythonで最も広く使われているORMの一つで、信頼性が高い
– データベース操作をPythonオブジェクトとして扱えるため、開発効率が向上する
– 複雑なSQLクエリを書かずに済み、コードの可読性が向上する
– 将来的なデータベースの変更(例:SQLiteからPostgreSQLへ)が容易になる

**使用機能**:
– データベースモデルの定義(User, DailySong)
– データの挿入、更新、削除、取得操作

元記事を表示

【超基礎から解説編】Flaskで音楽共有SNSを作る:必要なライブラリとモジュールの解説

## はじめに

Flaskを使って音楽共有SNSを作る際に必要なライブラリやモジュールについて、初心者にもわかりやすく解説します。これらの「道具」を理解することで、Webアプリケーション開発の基礎が身につきます。

## 目次

1. [ファイル操作と日時処理](#1-ファイル操作と日時処理)
2. [Flask関連のインポート](#2-flask関連のインポート)
3. [データベース操作](#3-データベース操作)
4. [ユーザー認証](#4-ユーザー認証)
5. [セキュリティ関連](#5-セキュリティ関連)
6. [フォーム処理](#6-フォーム処理)
7. [その他の機能](#7-その他の機能)
8. [まとめ](#まとめ)

## 1. ファイル操作と日時処理

“`python
import os
from datetime import date, datetime, timedelta
“`

– `os`: ファイルやフォルダを操作するための道具箱です。新しいフォルダを作ったり、ファイル名を変更したりするのに使います。
– `datetime`: 日付や時間

元記事を表示

paizaラーニング問題集「【全探索 1】高い寿司を食いたい!」を解いてみた

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

▼考え方

連続するK枚の寿司の考え方について、以下に示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881331/4313c3c7-86e7-f68d-1079-635439d0732c.png)

▼コード
“`py
########## 処理0(準備) インプット,リスト定義 ###########

N,K = map(int,input().split())

P = [0]*N
for i in range(N):
P[i] = int(input())

# tmp_total: 連続するK枚の寿司の合計金額を格納する変数
tmp_total = 0

max_prime = 0

########## 処理1 連続するK枚の寿司の合計金額

元記事を表示

Pythonのアップデートがあったときにすること

## はじめに

2024年10月になり、Pythonのアップデートがありました。

[Python Release Python 3.13.0 | Python.org](https://www.python.org/downloads/release/python-3130/)

Pythonをアップデートするときにすることを覚書しておきます。

## アップデート前に

まずは現行のPythonで使っているパッケージを控えておきます。なぜかというと、Pythonのアップデートをすると、パッケージを再インストールする必要があるからです。

まず、以下のコマンドで、現在インストールされているパッケージを最新のものにアップデートします。こうしないと、アップデート後にパッケージがインストールされないことがあります。ちなみに、“`pip-review“`がない場合は、“`pip install pip-review“`でインストールできます。

“`bash
pip-review –auto
“`

これに

元記事を表示

動かして学ぶ!Python FastAPI開発入門を実践してみて引っかかったところをメモ

動かして学ぶ!Python FastAPI開発入門を実践してみて引っかかったところをメモします。

## MySQLコンテナの立ち上げ

リスト11.1を入力後
ocker-compose upすると以下エラー

`[Server] Could not open the mysql.plugin table. Please perform the MySQL upgrade procedure.`
`mysqld: Table ‘mysql.plugin’ doesn’t exist`

以下コマンドで一旦コンテナの停止&ボリュームを削除
`docker-compose down -v`

その後

`docker-compose up`
で正常にDBが立ち上がることを確認できた。

元記事を表示

データサイエンス用の数理プログラム

“`
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from numpy.linalg import norm

# サンプルテキストデータ
documents = [
“the cat sat on the mat”,
“the dog barked at the cat”,
“the cat chased the mouse”,
“the dog chased the ball”
]

# BoWベクトルの生成
vectorizer = CountVectorizer()
bow_matrix = vectorizer.fit_transform(documents).toarray()

# 単語のリストとBoW行列の表示
print(“Vocabulary:”, vectorizer.get_feature_names_out())
print(“\nBoW Matrix:”)
print(bow_matrix)

# 2つの文書間

元記事を表示

Flaskの環境構築から、Hello World出力まで【備忘録】

# 環境
+ Windows
+ Python 3.12.4
+ Flask 3.0.3

# ディレクトリ構成

“`
flask_test/
├─ venv/
└─ app.py
“`

# 手順1 flaskインストールまで
※Pythonはインストール済みとする

仮想環境用ディレクトリ `test_project` を作成
作成したディレクトリに移動

“`
mkdir test_project
cd test_project
“`

仮想環境を作成( `py -3 -m venv [フォルダ名]` )

“`
py -3 -m venv venv
“`

仮想環境を有効化( `[フォルダ名]\Scripts\activate` )

“`
venv\Scripts\activate
“`
→ 先頭に `(env)` が付く

:::note
無効化するときは `deactivate` と入力
:::

仮想環境の中にFlaskをインストール

“`
pip install Flask
“`

# 手順2 “Hello World”出力まで
##

元記事を表示

Javaにおける2進数の具体的な活用例

# Javaにおける2進数の具体的な活用例

システム開発や基本情報処理の試験において、2進数(バイナリ)とか覚えてどうするの?と思う時があると思います。今回の記事では、Javaの、ビット演算やビットフィールドを活用することで、効率的なコーディングや低レベルの操作が可能になります。以下に、Javaでの具体的な2進数の活用例をいくつか紹介します。もちろんPythonやPHP、Java Scriptでも応用が効くので是非参考にしてください。

## 1. ビットフラグの管理

ビットフラグを使用すると、複数の状態やオプションを1つの整数値で管理できます。これにより、メモリの節約や処理の高速化が図れます。

### 例: ユーザー権限の管理

“`java
public class BitFlagExample {
// ビットフラグの定義
public static final int READ_PERMISSION = 0b0001; // 1
public static final int WRITE_PERMISSION = 0b0010

元記事を表示

Djangoでログアウト機能を実装できない場合のエラー解消法

## 発生していた問題・エラー
ログアウトをしようとした時に、HTTP 405エラー「Method Not Allowed」(許可されていないメソッド)が発生している

![ログアウト機能失敗.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677649/82168d28-b663-117c-047d-70f3fa43e8a8.gif)

## エラーの原因・解決方法
– 多くのWebアプリケーションでは、ログアウトの操作はセキュリティ上の理由から、GETではなくPOSTリクエストを使用して行われるらしいです
– ログアウトを行う際には、フォームを使ってPOSTメソッドでリクエストを送信するようにリンクを変更する必要があります

“`html:layout.html

元記事を表示

Debian12のflet環境でハマったこと

# Debian12の環境でFletをインストールしてハマったことのメモ
Debian12からpythonを使う際、venv環境が矯正される。
なのでvenv環境に移行した後Fletをインストールするために
“`bash
pip install flet
“`
でインストールする。
テストプログラムを書いて実行する
“`flt01.py
import flet as flt

def main(page: flt.Page):
tx1=flt.Text(“Test”)
page.controls.append(tx1)
page.update()

flt.app(target=main)
“`
すると・・・
libmpv.so.1がないと怒られる。

# 対処方法
debian12ではsudoの設定がされていないので
su –
でルートユーザーに移行する
apt update
でとりあえずリポジトリを更新して
apt install libmpv-dev
をインストールする。
で実行しても同じエラーが出る・・・
なんでや

# 原因は・・・
debia

元記事を表示

paizaラーニング問題集「【条件判定 3】過剰コンプライアンス」を解いてみた

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

▼考え方

この問題を解くために私が考えた内容1.~2.2.を以下に示します。

1.放送したい単語Vを1つずつインプットし、題意に基づいた検閲処理を行います。

2.1.放送したい単語Vの前半分の検閲処理を行います。変数v1を用いたV[:v1]は、放送したい単語Vの前半分を示します。V[v1:]は前半分以外の残りを示します。変数s1を用いたS[:s1]は、放送禁止単語Sの前半分を示します。

2.2.放送したい単語Vの後ろ半分の検閲処理を行います。変数v2を用いたV[v2:]は、放送したい単語Vの後ろ半分を示します。V[:v2]は後ろ半分以外の残りを示します。変数s2を用いたS[s2:]は、放送禁止単語Sの後ろ半分を示します。

▼コード
“`py
########## 処理0(準備) モジュールインポート,インプット ###########

import math

N

元記事を表示

OTHERカテゴリの最新記事