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

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

【Lambda】Python requestsを利用する方法

## Lambda import requestsでエラーとなる
Lambdaはpythonのrequestsをデフォルトでは使えません。
Content-Typeがmultipart/form-dataの場合、requests以外で処理すると、コードが長くなるので、対応方法を探していました。
application/jsonの場合は、urllib.requestを用いた対応でも良いかと思いますが、
想像よりも簡単に使えるようにできたので、下記ぜひ試してみてください!

## 参考文献
https://qiita.com/katzueno/items/3bbd9609daa6e06bcbb1

https://qiita.com/afukuma/items/b7191025700a7829967c

上記の内容参考に、自分用へのまとめ直し、補足情報の追加を行いました。

## 対応方法
### ローカルでrequestsライブラリをzip化
ディレクトリを作成し、そこにrequestsライブラリをダウンロードを行います。
そのディレクトリの中身をzip化します。
“`bash:loc

元記事を表示

ループメニュー問題を解いていく1

https://paiza.jp/works/mondai/loop_problems/loop_problems__print_num_step1

python
“`py
for i in range(10):
print(i+1)
“`
PHPは仕方ないけど行数多くなってしまうな

“`php

“`
じゃ次

https://paiza.jp/works/mondai/loop_problems/loop_problems__print_num_step2

python
“`py
for i in range(int(input())):
print(i+1)
“`
PHPだと、pythonのように直接入れ込む、ということはできないようです。
つまり下の`$i<=$N`の部分を`$i<=fgets(STDIN)`のようにはできないようです。 何故か調べてますがなかなかそれらしきものは見つからず。 仕方ないのでこ

元記事を表示

【langchain】RAGの目視評価を軽めにしたいときのスクリプト

# 概要
100個以下くらいの想定質問のRAG出力を取得して、目視評価をするためのスクリプトの覚書です。

# 環境
langchainのバージョンは0.0.331です。最近0.1が登場したので、もうじきlegacyになるかもしれません。

v0.1対応のチュートリアルは以下にあります。
https://api.python.langchain.com/en/latest/chains/langchain.chains.retrieval_qa.base.RetrievalQA.html#langchain.chains.retrieval_qa.base.RetrievalQA

# 実装
## VectorStoreRetrieverの作成

“`Python
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS
from langchain.vectorstores.utils import DistanceStrategy

embeddi

元記事を表示

指定のイオンを含むかどうかの判定ログ

+ ホスホニウムイオン

“`terminal
time python3 get_PH4_contained_pos_folder_p_list.py
“`
len(P_H_existed_poscar_folder_path_list): 39122
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 39122/39122 [08:24<00:00, 77.56it/s] len(ion_contained_poscar_folder_path_list)/len(P_H_existed_poscar_folder_path_list) :0/39122 real 8m27.516s user 32m4.673s sys 3m12.822s + テトラクロロアルミン酸イオン ```terminal time python3 get_AlCl4_containe

元記事を表示

抽選ツール⑤

***抽選ツール***を改良し、最初から配列に抽選対象者とお題を定義して、配列をランダムに並び替え、抽選者のお題を発表するよう、抽選ツールを改良しました。

“`python3
####################################################
### お題抽選ツール
###
####################################################

#ランダムモジュールを呼び出す
import random
# エクセルへの書き込みモジュールを呼び出す
import openpyxl
# 関連付けられたアプリケーションでファイルを開くモジュールを呼び出す
import subprocess
# 非同期処理用モジュールを呼び出す
import asyncio
# タイムモジュールを呼び出す
import time
# システムモジュールを呼び出す
import sys

