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

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

【超初心者向け】Chat GPTを使って30分でWebアプリ作成

プログラミング超初心者のだいきです。
2024年5月から、Chat GPTを使用して、スマートフォン向けの簡単なWebアプリを作成中で、現在5か月目です。
ようやくデプロイまで到達したため、今までの手順や失敗点を記録として残していこうと思います。
現状多くの理解不足がありますが、やさしく訂正いただけたら幸いです。

## 1. この記事で伝えること。
Webアプリを作成しようとしている超初心者に対し、Chat GPTを使ってコード作成からローカル環境で動作させるまでの流れを共有する。
(読むためにかかる時間:3分程度)

## 2. 作成中のWebアプリ「寿司ネタ 1000円ガチャ」
まず私が現在開発中の「寿司ネタ 1000円ガチャ」を見て、改善点を教えてください。
リンク:https://sushigacha.com/

## 3. 作成手順
### (0) 準備 (20分)
以降の手順には、VS CodeとPythonのインストールが必要のため、Chat GPTに以下質問して教えてもらってください。

元記事を表示

Docker環境でseleniumを作動させる

## はじめに

こんにちは、Mottyです。
今回の記事では、SeleniumをDockerで動かす方法について詳しく解説します。

# selenimについて

Seleniumは、Webアプリケーションのテスト自動化やウェブスクレイピング、RPA構築などに非常に便利なツールですが、環境構築には手間がかかることあります。Dockerを使用することで、これらの課題を解決し、効率的にセットアップすることが可能です。

# Dockerについて

Dockerは、アプリケーションとその依存関係をコンテナとしてパッケージ化する技術です。このコンテナ化により、環境の一貫性が保たれ、異なるプラットフォーム間でも同じ環境で動作させることができます。本記事では、SeleniumをDocker環境でセットアップする手順をわかりやすく説明し、テスト自動化やデータ収集の作業を効率化する方法をお伝えします。

# セットアップ手順

### 1.プロジェクトフォルダの作成
docker-seleniumを作成します。
“`bash
mkdir docker-seleium
“`

### 2.dock

元記事を表示

scratchで擬似的なpython

## scratchで模擬的なpythonを作っている話
https://scratch.mit.edu/projects/1074063277/
(↑)

とにかく暇だったのと、scratchで調べても改善できそうなものばかりだったのでならば自分が作ろう!と思って作り出したのですがめんどくさい事だらけでした()例えば、print(2+2*2)のようなものだと計算の順序を合わせないといけなかったり、scratchだと反応させれないキーなどなどでとても苦戦しています()

元記事を表示

相対パスと絶対パスの違いを理解しよう!【初心者向けファイルパス入門】

# はじめに

ファイルを操作する際、「相対パス」と「絶対パス」という概念に出会うことがよくあります。しかし、初めての方にとってはその違いや使い分けが分かりにくいかもしれません。この記事では、これらの概念をわかりやすく解説します!

## 1. パス(Path)とは?

**パス**は、コンピュータ内の特定のファイルやフォルダの場所を指定するための情報です。ファイルシステムは、階層構造でディレクトリ(フォルダ)やファイルを整理していますが、パスを使うことでファイルの場所を一意に特定できます。

パスには大きく分けて2つの種類があります:
– **絶対パス** (Absolute Path)
– **相対パス** (Relative Path)

## 2. 絶対パスとは?

**絶対パス**は、システムのルートディレクトリ(Windowsならドライブのルート、LinuxやmacOSなら`/`)からファイルやフォルダまでの完全なパスを指します。これは、どこから参照しても変わらない「ファイルの正確な位置」を指定する方法です。

### 絶対パスの例

– **Windo

元記事を表示

Pandas 基礎操作 逆引きガイド【これをしたい時は?】

## はじめに

Pandasを使って「〇〇したい」という具体的な目的に対して、どう操作すればよいのかを逆引き形式でまとめました。これさえ見れば、よくあるPandas操作にすぐに対応できるはず!

## 1. データの準備

### 1-1. CSVファイルを読み込みたい
“`python
df = pd.read_csv(‘ファイル名.csv’)
“`

### 1-2. Excelファイルを読み込みたい
“`python
df = pd.read_excel(‘ファイル名.xlsx’)
“`

