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

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

スーパー鳩時計

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__cuckoo_clock

素直に書くと
“`py
for x in range(24):
for y in range(60):
if ((x + y) % 3 == 0 and (x + y) % 5 == 0) or (x + y) == 0:
print(‘FIZZBUZZ’)
elif (x + y) % 3 == 0:
print(‘FIZZ’)
elif (x + y) % 5 == 0:
print(‘BUZZ’)
else:
print()
“`

3で割り切れるかつ5で割り切れる数、かもしくは0もx+yでというやつ。
とりあえず倍数をあげてみます
3 6 9 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60

元記事を表示

Flask-APSchedulerでadd_jobしようとしたらunexpected argumentで躓いた話

Flaskを利用してマイクロサービスを作っていますが,ちょっと定期的な処理を実装しようとして躓いたので情報共有

## 環境
環境は以下の通り
Python: 3.9.18
APScheduler: 3.10.4
Flask: 3.0.1
Flask-APScheduler:1.13.1

docker container(python3.9ベース)内にpip経由でライブラリを入れて作った環境で動かしてます

## やろうとしたこと
“`Python:test.py
from flask import Flask
from flask_apscheduler import APScheduler

def func1():
pass # 関数の内容は関係ないので

scheduler = APScheduler()

app=Flask(省略)

scheduler.init_app(app)

scheduler.add_job(func1, ‘cron’, min=15)
“`
こちら[公式](https://apscheduler.readthedocs.io/en/l

元記事を表示

ソーラーパネルの稼働状況の出力

# データの取得
ダッシュボード製作にあたり、必要な情報を取得しました。
自宅では、ソーラーパネルを設置しており、ポータルサイトから動作状況を確認できます。

https://ctrl.kp-net.com/settingcontrol/login

で、ログインすると、下記のような画面が表示されます。
![スクリーンショット 2024-01-30 113530.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3675614/e5397df1-d75d-3072-36a8-b6182479ed60.png)

ここに、ログイン、スクレイピングして、必要な数値を出力することを目的としました。

# ログインに必要なペイロード
Chrome上ログイン画面で、F12でなにが送信されているのか調べました。
ID、PASSのほか、非表示のcsrfの入力が必要でした。
最終的には、HTMLを見たら、どんな形でブラウザから受け取っているのかわかりました。

# csrfの壁
認証には、アクセス毎に変わるワンタイムパスワ

元記事を表示

log2

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__log2

素直にこの通りに解きましたが
これだと、掛け算がオーバーフローしてエラーになる可能性があるそうです。
たしかにそれもそうか。
log2だと天文学的な数値になるとか学生の時に聞いたことがあるし。

“`py

N = int(input())
sum = 1
for i in range(1,N+1):
sum *= i

cnt = 0
while sum > 0:
if sum % 2 != 0:
break

sum //= 2
cnt += 1

print(cnt)

“`

で、再度見てみると。

たとえば4だとすると
1 * 2 * 3 * 4 は 24で、2で割り切れるのは3回。
要素ごとに2で割れるか調べてみると
1 * 2 * 3 * (2 * 2)
こうなります。2が3個あるので、3回割れることになる。
これを応用すれば良さそうです。

“`py

N =

元記事を表示

多原子イオンを点置換した新しい結晶構造作成ログ(三角錐形・平面三角形編)

### 複数の多原子イオンに対して,点置換するプログラムを実行
“`terminal
time ./do_mk_polyatomic_ion_replaced_point_poscar_for_trigonal_pyramidal_planar_shape.sh
“`

target_ion_name: CO3
central_atom_symbol: C
neighboring_atom_symbol: O
bond_length_lower_end: 0.99
bond_length_upper_end: 1.66
target_npy_p: ../get_some_ion_contained_pos_folder_p_list/CO3_contained_poscar_folder_path_list_ver2.npy
os.path.exists(target_npy_p): True
100%|█████████████████████████████████████████████████████████████████████████████████████████

元記事を表示

レガシーなWEBサイトの全ファイルににGTMのタグを追加したい

## 目的
大量のHTML、PHPファイルで構成されたWEBサイトにGoogleタグマネージャーを一括でインストールしたい。

## 経緯

htmlやPHPで構成されたレガシーなWEBサイトに大量のファイルが。
それらのファイルにはヘッダーやフッターなどの共通部分がモジュール化されておらず。
その為、googleタグマネージャーなどの全ページに設定したタグは一つずつ職人の手で手作業で更新する必要が。
地道に数十ファイルを更新した結果、気が滅入ってきたので、どうにか一括で更新するべく一念発起。

## 成果物

指定したフォルダ内の指定した拡張子のファイルの中から、指定した文字列を含むファイルに対して置き換え処理をするシンプルなものができました。
同じ文字を置き換えするファイルが大量にある場合に有効。

“`python3
import os

# ファイルの中に指定した文字列を含むか確認
def check_string(file_path):
with open(file_path, ‘r’, encoding=’utf-8′) as file:
data

元記事を表示

多原子イオンを点置換した新しい結晶構造作成ログ(四面体形編)

“`terminal
time ./do_mk_polyatomic_ion_replaced_point_poscar.sh
“`

target_ion_name: AlCl4
central_atom_symbol: Al
neighboring_atom_symbol: Cl
bond_length_lower_end: 1.80
bond_length_upper_end: 2.70
target_npy_p: ../get_some_ion_contained_pos_folder_p_list/AlCl4_contained_poscar_folder_path_list_ver2.npy
os.path.exists(target_npy_p): True
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 170/170 [00:05<00:00

元記事を表示

素数の個数

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__prime_number_easy

全然分からなかったですね。。。
これで行けるかなと思ったんですが。

“`py
N = int(input())
cnt = 1 #2も素数のため
for i in range(3,N+1):
for j in range(2,10):
if i % j == 0:
continue
else:
cnt += 1

print(cnt)

“`
とりあえず素数って
1とその数以外割り切れない数ってやつですよね。

とりあえず2以上なのは間違いないでしょう。
条件にも入ってますし。

とりあえず10まで考えてみます。

2 = 1, 2 と2つしかないので素数。
3 = 1, 3 と2つしかないので素数。
4 = 2で割り切れちゃうので素数ではない。
5 = 1, 5 と2つしかないので素数。
6 = 1, 2, 3, 6と 2も3

元記事を表示

I created an app with Django [Diary app]

## 1. Create a project

“`
django-admin startproject [project]
cd [project]
python3 manage.py startapp [project]
“`
① Create urls.py in diary file
“`diary/urls.py
from django.urls import Path
from .import views
app_name=’diary’
urlpatterns=[
path(”,views.index,name=’index’),
]
“`
② Edit views.py in diary file

“`diary/views.py
from django.shortcuts import render

def index(request):
return render(request, “diary/day_list.html”)
“`
③ Create templates/diary file in diary file and cr

元記事を表示

多原子イオンを点置換した新しい結晶構造作成例(四面体形・三角錐形・平面三角形)

### 現在地
“`terminal
pwd
“`
/mnt/ssd_elecom_c2c_960gb/scripts/mk_polyatomic_ion_replaced_point_poscar

### 使い方の確認(四面体形)
“`terminal
python3 do_mk_polyatomic_ion_replaced_point_poscar_for_tetrahedral_shape.py -h
“`
usage: do_mk_polyatomic_ion_replaced_point_poscar_for_tetrahedral_shape.py
example: python3 do_mk_polyatomic_ion_replaced_point_poscar_for_tetrahedral_shape.py NH4 N H 0.82 1.24 ../get_some_ion_contained_pos_folder_p_list/NH4_contained_poscar

元記事を表示

プログラミング特化LLMであるStable Code 3BをMacBook(M2)で動かしてコードを書いてもらった

[Supership](https://supership.jp/)の名畑です。[勇気爆発バーンブレイバーン](https://bangbravern.com/)が平成初期のアニメに触れまくった私のツボにはまりまくりなのですが、若い方々にも刺さる内容なのかが興味あります。

## はじめに

画像生成モデル[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の提供元である[stability.ai](https://www.stability.ai/)が「[Stable Code 3B – エッジでのコーディング](https://ja.stability.ai/blog/stable-code-3b)」という記事を公開していました。

> – Stable Code 3Bは、30億パラメータを持つ大規模言語モデル(LLM)であり、CodeLLaMA 7bのような2.5倍の大きさを持つモデルと同等のレベルで、正確で応答性の高いコード補完を可能にします。
> – MacBook Airのような一般的なノートパソコンでGP

元記事を表示

SQLAlchemy(非同期)のCRUD

# 1.はじめに
最近、PythonのWebフレームワークであるFastAPIを使っています。
SQLAlchemyのORMapperを使って、PostgreSQLのデータベースを操作するプログラムを書きましたので、備忘録も兼ねて本記事に実装方法を残します。

今回は、以下のようなテーブルを題材にします。

### Testテーブル
| カラム名 | 型 | 備考 |
|:-:|:-:|:-:|
|id|integer|PK,Autoincrement|
|name|character(10)||
|created_at|date|Default: 現在時刻|

### Model
“`models/test.py
from sqlalchemy import Column, Integer, String, DateTime
from datetime import datetime
from database.database import Base

class Test(Base):
__tablename__ = “test”
id = Column(Int

元記事を表示

二次元配列の行ごとの和

https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__row_sum

ここはCランクだったのですが
なかなか苦手な分野だったので
じっくりします
複数ループを使う場面なのですが
ここでリスト内包を複数使ってます
ここらへんがどういう仕組かわかってないので
確認します

“`py
a = [[int(i) for i in input().split()] for _ in range(n)]

# 下と同じ
a = []
for _ in range(n):
row_int = [] # 空のリストを作成して整数に変換した要素を追加
for i in input().split():
row_int.append(int(i))
a.append(row_int) # リストに追加
“`
こういうことですね。
これもかけなくちゃ‐

ちなみに完全解はこちら

“`py

n, k = map(int, input().split())
a =

元記事を表示

PyPIの2段階認証とAPIトークン使用が必須化されました

# 概要

Pythonで自作のパッケージを作成した場合、以下のようにPyPIを使用して公開するのが一般的かと思います。(`pip install パッケージ名`でインストールできるアレです)

https://qiita.com/c60evaporator/items/e1ecccab07a607487dcf

 2024年1月より、PyPIにおける2段階認証とAPIトークン使用が必須化されました。これに伴い、**従来のユーザ名/パスワードによる認証**(`.pypirc`にユーザ名とパスワードを記載する方法)では**PyPIへのパッケージアップロードができなくなりました**。

 上記変更に対応して、APIトークンによるパッケージアップロードを行う方法については、以下「実践」を参照ください

## 参考リンク

公式詳細は以下リンクに記載されております

https://blog.pypi.org/posts/2024-01-01-2fa-enforced/

## 実践

以下記事の内容を、2段階認証とAPIトークンを使用する方法に更新しております。私の環境では以下手順でアップロ

元記事を表示

Wikipediaに偶然現れたポケモンの名前を検出する

# 概要
Wikipediaに偶然現れたポケモンの名前を検出します。
「姉**さん、ど**こへ行くの」(じめんポケモンの「サンド」が偶然登場している)みたいなやつです。

# 方法
## 方針
完璧な検出は無理なので、ルールベースで候補を絞り込んだ後、目視で面白そうな文章を見つけることにします。とはいえ、あまりに偽陽性が多いと、目視で探すのも大変なのである程度は絞り込みたいです。

「偶然現れた」をどう検出するかが重要です。
今回は「単語をまたいで音韻が一致する並びが登場した」ときに偶然現れた候補とみなすことにします。
例えば「アローラ地方でのサンドの姿」のように「サンド」という単語がそのままの意味で登場している文章は「偶然現れた」とは言えません。それを排除するために、単語をまたいで「サンド」という音韻が登場している場合だけを取得するようにします。

## 単語リスト
以下でまとめていただいているデータをお借りします(今回は研究用途であり、商標権の侵害にはならないという判断のもと、利用します)
https://wonderhorn.net/material/pokelist.html

元記事を表示

Python初心者の備忘録 #09 ~DSに使われるライブラリ編04~

# はじめに
今回私は最近はやりのchatGPTに興味を持ち、深層学習について学んでみたいと思い立ちました!
深層学習といえばPythonということなので、最終的にはPythonを使って深層学習ができるとこまでコツコツと学習していくことにしました。
ただ、勉強するだけではなく少しでもアウトプットをしようということで、備忘録として学習した内容をまとめていこうと思います。
この記事が少しでも誰かの糧になることを願っております!
**※投稿主の環境はWindowsなのでMacの方は多少違う部分が出てくると思いますが、ご了承ください。**
最初の記事:[Python初心者の備忘録 #01](https://qiita.com/Yushin-Tati/items/961dc47d6163f944f7e9)
前の記事:[Python初心者の備忘録 #08 ~DSに使われるライブラリ編03~](https://qiita.com/Yushin-Tati/items/f58bcaa9562fc2596439)
次の記事:まだ

今回は**Seaborn**についてまとめております。
##

元記事を表示

IPPONグランプリのプロフィール画像を作りたい(わけではなかったのです).

# きっかけ
2023年6月,北海道立近代美術館の特別展トリック×イリュージョン!を訪れた際にある作品を見て,作りたいアートのイメージが急に湧いてきた.それはソースコードの文字列で人の顔を表現するもので,すぐにその場で作成可能か調べてみた.画像から人物だけを切り抜き,2値化して黒い部分だけに上からソースコードを貼り付けてみようかと思っていると,[IPPONグランプリの公式サイト](https://www.fujitv.co.jp/ippon/profstudio.html)でそれっぽいものができることを発見した.しかし,この[IPPON PROFILE STUDIO](https://www.fujitv.co.jp/ippon/profstudio.html)をそのまま用いる場合,`名前を入力しないと生成できない点`と`背景の色の変化が小さくないとうまくいかない点`が壁として立ちはだかる.そもそもアートのために手軽に使いたかったわけであり,これらを解決するプログラムを自分で組むことにした.

:::note
直近では2024年2月3日(土)にIPPONグランプリが放送されます.
::

元記事を表示

10進数から2進数に変換

https://paiza.jp/works/mondai/loop_problems2/loop_problems2__conv_binary

たとえば
1だったら 1
2だったら繰り上がるので 10
3だったら 11
4だったら繰り上がるので100
こんな感じ。

(pythonにpow()メソッドがあるのは知らないという設定で)

“`py
def make_pow(x,y):
ret = 1
for i in range(y):
ret *= x
return ret

N = int(input())

binary = 0
i = 0
while N > 0:
digit = N % 2
binary += digit * make_pow(10,i)
# binary += digit * pow(10, i)
N //= 2
i += 1

print(binary)
“`

元記事を表示

Visual StudioとPythonでWebスクレイピング結果を定期的にファイル保存する

# 概要
[Visual StudioとPythonでWebスクレイピングを入門してみる](https://qiita.com/GOROGOROMOGUMOGU/items/65ca51c6dd0977b668c8) を発展させて、
1分毎にYahooリアルタイム検索を取得してファイルに保存してみます。
今回の学習ネタは、以下です。
1. 定期実行する
2. ファイル保存する

以下のライブラリを使います。
Schedule 1.2.1

# 1.定期実行
## Scheduleライブラリをインストールする
検索フィールドに「Schedule」を入力して[パッケージのインストール手順](https://qiita.com/GOROGOROMOGUMOGU/items/65ca51c6dd0977b668c8#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86) を実施する
## Ya

元記事を表示

【Python, Unity】(ほぼ)コピペでUnity・Pythonの双方向通信を簡単に記述する

## はじめに
機械学習を`Unity`ゲーム上に持ち出したいとき、機械学習部分をどうしても`Python`で動かしたいとき、ありますよね。 ~~(機械学習界隈がよりによって`Python`の砂の城の上で遊んでいるため)~~

そこで、`Unity`と`Python`のTCPによる双方向通信を抽象化したコードを書いたので、その導入方法をご紹介します。

## やりたいこと
TCP通信にて、
– `Unity` -> `Python`
– `Python` -> `Unity`

の間で`JSON`を送りあいます。

一方からもう片方へメッセージが送られたら、そのメッセージを正しく処理できる **コールバック関数** を呼ぶ、というインフラを両者にスタンバイさせます。

ここでは、`Python`側がTCPサーバー、`Unity`側をTCPクライアントにしています。(起動順が変わるだけで、接続後は両者とも対等です)

### データ形式
**形式名**と**JSON部分**に分けます。
– **形式名**
JSON部分の形式を指定します。 **送られてきたデータが何のデータか識別

元記事を表示

OTHERカテゴリの最新記事