#配列を定義する
array1 = [“大園玲”,”小坂菜緒”,”正源司陽子”,”守屋麗奈”,”佐々木久美”,”山下瞳月”,”佐々木美玲”,”

元記事を表示

pythonでゲームを作る

pythonでゲームを作っていきたいと思います。
今回使うのは”pygame”を使っていきたいと思います
# pygameの使い方
## 1.install
まずインストールしなければなりません。ダウンロードするには`pip install pygame`
を使います。
## 2.とりあいずウィンドウを作る
ウィンドウを作る方法を教えます
“`python:system.py
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption(“game”)
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
“`
この.pyを起動するとこうなるはずです。![スクリーンショット 2024-01-11 163521.png](https://qiita-image-s

元記事を表示

積の最小化

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_boss

前回の問題を教訓に
どちらかが0の場合は問答無用に0が最小になるので
こんな感じで書いてみました。
つまり、最初の数値を基準に、小さくなったらそれを採用するみたいな感じですね。
で、A~Bの間をループさせると。負の数が含まれていても結局あんまり関係ないなということで
こうなりました。

“`py
A,B = map(int,input().split())
result = 0
for i in range(A,B+1):
for j in range(A,B+1):
if A == 0 or B == 0:
break
if result == 0:
result = i * j
elif result > i * j:
result = i * j

print(result)
“`
でも解答の場合は、もうちょっとロ

元記事を表示

タイルの敷き詰め

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step8

“`py
H,W = map(int,input().split())
if H > 0 and W > 0:
if H % 2 == 0 and W % 2 == 0:
print(‘YES’)
else:
print(‘NO’)
else:
print(‘NO’)

“`

最初は最初のif文なかったんだけど、
テストケースでHやWが0だったときにこれだめなんですよね。
で最初のif文を付け加えたら正解になりました。

ちなみに、上のは入れ子になってますが、最初のif文を逆にしたらelseがいらなくなります。
(ということに今気づいた)
ただし、この場合、andだとだめでorにしないとどちらかが0の場合にNoにならないです。

“`py
H,W = map(int,input().split())
if H == 0 or W == 0:

元記事を表示

Python製のシンプルなゲーム開発用フレームワークを作った

## 崩壊しないシステマティックなゲーム開発がしたい

ということで、Python 製のミニマルなゲーム開発用フレームワーク Pigframe を作りました。
![Pigframe](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1419783/064ce5c7-8f76-acdb-f096-e29ff6ee7863.jpeg)

https://github.com/passive-radio/pigframe

主には、Pygame, Pyxel などの Python 製のゲーム開発エンジンを使ってゲームを開発したいと思っている、開発を始めた個人開発者・学習者向けになります。

依存している外部ライブラリはありません。
自分がゲーム開発で使っている/使いたい Pygame や Pyxel などの開発エンジンと併せて使うことを主な用途として想定しています。

#### ◼ 一体全体なにができるの?
Pigframe は以下のような

元記事を表示

抽選ツール④

**抽選ツール**に結果待ちの間に演出メッセージの処理を並列に動かす非同期処理を実装しました。

“`python3
###################################################
### お題抽選ツール
####################################################

#ランダムモジュールを呼び出す
import random
import openpyxl
import subprocess
import asyncio
import time

#配列を定義する
array1 = []
array2 = []
#人数変数
N = 0
#エクセルファイルのファイル名変数
out_file = “prezen1.xlsx”
wb = openpyxl.load_workbook(out_file)
#書き込むワークシートを定義する
ws = wb[‘select’]
#行数の定義
start_row = 3
# 待ち時間変数
sleep_time = 10

# 非同期処理で10秒待つ
asyn

元記事を表示

【2024年】Pythonの学習にオススメ技術書TOP5

# [ChatGPTと学ぶPython入門 「Python×AI」で誰でも最速でプログラミングを習得できる!](https://amzn.to/3TVGxmS)

[![画像タイトル](https://m.media-amazon.com/images/I/81-4Xhe52HL._SL1500_.jpg)](https://amzn.to/3TVGxmS)

**「Python×AI」で誰でもあっという間にプログラムを作れるようになる!
世界一やさしいPython入門書!**

「Pythonの構造をしっかり理解した上でコード作成をAI(ChatGPT)にサポートしてもらう」というコンセプトのPythonプログラミング入門書が新登場!
プログラミングに必要な基礎をしっかり身につけつつ、プロンプトプログラミングのスキルも手に入れ、自動であっという間にコード作成ができるようなる、1冊で2つのスキルを学ぶことができるお得な書籍。
もちろん「AIに全てお任せ」ではなく、はじめてプログラミングを学ぶ人に向けて基本をしっかり押さえ、スタンダードな知識も同時に身につけられる内容になっています。

元記事を表示

元素間距離のヒストグラム描画ログ

## 目的:閾値の決定
結晶構造において,元素が結合を作る結合距離の最大値(閾値)を見積もる.
その際,ここで描く元素間距離のヒストグラムと,[1]を参考に決定する.

[1] スマート,L.・E.ムーア 著,河本 邦仁・平尾 一之 訳,入門 固体化学,化学同人(1996)

## 目標
ある元素間の距離を取得し,ヒストグラムとして描画する.

## 手順

## 作成済み一覧
+ C-O
+ N-H
+ P-H
+ Al-Cl
+ B-F
+ B-H
+ Br-O
+ Cl-O
+ C-N
+ I-O
+ N-O
+ Mn-O
+ O-H
+ S-O
+ Se-O

## 実行ログ
“`terminal
pwd
/mnt/ssd_elecom_c2c_960gb/scripts/plot_PH_dist_histgram

l
PH_dist_1d_list.npy* figure/ plot_PH_dist_list.py*
Untitled.ipynb*

元記事を表示

pythonの辞書型メモ

## 元素記号と元素名(英語)

+ 原子番号順
+ 希ガスは除く
+ 原子番号53番まで

“`python
elements = {
“H”: “Hydrogen”,
“Li”: “Lithium”,
“Be”: “Beryllium”,
“B”: “Boron”,
“C”: “Carbon”,
“N”: “Nitrogen”,
“O”: “Oxygen”,
“F”: “Fluorine”,
“Na”: “Sodium”,
“Mg”: “Magnesium”,
“Al”: “Aluminium”,
“Si”: “Silicon”,
“P”: “Phosphorus”,
“S”: “Sulfur”,
“Cl”: “Chlorine”,
“K”: “Potassium”,
“Ca”: “Calcium”,
“Sc”: “Scandium”,
“Ti”: “Titanium”,
“V”: “Vanadium”,
“Cr”

元記事を表示

崖に落ちるか判定

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step7

小数点があるということで、int型でなくてfloat型にしてみました。
でも解答だと普通にintでもよかったみたいです。
まあ、仕様を見ると、小数点のある数字を混ぜたときにfloat型になってしまうようなので
問題ないのかな。

“`py
N,K,T = map(float,input().split())
X = T + 0.1

if N * K < X: print('YES') else: print('NO') ``` PHPだとこうですね。 さらに変数を使わないようにしました 行数が減りました ```php

元記事を表示

終了判定 2 Python3編

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step5

さて久しぶりにPythonから。
ここでwhileを使いました。たぶんpythonでPaizaやり始めてから初めてじゃないかな。

“`py
N,K = map(int,input().split())
cnt = 0
while N < K: cnt += 1 N = N * 2 print(cnt) ``` ところでなんで、+=は知ってるのに、*=はなぜしなかったの?と自分で自分を突っ込んでしまった。いやおっしゃるとおり。 こうですね。 ```py N,K = map(int,input().split()) cnt = 0 while N < K: cnt += 1 N *= 2 print(cnt) ``` とりあえずphpでもやっておきます。 ```php5

元記事を表示

LeetCode日記(Day 2)

# 初めに
前回に続き,LeetCodeの解答と解説をまとめていこうと思います~~

## LeetCode(Palindrome Number)
>Given an integer x, return true if x is a
palindrome, and false otherwise.

凄くシンプルな問題ですね.
これは「回文ならTrueを返してね.そうでなければFalseでお願い」ということですね.
じゃあ,さっそく解いてみましょう~

#解答・解説
“`python
def isPalindrome(self, x: int) -> bool:
x_str = str(x)

x_str_reversed = x_str[::-1]

if x_str == x_str_reversed:
return True
else:
return False
“`

これは一瞬で書けますね!
与えられた数字を文字列として置き換えて,反転させたも

元記事を表示

HuggingFaceの読込速度の比較(ローカルパス、キャッシュ、pickle)

# 概要
HuggingFaceのモデルのロード速度を3つの方法で比較しました。

* ローカルパス:model_nameにダウンロードしたものモデルフォルダのパス(e.g. “./mulitlingual-e5-large”)を指定してロード
* キャッシュ:model_nameにURLのモデル名(e.g. “intfloat/multilingual-e5-large”)を指定してキャッシュ済みのモデルをロードする
* pickle: pickleでダンプしたインスタンスをロード

結果としてはpickleが一番早かったです。ローカルパスとキャッシュは同じくらいでした。

# 背景
HuggingFaceのモデルをなるべく早くロードできる方法が何か知りたくて調べました。
# 環境
* M1 MacBookAirのメモリ16GB、SSD 1TB

# 実装
`intfloat/multilingual-e5-large`の読込み速度を比較します。2GB以上あるので、より軽量なモデルで試したい場合は適宜、変更ください。

## ローカルパス
huggingface_hubを使ってモデル

元記事を表示

PHPとPythonの比較勉強ー複数行にわたる入力 (paizaランク D 相当)

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step3

PHPを仕事であんまり使わなくなって今Pythonをやっているんですよね。
で、やらなくなっているとなんというか腕が鈍ってしまったりしまして。
それだとだめだなと思ったので今年から1日1回はPHPも解くようにしました。

ひとまずPythonで書いてみます

“`py

n = int(input())
for _ in range(n):
print(input())
“`
簡単ですね。
では次にPHP

“`php

“`
一応正解はしたのですが。
fgets(STDIN)で取得したものはtrimしないといけないみたいです。
なんでなのか調べたら、どうやら、入力されたときの改行を除去するため、という
意味があるそうです。
問題

元記事を表示

2023年のQiita人気タグをアニメーションで振り返る

## 結果から
![output (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602537/4d013a9e-6272-b2de-0e91-04cbb410e77b.gif)

## はじめに
つい先週に、ワードクラウドの時系列変化をアニメーション化する[AnimatedWordCloud](https://github.com/konbraphat51/AnimatedWordCloud)というライブラリが出ました

https://github.com/konbraphat51/AnimatedWordCloud

こちらも読むべき: [【Python OSSライブラリ製作】話題の時系列変化を可視化する”アニメ化”ワードクラウドを作成するライブラリをリリースした](https://qiita.com/konbraphat51/items/1d72404203e4c63d8cda)

[ミーハーの王、ミーハーキング](https://qiita.com/uts1_6/items/11e34

元記事を表示

【Python OSSライブラリ製作】話題の時系列変化を可視化する”アニメ化”ワードクラウドを作成するライブラリをリリースした

## 作ったもの
イーロンマスクのツイートにおける頻出単語の時系列変化を可視化したgif画像です。
![image.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602537/cc0b3710-904e-9d3c-b39f-ad7b93fad66a.gif)

“`
pip install AnimatedWordCloudTimelapse
“`

でインストールして、

“`python
from AnimatedWordCloud import animate

animate(data)
“`

と記述するだけで、上記のgif画像が作成できる`Python`ライブラリ[AnimatedWordCloud](https://github.com/konbraphat51/AnimatedWordCloud)を作成しました。

:::note
`GitHub`レポジトリ(スター⭐くれると泣きながら喜びます、本当に): https://github.com/konbraphat51/Anim

元記事を表示

OTHERカテゴリの最新記事