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

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

ABC334(A~D)をPythonで解く

# 初めに

ABC334のA~D問題をPythonで解きました。

# A: Christmas Present

https://atcoder.jp/contests/abc334/tasks/abc334_a

コード

“`python
B, G = map(int, input().split())
if B > G:
print(“Bat”)
else:
print(“Glove”)
“`

# B: Christmas Trees

https://atcoder.jp/contests/abc334/tasks/abc334_b

解説がみんなスマートすぎるので僕がコンテスト中に書いた場合分け解法を紹介します。

もっとスマートな解法は[こちら](https://atcoder.jp/contests/abc334/editorial/8984)

まずはLとRからAを引いてやり、クリスマスツリーがMの倍数地点に立つようにします。

あとはLとRの間に立っているツ

元記事を表示

WinPythonを、WiX4で配置する。

この記事は「[Python実行環境を配布して、.NETアプリから利用する。](https://qiita.com/hiro_t/items/a2d67e183fbca0b8df3b)」への追記です。

# 目標
[WiX Toolset](https://wixtoolset.org/)で、[WinPython](https://winpython.github.io/)を、指定したフォルダに配置するセットアップファイルを作成

# 方法

`MSI Package`を作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132059/9578c9f8-025e-95c8-ff9d-bce42bdcfbc8.png)

`NuGet`で、`WixToolset.Heat`をインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132059/ca9b7b22-85aa

元記事を表示

WindowsにAnacondaをインストールして仮想環境を作るまで(備忘録)

## 参考1
https://www.python.jp/install/anaconda/windows/install.html

# Anacondaをインストールする
公式サイトからインストーラをダウンロードし、Anacondaをインストール。
インストール途中でチェックボックスの画面とインストール先フォルダの選択が出てくるが、特に変更せずNextを何回か押してインストール完了。

# インストール後の設定を行う
参考1どおりにコマンドラインの環境設定を行う。
“`bash
conda init
“`
PowerShell 実行ポリシーのRemoteSigned については
>・メールやインスタント メッセージ プログラムを含むインターネットからダウンロードされるスクリプトや構成ファイルには、信頼できる発行者からのデジタル署名が必要です。
>・インターネットからダウンロードされたものではなく、ローカル コンピューターに書かれたスクリプトにはデジタル署名は必要ありません。[^1]

とのことなので、参考サイトどおりに環境設定を行う。
“`bash
Set-Execution

元記事を表示

Pythonで「辞書でキーを指定して値を取得する」の動作を確認してみた

# 概要

Pythonで「辞書でキーを指定して値を取得する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/dictionary/index2.html

# 実装

以下のファイルを作成しました。
“`sample.py
mydict = {“JP”:”Japan”, “DE”:”Germany”, “FR”:”France”}
print(mydict[“DE”])
print(mydict[“FR”])
print(mydict[“JP”])

mydict = {“JP”:”Japan”, “DE”:”Germany”, “FR”:”France”}
#print(mydict[“BR”])

mydict = {“JP”:”Japan”, “DE”:”Germany”, “FR”:”France”}
key1 = “JP”
print(“キー:” + key1 + “、値:” + mydict[key1])
key2 = “FR”
print(“キー:” + key2 + “、値:” + mydi

元記事を表示

2024年最新版 – DjangoからGmailを送信

# 概要
2024年からGoogleでは「安全性の低いアプリへのアクセス」を許可することが
できなるくなるみたいですので、
これまでとは若干異なる方法でGmailを送信する機能を作成する必要があります。
この記事ではローカル環境から自身で用意したGmailから任意のアドレスへメールを送信する機能を実装します。

:::note info
バージョンなど
Django:3.2.6(4でも動作するかと)

OS:Mac OS

動作確認日:2024年1月2日
:::

# Googleアカウントの設定

Gmailを送信するためには、2段階認証をONにし、アプリパスワードを生成する必要があります。
アプリパスワードとは、Googleアカウントへログインする用のアカウントとは異なります。
https://myaccount.google.com/

上記のURLへ、メールを送信するアカウントでログインしてください。
ログイン後に、セキュリティタブから2段階認証を選択して、ONになっていない人は
Googleの指示に従い、ONにしてください。
![スクリーンショット 2024-01-03 0.

元記事を表示

Pythonの一言基礎用語集

各用語を一言でまとめ、分からない用語はクリックして調べられるようにしました。

# 用語集(terms)
##### 属性
・オブジェクトに付与されている、”オブジェクト.属性名”で参照される値

##### オブジェクト(object)
・属性や値とメソッドをもつデータ

##### クラス
・ユーザー定義[オブジェクト](オブジェクト)を作成するためのテンプレート

##### 関数
・呼び出し時に値を返す一連の文のこと

##### メソッド
・[クラス](クラス)の中で定義された[関数](#関数)

##### 引数(argument)
・[関数](#関数)や[メソッド](#メソッド)に渡す値のこと

# 参考文献
https://docs.python.org/ja/3/glossary.html

元記事を表示

【備忘録】本番環境での実行はGunicornを使うらしい。

# はじめに

仮想マシン(GCE)でFlaskアプリを実行するとき…、
な~んにも勉強していなかったので、以下のように実行していました。
“`
python3 main.py
“`
ですが、、本番環境では以下のように実行したほうがいいんですって。
“`
gunicorn -w 4 main:app
“`
その理由と、使い方だけ最低限まとめます。

# Gunicornを本番環境で使う理由
ずばり、「ワーカープロセスを設定して、処理能力を向上させる」。

ワーカープロセスの設定”ってのは、
「アクセスした人が入る部屋をいくつ設けますか」ってこと。
仮に”4″とした場合、4つの部屋が作られて、訪問者はその部屋のどこかに入る。

要は、訪問者の処理待ちを緩和できるんですね。

※:ワーカープロセスの設定は、マシンの性能に合わせて調整すべし。

# Gunicornの使い方
pipで簡単にインストールできます。

“`
pip install gunicorn
“`
そしたらあとはmain.py実行時に使うだけ
“`
gunicorn -w 4 main:app

元記事を表示

async/await 比較(C#, JavaScript, Python)

## メッセージループ

### C#

Dispatcher.Run()

“`C#
using System.Windows.Threading;

Dispatcher.CurrentDispatcher.InvokeAsync(() =>
{
// いろいろな処理…

// メッセージループを終了させる
Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal);
});

Dispatcher.Run();
“`

WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。

### JavaScript

自分で書く必要なし。

### Python

asyncio.run(最初に実行するasync関数)

“`python
import asyncio

async def main():
# いろいろな処理…
pass

asynci

元記事を表示

KaggleのDigit Recognizerで画像認識を学ぶ

Kaggleの[Digit Recognizer](https://www.kaggle.com/competitions/digit-recognizer)で画像認識を学びます。

Digit Recognizerは、手書き数字の画像を分類する、画像認識の入門コンペです。
私は最初の画像コンペにDigit Recognizerを選びました。

# ノートブックの作成
Digit Recognizerのサイトにアクセスします。

https://www.kaggle.com/competitions/digit-recognizer

CodeタブからNew Notebookボタンをクリックし、新しいノートブックを作成しました。

# ライブラリの読み込み
“`Python
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
“`

# データの読み込み
pandas.dataframeを用いて、学習データ、テストデータ、提出データをデータフレームと

元記事を表示

TIL

> AtCorder

ABC 165 Aを実施
### pythonメモ

“`python
#existはbooleant変数として使える
exist = False
“`
“`python
#printの中にif文を書く
#この場合existがTrueでOK
print(“OK” if exist else “NG”)
“`

元記事を表示

BlenderのPythonにおけるアクティブオブジェクトについて

## アクティブオブジェクとは

Blenderのアクティブオブジェクトは、処理対象あるいは処理結果のオブジェクトです。
Pythonでは、現在のコンテキスト(`bpy.context`)を使って、通常、下記の3通りの方法で取得できます。

| コード | 意味 |
| :———————————— | :————————- |
| bpy.context.active_object | アクティブオブジェクト |
| bpy.context.object | コンテキストのオブジェクト |
| bpy.context.view_layer.objects.active | アクティブオブジェクト |

ここでは、この3つの違いを紹介します。

## 準備

Blenderを起動して、立方体(Cube)とUV球(Sphere)を

元記事を表示

Pythonで特定口座にあるオルカンを新NISAに買い換えるタイミングを分析してみる

# 目的
現在特定口座で積み立てているオールカントリー投資信託を新NISA口座に移し替えたい。実際移し替えることはできないので、投資信託を売って、買うことになる。積み立て枠は毎月10万売って10万買えば良い。では成長枠の240万はいつ売って、いつ買えば良いのか?
「セルインメイ(5月に売ってどこかに行け、セント・レジャー・デーまで戻ってくるな)」の格言通り5月に売れば良い?

# MSCIオールカントリーワールドインデックスの一年の値動きを分析してみる

MSCIオールカントリーワールドインデックス(MSCI ACWI)の一年の値動きをYahoo Financeから取得したデータを元に分析してみることにする。
2008年からのデータになっているのはYahoo Financeに2008年より前のデータがないからだ。ちなみに2008年というとリーマンショックの年で、ここから各国中央銀行はじゃぶじゃぶ金融緩和を始め世界株は上がり調子である。アテになるかどうかはわからない。

## 実際のコード

### 1月を基準とした各月の割合を年ごとにプロットしてみる
“`python
import

元記事を表示

Raspberry Pi のUARTを使う場合の注意点

# はじめに
ラズベリーパイ(Raspberry Pi / Raspberry Pi Zero) のUARTをPythonで使う際、UARTのポートが出現せずハマったのでまとめる。

参考にしたサイト
https://www.ingenious.jp/articles/howto/raspberry-pi-howto/gpio-uart/

## UARTの設定
ラズベリーパイでUARTを使う場合はシリアルポートを有効にする。シリアルコンソールと共用しているのでUARTを使う場合はシリアルコンソールをOFFにする。
[設定]→[Raspberry Piの設定]→[インターフェース]

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1299802/5c6bc976-b25d-20d6-3af2-1f3315d59df6.png)

# ハマった点
 ポートとしては “`/dev/ttyAMA0“` がでてきたので選択したが動作しない。ラズベリーパイのUARTを使う場合は、miniUAR

元記事を表示

ABC320(A~D)をPythonで解く

# 初めに

ABC320のA~D問題をPythonで解きました。

https://atcoder.jp/contests/abc320

# A: Leyland Number

https://atcoder.jp/contests/abc320/tasks/abc320_a

`x`の`y`乗は“`x**y“`で計算できます。

コード

“`python
A, B = map(int, input().split())
print(A**B+B**A)
“`

# B: Longest Palindrome

https://atcoder.jp/contests/abc320/tasks/abc320_b

`S`の制約が小さいので部分文字列の初めと終わりで全探索しても間に合います。

文字列`s`の回文判定は、文字列を左右反転させたもの“`s[::-1]“`と`s`が一致するかどうかで可能です。

また、長さ一文字の部分文字列は常に回文です。

元記事を表示

GitHub Actionを初めて使って、Pythonをリリース用資産に固めるまでやってみた

明けましておめでとうございます。
今年は、社会人4年目ですが、「技術力 × PM」として、飛躍したいですね。

なんだかんだ、GitHub Actionに触れたことがなかったので、今日はその辺を触れていこうと思います。

この記事で触れる成果物は[ここ](https://github.com/mitsumizo/practice_github_action/blob/develop/.github/workflows/develop_artifact_make.yml)にあります。

下記ができるようになるのが目標である。

“`mermaid
graph TD;
A(チェックアウト)–>B(仮想環境にPythonのセットアップ)
B–>C(Pythonの仮想環境を作成)
C–>D(ライブラリをインストール)
D–>E(リリース用のZip化)
“`

## この記事の流れ

1. GitHub Actionの概念に少し触れる
2. 成果物の説明を少し

という流れで進んでいきます。

## GitHub Actionの概念

下記が各概念の関

元記事を表示

【Python】スクレイピング tableのパース

# 概要

BeautifulSoupでテーブルをパースしてpandas.DataFrame形式で取得。
できるだけ様々な状況に対応できるように…配慮してます。

# サンプル
[Wikipediaの東京都のページ](https://ja.wikipedia.org/wiki/%E6%9D%B1%E4%BA%AC%E9%83%BD#%E5%9C%B0%E7%90%86:~:text=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%86%85%E5%90%84%E5%9C%B0%E3%81%AE%E6%B0%97%E8%B1%A1%E3%83%87%E3%83%BC%E3%82%BF%EF%BC%88%E5%87%BA%E5%85%B8%EF%BC%9A%E6%B0%97%E8%B1%A1%E5%BA%81%E3%83%BB%E6%B0%97%E8%B1%A1%E7%B5%B1%E8%A8%88%E6%83%85%E5%A0%B1%EF%BC%89)にちょうど良い複雑なテーブルがありました。

![スクリーンショット 2023-09-30 20.17.05.png](h

元記事を表示

Pythonで「辞書を作成する」の動作を確認してみた

# 概要

Pythonで「辞書を作成する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/dictionary/index1.html

# 実装

以下のファイルを作成しました。
“`sample.py
x = 1
y = “Desktop”
mydict = {x:y}
print(mydict)

mydict = {1:”Desktop”}
print(mydict)

x = 1
y = “Desktop”
mydict = {x:y}
print(mydict)
y = “Movile”
print(mydict)
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
{1: ‘Desktop’}
{1: ‘Desktop’}
{1: ‘Desktop’}
{1: ‘Desktop’}
“`

# まとめ

何かの役に立てばと。

元記事を表示

【初めてのWebアプリ開発】 Flaskを用いたTODOアプリ

所属するコミュニティで初心者向けWebアプリハンズオンとして、Flaskを用いてTODOアプリを作りました。
その時の資料を一部修正して共有します。
これからWebアプリ開発を学ぶ方や、ハンズオン担当者の方の参考になれば幸いです。

:::note
対象
Python, HTML, CSSの基本を学んだ初心者
:::
:::note
目標
簡易的なWebアプリを作成する
:::

# Webアプリケーションについて
Webアプリは大きく2つの分野に分けられます。
__フロントエンド・・・ユーザーが見える部分・直接操作する部分__
__バックエンド ・・・ユーザーから見えない部分・直接操作できない部分__

電卓アプリを例に挙げると、
電卓アプリのデザインを作ったり、数字を入力するのがフロントエンドで、入力された値を処理するのがバックエンドといった形になります。
また、計算結果を保存したい場合やユーザー情報を保存したい場合はデータベースを使用します。
## データベースとは
データを効率的かつ整理された方法で保存・管理するシステムのこと

アプリ開発では大量のデータが必要になります

元記事を表示

ローカル環境で生成AIモデルの回答結果を得る

# 生成AI=ChatGPT?
API経由で生成AIを呼び出すWebアプリを作ろうと思った時に、今まではOpenAIのAPIを呼び出していたが、もし思うようにOpenAIのAPIが使えなくなると今後Webアプリ開発などで支障が出る可能性がある。
そこで、ローカル環境でLLMモデルを使う方法について整理した。

# TL;DR
1. WSL2環境(ubuntu)にllama-cpp-pythonを入れる。
2. モデルファイル(gguf)をhuggingfaceからダウンロードする。
3. pythonでLLMモデルにクエリを投げるコードを書く。

### 実行環境用意
実行環境はWSL2上のubuntuで、python3が入っている。
以下コマンドでllama-cpp-pythonを入れる。
“`
pip3 install llama-cpp-python
“`
### モデルファイルのダウンロード
[huggingface](https://huggingface.co/)のサイトからモデルファイルをダウンロードする。拡張子が「.bin」でなく、「.gguf」であるものをダウンロ

元記事を表示

日本語LLMでジョジョっぽい言葉を作成してみた

# はじめに

最近の生成AIの発展は何か面白い文章をつくるといったエンタメにも広く活用できると考え,日本語LLMを利用してジョジョっぽい文章を作成してみました.そもそもジョジョとはですが,独特な言い回しを特徴とした作品で,これが元となったセリフがネットミームなどの形で使われているのをよく見ます.このセリフは一種の方言のような性質もあると考えられ「標準語→ジョジョっぽい言葉」という変換をしてみたいというのがモチベーションです.

投稿に当たりこれまでのQiita記事での動向を調べてみましたが,ジョジョ×言語生成はこれまでいくつか試されているようでした.こちらもぜひ読んでみると面白いと思います!
– [LSTMでジョジョに奇妙な名言を制作してみた](https://qiita.com/tsekine2/items/e6168a8748e85786d5a1)
Transformer以前の時系列モデルLSTMによるジョジョに出てくるセリフの次単語予測
– [ジョジョの奇妙なGPT-2](https://qiita.com/maskot1977/item

元記事を表示

OTHERカテゴリの最新記事