### 1-3. データフレームをCSVファイルに書き出したい
“`python
df.to_csv(‘保存先.csv’, index=False)
“`

### 1-4. データフレームをExcelファイルに書き出したい
“`python
df.to_excel(‘保存先.xlsx’, index=False)
“`

## 2. データの確認

### 2-1. 最初の数行だけ確認したい
“`python
print(df.head()) # デ

元記事を表示

Tkinterを使ってみた

pythonの標準ライブラリ `Tkinter`
これを使うと簡単にデスクトップアプリが作れるらしい。

というわけで使ってみた。

できたもの
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840203/cd0ea26d-8c41-ad2d-f9d9-d95ae2e1efa0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840203/65081569-29cb-e91f-f39e-5b62a98b4e23.png)

## コード

“`python
import tkinter as tk

root = tk.Tk()

root.title(“簡単なデスクトップアプリ”)

root.geometry(“300×200″)

label = tk.Label(root, text=”Hello, World!”)
label.pack(pady=20)

d

元記事を表示

今年からLINEでSALE中だよと毎週教えてもらう

## 目次
* [概要](#概要)
* [構成](#構成)
* [実装内容](#実装内容)
* [実行結果](#実行結果)
* [感想](#感想)
* [参考資料](#参考資料)

## 概要
DMM.comで商品を買い始めてから、かれこれ10年ほど経過いたしました。
10年で延べ十数万ほど購入させていただき、いろいろとお世話になってきました。
しかし、今年から出費を抑える必要が出てきましたので、SALE中の商品以外は購入しないという**縛り**を今年から課すことになりました。

今回はそんな**縛り**の中でも人生を**enjoy**していくため、欲しい商品がSALE中であることを通知するツールを作成し、SALEを見逃すことなく購入できるようにした話です。
本ツールは[Github](https://github.com/he23inw3/dmm-info-management)に公開しております。

## 構成
汚くて申し訳ないですが、ざっくり以下のような構成になっております。
![cloud.drawio.png](https://qiita-image-store.s3.ap-

元記事を表示

ViewSetsとは? | Django REST Framework

# ViewSetsとは?
[参考:公式ドキュメント](https://www.django-rest-framework.org/api-guide/viewsets/)
Django REST FrameworkのViewSetは、いくつかのビューの処理を1つのクラスにまとめています。

例えば、データを一覧表示したり、新しいデータを作成したり、既存のデータを更新したりする処理を1つのクラスでまとめて行えます。
普通のビューと違って、GETやPOSTなどのメソッドを使わず、`list()`(一覧)や`create()`(作成)などのアクションを使います。
URL設定はas_view()メソッドを使って行い、通常はルーターを使用してViewSetを登録します。

例えば、以下のようにUserViewSetを定義して、その中につけたい処理をメソッドとして追加して使います。

“`python
class UserViewSet(viewsets.ViewSet):
def list(self, request):
pass # ユーザー一覧の取得

元記事を表示

Django REST FrameworkのViewSetの種類と、使い分け。GenericViewSet vs ModelViewSet

# ViewSetは4種類ある
Django REST FrameworkのViewSetには4種類(ViewSet、GenericViewSet、ModelViewSet、ReadOnlyModelViewSet)があり、それぞれ異なるレベルの機能を持っています。
[公式ドキュメント:API Reference
](https://www.django-rest-framework.org/api-guide/viewsets/#api-reference)

## ViewSet
基本的なViewSetクラスです。このクラス自体はアクションの実装を持っていませんが、APIポリシー(認証や権限管理)を制御するための属性を持ちます。ユーザーがクラスを拡張し、アクションを実装する必要があります。

## GenericViewSet
ViewSetを拡張したクラスで、get_querysetやget_objectのような汎用的なメソッドを提供します。デフォルトではアクションはありませんが、ミックスインを追加してアクションを定義できます。

## ModelViewSet
GenericV

元記事を表示

Pythonのargparse.ArgumentParser.add_argumentでEnumをchoicesする

# 動機
PythonでCLIスクリプトを作成するとき、起動時のオプション解釈には [argparse](https://docs.python.org/ja/3/library/argparse.html) を使う。
argparse では引数に制限を加えたい場合、 choices オプションが使える。

~~~python
from argparse import ArgumentParser
p = ArgumentParser()
p.add_argument(‘mode’, choices=[‘walk’,’run’,’stop’])

p.parse_args([‘-h’])
# positional arguments:
# {walk,run,stop}

p.parse_args([‘walk’])
# Namespace(mode=’walk’)

p.parse_args([‘stand’])
# python: error: argument mode: invalid choice: ‘stand’ (choose from ‘walk’, ‘run’,

元記事を表示

streamlitで現在ページの再トリガーを行う方法が変わっている

# 背景
Hugging Face Spacesでstreamlitのアプリをデプロイしてみたら、現在のページの再実行をトリガーする`st.experimental_rerun`でAttribute Errorのエラーが発生し、streamlitには`st.experimental_rerun`は存在しない旨が告げられてしまった。
しかしローカルでこのアプリの動作確認を行ってみると、普通に`st.experimental_rerun`の部分を問題なく通過する。
まあまず考えるのはローカルとHugging Face Spacesでのstreamlitのバージョンが合っていないのだろうなというところである。
しかし、Hugging Face Spacesでstreamlitアプリをデプロイする時には、`requirements.txt`に記載されている依存ライブラリをインストールしてくれるはずだから、streamlitのバージョンは合っているはずと思った。

# 結論と解決策
[`st.experimental_rerun`はstreamlitのバージョン`1.38.0`から廃止されて](

元記事を表示

知財のあれこれをPythonで何とかする

### 段落番号を何とかする
明細書の段落番号(【0001】、【0002】・・・)をリナンバーするプログラムです。
なお半角→全角変換のためライブラリ(mojimoji)を使っていますので、プログラム実行前にインストール(pip install mojimoji)が必要です。

“`python:Program1.py
import re
import mojimoji
import unicodedata

#part1 前処理
meisai = []
ms_base = []
f = open(‘meisai.txt’, ‘r’)#ANSIで保存すること
ms_base = f.read()
f.close()
ms_base=unicodedata.normalize(“NFKC”, ms_base)#請求項数の数値を半角にする
meisai = re.split(“【”,ms_base)#段落ごとに分割する
meisai.pop(0)
with open(‘renum.txt’, ‘w’) as f:#書込み先ファイルをクリアする
print(“”, file=f)

元記事を表示

Strategies to Improve Your Design Skill

What are the best strategies to improve your design skills? Although graphic design is a fantastic sector, it is always changing and developing. This implies that sometimes graphic designers may feel as if their graphic design abilities are no longer current and that they have been left behind in the business. Does it sound very familiar? Do not panic; all you have to do is return your design abilities to their previous brilliance! Therefore, here are many strategies to hone your graphic design

元記事を表示

LangChainとNeo4jでシステム連携図を自動生成する方法(3)

![aozora.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3784222/28600395-305e-c9dd-257e-c338c12cdbd2.jpeg)

# はじめに
前回と前々回では、文章と画像をインプットとしてNeo4jでグラフを描画しました。それぞれ一定の成果は得られたものの、商用利用に耐えうる精度には達しませんでした。

今回、新たに考えた方法としては、Excelのシェイプ(円・四角・線)を読み込み、それをNeo4jで活用することです。シェイプを用いれば、線で繋がっている始点と終点のシェイプを特定でき、その情報を基に、より精度の高い「システム連携図」を作成できると思っています。

もちろん、「単にExcelで作成した図をNeo4jに移しているだけでは?」という懸念もありますが、まずは精度を確認してから、その先の改善を検討することにしました。

# プログラム概要
当初は、次のような流れを想定していました。

1. PythonでExcelのシェープ群を読み込み、リレーションの結果を

元記事を表示

理工系数学と計算科学の基礎

https://www.amazon.co.jp/%E7%90%86%E5%B7%A5%E7%B3%BB%E6%95%B0%E5%AD%A6%E3%81%A8%E8%A8%88%E7%AE%97%E7%A7%91%E5%AD%A6%E3%81%AE%E5%9F%BA%E7%A4%8E-%E6%9D%BE%E6%9C%AC-%E8%81%A1/dp/4485301214

P7
“`
import numpy as np
from scipy.optimize import minimize

# Define the function A with respect to x and t
def A(x, t):
# Example function, modify this based on the actual problem
return x[0] * np.exp(-x[1] * t) + x[2]

# Define the partial derivatives of A with respect to each x
def partial_derivati

元記事を表示

Pythonの`print`と`logging`の違い 実例を交えて徹底解説

# Pythonの`print`と`logging`の違い、実例を交えて徹底解説

Pythonを学び始めると、最初は`print`を使ってプログラムの動作を確認することが多いと思います。実際、私もその方法で多くのデバッグを行っていました。しかし、コードが複雑になり、運用を考えた時に、`print`では限界を感じる瞬間が来ました。

その時に出会ったのがPythonの`logging`です。この記事では、`print`と`logging`の違いについて、初学者の方にも分かりやすいように実例を交えながら説明していきます。`logging`を使うことで、コードの管理やデバッグがどれだけ効率的になるかを一緒に学んでいきましょう。

## `print`だけでは不十分?デバッグの限界

初学者の方であれば、`print`を使って変数の値やプログラムの動作確認を行うことが多いでしょう。私も最初は`print`を使ってコードの至るところにメッセージを表示していました。例えば、こんな感じです。

“`python
print(“プログラム開始”)
x = 10
print(f”xの値は: {x}

元記事を表示

LeetCode 1011. Capacity To Ship Packages Within D Days

## はじめに

勉強会でLeetCodeの問題を解いてきました。

https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/description/

## 問題文

A conveyor belt has packages that must be shipped from one port to another within `days` days.

The $i^{th}$ package on the conveyor belt has a weight of `weights[i]`. Each day, we load the ship with packages on the conveyor belt (in the order given by `weights`). We may not load more weight than the maximum weight capacity of the ship.

Return the least weight capacity

元記事を表示

Pythonに負けないC#言語で作った演算

 C#がPythonのnumpyというやつに素因数分解で、計算可能な桁数の面で負けたので、三万桁計算できるプログラムを作っています。

# とりあえず加減算を計算できるようにする
 乗算や除算をするときは、加算と減算を使うので、それを計算可能にする。
“`csharp:Calc30000.cs
internal class Calc30000
{
public static string ADD(string _a, string _b)
{
sbyte[] Aa_bytes = [];
sbyte[] Ab_bytes = [];
if (_a.TrimStart(‘-‘).Length > 30000 || _b.TrimStart(‘-‘).Length > 30000) return “0”;
if (_a is “”) _a = “0”;
if (_b is “”) _b = “0”;
if (!_a.StartsWith(‘-‘) && !_b.St

元記事を表示

Pydanticの`from_attributes`とは?

## 概要

Pydanticのオブジェクトは、キーワード引数を使ってクラスから作成できます。
また、クラスの`model_validate()`を使うと、辞書やオブジェクトから作成できます。

このとき、クラスの`model_config`に`from_attributes=True`があるかないかで、変換元に使えるオブジェクトが変わります。

## 説明

2種類のクラスを考えましょう。

| クラス | 特徴 |
| :—– | :———————————- |
| User | from_attributes=False(デフォルト) |
| UserFA | from_attributes=True |

これらのクラスは、次のようにオブジェクトを作成できます。

| 構築方法 \ 引数 | 自クラスのオブジェクト | 他クラスのオブジェクト | 辞書 | キーワード引数 |
| :—————-

元記事を表示

[App Service] Python環境でrequirements.txt通りにインストールされない不具合の解決方法

## 概要

Azure App Service に Python (Flask) アプリをデプロイしたときに、`RuntimeError: eventlet worker requires eventlet 0.24.1 or higher`のエラーが生じてアプリを起動させることが出来ませんでした。

## 直面した問題

Webページを開くとApplication Errorが表示されました。ログストリームを確認すると、以下のようなエラーとともにアプリが停止していたことが確認されました。

“`
Traceback (most recent call last):
File “/opt/python/3.10.14/lib/python3.10/site-packages/gunicorn/util.py”, line 111, in
mod = importlib.import_module(‘.’.join(components))
File “/opt/python/3.10.14/lib/python3.10/importlib/__init__

元記事を表示

OTHERカテゴリの最新記事