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

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

PythonでABC343を解いてみたよ。(A~F問題)

[AtCoder Beginners Contest 343 (ABC343)](https://atcoder.jp/contests/abc343) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – Wrong Answer

## 問題
$0$ 以上 $9$ 以下の整数 $A, B$ が与えられます。
$0$ 以上 $9$ 以下の整数のうち、$A+B$ と等しくない数をひとつ出力してください。

https://atcoder.jp/contests/abc343/tasks/abc343_a

## 考察
for文を用いて、$x=0,1,2, \cdots ,9$ と探索します。
$x \neq A+B$ となる $x$ があれば

元記事を表示

FlaskでSessionを使ってみるの巻

# はじめに
FlaskでRest APIサーバの学習をしていてFlaskでセッションでどうやってやるんだろう??って疑問が湧いてFlaskでSessionを使う方法を調べてみました。
本記事ではFlaskに標準で容易されているSessionを利用してみます。
思いの外超簡単だったのでショート記事ですがまとめてみました。

# 環境
Visual Studio Code:1.85.2
Python:3.11.6
Flask:3.0.1
Werkzeug:3.0.1

# サンプルコード
[GitHub](https://github.com/ktaro-nakaya/flask-session)で公開しています。

# サンプルコードの使い方
:::note alert
事前に下記がインストールされていること
* pytohon(pipコマンド)
* Node.js(npmコマンド)
:::

## サーバサイド
SunChannelフォルダで以下のコマンドを実行します。

“`sh:コマンド
pip install flask
pip install blueprint
pytho

元記事を表示

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

元記事を表示

【解決】CosmosDBの「ValueError: Unsupported paths count.」について

# 起きた現象
1. 複数のパーティションキーを設定したコンテナを作成
1. `python SDK`を使用してアイテムを登録する。
1. `ValueError: Unsupported paths count.`が発生する。

# 解決策
バージョン`4.5.2b1`をインストールする。
“`bash
pip install azure-cosmos==4.5.2b1
“`

## もう少し詳しく
### 複数パーティションキーの設定
コンテナ作成時に、複数のパーティションキーを設定することができます。
以下では試しに
– id
– email
– address

を設定しております。

![スクリーンショット 2024-02-28 112906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3337466/b013b171-daf3-c064-b747-81c507d01193.png)

このような設定を行うことで、同じ`id`, `email`, `address` の組み合わせのアイ

元記事を表示

表皮効果の図示

# はじめに
電線に高周波電流を流すと表面付近の電流密度が極端に大きくなってしまうという現象がある。これを表皮効果と呼ぶ。導線内部に生じる電流密度は、マクスウェル方程式を円筒座標系で解くことによって導出することができ、ベッセル関数で表すことができる。そこで、今回は解析解を用いて表皮効果によって生じる電流分布についてPythonで再現してみることを目的とする。

# 表皮効果の解析解
交流電流$I$を空間に存在する無限長の半径$a$の一本の導線に流した場合、電流密度は半径のみに依存して以下のような式になる。(これの導出は参考文献1を参照)

“`math
J(r)=\frac{k I}{2 \pi a} \frac{J_0(kr)}{J_1(ka)}
“`

ただし、$k=\sqrt{-j \sigma \mu \omega }$であり、$\sigma,\mu$は導線の電気伝導率、透磁率であるものとする。また$\omega$は交流電流の角速度である。

# 図示
それでは、実際に上式を用いて導線断面における電流密度をコンター図を用いて図示するプログラムを作成しよう。

“` pyt

元記事を表示

画像にカラーマップを重ねて表示する

## 目的
GradCAMの出力みたいな画像が作りたい、と思い調べてみたメモ。

## サンプルコード環境

||バージョン|
|–|–|
|python|3.10.9|
|cv2|4.6.0|

## 手順
1. ベース画像の読み込み
1. 同サイズの出力をヒートマップ(カラーマップ)化
1. アルファブレンディングでオーバーレイする

## サンプルコード
### 0. 使用ライブラリ
“`python
import cv2
import numpy as np # サンプルマップ生成用
import matplotlib.pyplot as plt # 画像表示確認用
import skimage.data import cat # サンプル画像用
“`

### 1. 画像読み込み

scikit-imageのサンプルデータで。

“`python
# img = cv2.imread(“path/to/img”)
img = cat()
height, width, _channel = img.shape
plt.imshow(img)
plt.show()
`

元記事を表示

「QuizKnockパズル王vs.コンピュータ」のパズルを解くプログラムを作ってみた

## はじめに

YouTubeを見ていたらこんな動画が目に入りました。
[【大決戦】コンピュータを使ってでもパズル王に勝ちたい!!](https://www.youtube.com/watch?v=4mh9qsH0Zhs)

動画の内容は、以下の問題を解くのを人間vs.プログラミングで対決するというものです。

:::note info
【問題】
数個の数字が与えられるので、指定された数字が計算できる式を答えよ(使えるのは四則演算のみ)
:::

動画を見ながら、自分だったらどう解くかを考えたので実際にコーディングしてみました。

# どのような問題なのか?

まずは問題を細かく整理していきましょう。

### 問題の内容

例を出すと「1, 2, 3, 4 から 11 を作れ」みたいな問題となります。この問題の場合、1 × 3 + 4 × 2 = 11 みたいな式が成り立つので、これが解答の一例となります。

答えが複数ある場合もあります( 3 × 4 – 2 + 1 も 11 になります)。複数の解がある場合、いずれかの数式を答えられれば正解となります。

### 制約の整理

元記事を表示

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

元記事を表示

Python 3ではじめるシステムトレード:疑似乱数の生成

モンテカルロシミュレーションをするために、必要となる乱数生成器について知識をまとめてみました。情報は主にWikiとNumPyのWebサイトから得ています。ほとんどがChatGPTによる英語文書の翻訳です。参考文献の番号は元情報のページを参照してください。ウィキの疑似乱数生成アルゴリズムのページは一部原文を削り、一部加筆しました。またPCG64とSFC64の情報に関してはNumPyのリファレンスを参照しました。

# [擬似乱数生成アルゴリズム](https://en.wikipedia.org/wiki/Pseudorandom_number_generator)

ウィキペディア、フリー百科事典より

このページは、擬似乱数生成アルゴリズムが一般的に遭遇する特性についてです。理論計算機科学における形式的な概念については、擬似乱数生成器を参照してください。

擬似乱数生成器(PRNG)、または決定論的ランダムビット生成器(DRBG)[1]は、乱数の系列の特性を近似する特性を持つ数の系列を生成するためのアルゴリズムです。PRNGによって生成された系列は真にランダムではありません。なぜな

元記事を表示

Python GUIアプリケーションでウィンドウや部品の半透明や透明を制御する(PyQt5)

## 動作環境
– macOS M1 デスクトップ
– Ubuntu Desktop
– Python3.10

## GitHubで公開中

スリットを利用して、文章を読みやすくするPython GUIアプリケーションです

https://github.com/takahashi-akari/slit

![screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34365/105e655a-0aee-91ba-1cde-5f58431124ec.png)

## PyQt5でGUIアプリケーションを作成

`PyQt5`を使用してウィンドウ内に半透明と透明のフレームが共存するGUIアプリケーションを作成するには、`QFrame`ウィジェットの透明度を調整することが鍵となります。これを実現するには、`setStyleSheet`メソッドを使用してCSSスタイルを適用し、フレームの背景色と透明度を指定します。

https://www.riverbankcomputing.com/stat

元記事を表示

コメントを収集するライブラリChatDownloaderを使ってみた

# コメントを収集するライブラリChatDownloaderの紹介
徐々に寒さが増し、単位の結果が気になる季節ですね。皆さんは単位をしっかり取得できましたか?私は残念ながらいくつか落としてしまいました。

さて、今回はちょっと面白いライブラリ、ChatDownloaderについて紹介します。Pythonの環境構築などはまた別の機会に触れるとして…

ChatDownloaderを使う理由
近頃、ライブ配信の動画の長さに疑問を感じ始めました。コメントを収集して解析することで、見どころを抽出できないかと思い至りました。しかし、YouTube APIの使用は少し敷居が高いため、代わりにChatDownloaderを見つけました。

# 導入と使用例
ということで、四の五の言わずにpip install
使用環境はPython3.8です。

“`Python:コマンド
pip install chat-downloader
“`
ダウンロードするコメント付きの動画は
[LIVE: Bahrain Grand Prix Build-Up and Drivers Parade](https:/

元記事を表示

PythonでExcelの列幅を変更する時のサイズ感

Pythonのopenpyx|ではExcelの列幅を変更できます。
使っでみたところサイズが指定よりも若干小さくなるようです。
例えば、サイズを8にしようとすると7.42になりました。

指定したサイズにある倍率をかけることで指定したサイズになりました。
いろいろ試した結果、指定したサイズになる倍率をまとめてみした。
Excelは2021、Pythonは3.9を使用しての結果です。

import openpyx|
from openpyxl import load_workbook

size = 指定のサイズを入力
bairitsu = 下記の倍率を入力

wb = load_workbook(‘対象ファイルパス’)
ws = wb.active

ws. column_dimensions [‘A’]. width = size* bairitsu #A列のサイズを変更しています

◆各サイズと倍率◆
8 * 1.0725
9 * 1.0644
10 * 1.058
11 * 1.05272
12 * 1.04833
13 * 1.04461
14 * 1.04142
1

元記事を表示

Tkinterを使用したファイルオープナーアプリの作成

### はじめに
この記事では、Tkinterを使用してシンプルなファイルオープナーアプリを作成する方法を紹介します。アプリでは、ファイルの登録や閲覧が簡単に行えるように設計されています。以下に、コードとその説明を示します。

“`file_opener.py

# 3/4編集中

def reset_and_show_entries(self):
# 以前に登録されたボタンとタブを削除(最初のタブはスキップ)
for tab in self.notebook.tabs()[1:]:
self.notebook.forget(tab)

# 再度表示
self.show_registered_entries()

def show_registered_entries(self):
# 登録済みのボタンを表示

# entriesリスト内の各エントリーに対して処理
for i, entry in enumerate(self.

元記事を表示

Python学んでみた 第5回(numpy,Matplotlib)

# はじめに
初めまして!
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい!自分が学んだ足跡を残していきたい!と思い記事を書きました!
最終的には自在に開発できるようになりたいと思っています。:triumph:
いろいろな記事を参考にさせてもらっています。:bow_tone2:
その中でもこれってどういう意味?とかつまづいたところを念入りに書いていこうかと思います。:fist:

# 今回の目的
前回の続きです。

https://qiita.com/mr_noppo/items/638136de0dc835e5d561

# 使用したものや事前準備
・Macbook Pro
・Python
・Anaconda
・jupyter notebook

# 主に参考にさせていただいた記事
https://opencv.org/university/

# Python
## numpy
行列操作をおこうなことができるサードパーティのライブラリ。ソースコード内にnpといたらnumpyを指していると思っていい。600を超える関数を揃えている。

元記事を表示

Pythonでフラグとかを活かして正規表現をわかりやすく書く

## 動機
青空文庫をスクレイピングして, 自然言語処理を行おうとしていましたが, ルビを振ってくれる\のタグが邪魔でした. そこで, 正規表現を活かして, わかりやすく\タグを漢字に直していきます.
以下では, まずコードの全体像を示し, 次に解説を行います.

## コード
“`eraseRuby.py
import re

def erase_ruby(text: str) -> str:
rubyre = re.compile(
r”””[\s\S]*?
(?P[\s\S]+?)[\s\S]*? # 漢字
(?P[\s\S]+?)[\s\S]*? # かな
“””,
re.VERBOSE
)
text = rubyre.sub(r”\g“, text)
return text
# 青空文庫収録の偽悪病患者
# https://www.aoz

元記事を表示

Python学んでみた 第4回(関数とラムダ〜例外処理)

# はじめに
初めまして!
エンジニアになって数年、今まで本を読むだけでしたが、もっとプライベートで楽しみながら成長したい!自分が学んだ足跡を残していきたい!と思い記事を書きました!
最終的には自在に開発できるようになりたいと思っています。:triumph:
いろいろな記事を参考にさせてもらっています。:bow_tone2:
その中でもこれってどういう意味?とかつまづいたところを念入りに書いていこうかと思います。:fist:

# 今回の目的
前回の続きです。

https://qiita.com/mr_noppo/items/c79cc6f959597ed18e0c

# 使用したものや事前準備
・Macbook Pro
・Python
・Anaconda
・jupyter notebook

# 主に参考にさせていただいた記事
https://opencv.org/university/

# Python
## 関数とラムダ
### 関数
ダブルクォーテーションで囲ったところはDocになります。関数もオブジェクトです。
“`python
def add(x,y):
“”

元記事を表示

AWS環境でAI関連のシステムのPOC(2)

# はじめに
写真からストーリーテリングを作成できればと思い、写真をインプットにキャプションを付けてくれるサービスを作成していきます。キャプションを付けてくれるサービスはReplicateの「BLIP-2」というモデルを利用していきます。

# アプリケーションの概要
PythonのWebアプリを開発する際に使うWebフレームワークであるDjangoを使い、画面からイメージをアップロードした時に、Replicateの「BLIP-2」というモデルを呼び出してキャプションを取得します。また、AWSのS3へのファイルアップロードも合せて行うようにしています。

■Djangoのフロー概要
“`mermaid
graph LR;
subgraph “サーバ”
URL\nPatterns–>Views;
Views–>Serializer;
Views–>Template;
Serializer–>Models;
Views–>Models;
Models–>D

元記事を表示

Variables – CS50’s Introduction to Programming with Python

CS50’s Introduction to Programming with PythonのShortsよりVariablesの内容を記載したいと思います。動画で勉強しながら、復習になど使っていただけたら嬉しいです。

まだ、下記の記事を読んでいない方は、先にそちらを読んだ方が、わかりやすいと思います。
[Return Values – CS50’s Introduction to Programming with Python](https://qiita.com/natsuki_natsuki/items/213c475ef089d8b2611f)

動画へは下記リンクよりアクセスできます。動画を見ながらまたは、復習として、この記事をご活用ください。
[Variables – CS50P Shorts](https://www.youtube.com/watch?v=MyWf3zyyvjc)

まず、[Visual Studio Code for CS50](https://cs50.dev/)にアクセスして、GitHubアカウントでログインします。
## ファイルを作成する
`

元記事を表示

PythonでアーカイブしたZIPファイル名をShift-JISにする

Pythonのzipfileライブラリはファイル名をUTF-8でエンコードするためWindowsのレガシーな解凍ソフトで解凍するとファイル名が文字化けします。ファイル名をShift-JISでエンコードする方法を紹介します。

※ これは2019-07-18に個人ブログで公開した記事を移植したものです。

## 世の中には UTF-8 で文字化けする解凍ソフトが残っている

2007年9月にZIPの仕様が追加され、エンコードをUTF-8に統一するための仕組みが完成してから、ZIPファイル名はUTF-8にエンコードすることがスタンダードになりつつあります。

https://support.pkware.com/home/pkzip/developer-tools/appnote

しかし、日本国内では、UTF-8に未対応の解凍ソフト(+Lhaca Lhaplusなど)を使っているユーザーが多くいます。(WindowsのエクスプローラーだけでUTF-8のZIP解凍できるのに)

## ファイル名を Shift-JIS でエンコードできるのか

全ユーザーを説得して各UTF-8未対応の解凍

元記事を表示

OTHERカテゴリの最新記事