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

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

積の最小化

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

元記事を表示

九九の一覧表作成

九九の一覧表を作りました。

ルール
①各段の最後の回答以外、「 | 」で区切る
②回答はスペース埋めで2桁にする
③各段の区切りを「=」で各行の文字数に合わせる

実装したコードです。

“`python3
#####################################
### 九九の一覧表作成
#####################################

#各段の変数定義
startn = 1
endn = 10
#桁数変数の定義
keta = 2
# スペース関数
def space1():
print()

# 罫線関数
def div1():
print(“=” * (keta*(endn – startn) + 3 * (endn – startn -1)))

for i in range(startn,endn):
for j in range(startn,endn):
ans = i * j
if j == 9:
print(f”{ans:>{keta}}”,end=””)
els

元記事を表示

[Python][Julia]Project euler10 (プロジェクトオイラー10)

#### Project euler Ploblem 7 (プロジェクトオイラー7)
[Summation of Primes](https://projecteuler.net/problem=10)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
10より下の素数の和は 2 + 3 + 5 + 7 = 17。
2,000,000より下の全ての素数の和を求めよ。

#### 原文
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.

## 解答
#### 答え
142913828922

#### 解答の方針
エラトステネスのふるいを使って素数のリストを作成し、合計する。
[[Python][Julia]Project euler7 (プロジェクトオイラー7)](https://qiita.com/fujihop/items/776d1135d52944529941)
のコードを参考に改変し

元記事を表示

pandas.DataFrameのループ速度比較(iterrows vs apply)

# 概要
pandas.DataFrameで行ごとの処理をする場合の、iterrowsとapplyの速度比較を行ったコードのメモです。iterrowsのほうが遅いという話はよく聞きますが、実際どの程度遅いのか、実感を掴むためにやりました。新規性は特にありません。

# 実装
wikipediaの記事を文単位で分割して新たなDataFrameをつくるというタスクで計測します。
列名の変更など一部無駄な処理があるのは、他のプロジェクトのためのコードを流用しているためです。
コードはGPT4の力を借りて作りました。

wikipediaの記事をhuggingfaceからダウンロードします。

“`Python
from datasets import load_dataset

# URL of the dataset
dataset_url = “izumi-lab/wikipedia-ja-20230720”

# Load the dataset
dataset = load_dataset(dataset_url)

# To view basic information or m

元記事を表示

pythonのECDSA署名鍵読み込みが意外と雑だった

# はじめに

いきなりですが, [ECDSA](https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E6%9B%B2%E7%B7%9ADSA) という楕円曲線を使った署名技術が存在します[^2]. そして,

“`
$ python3 pip install ecdsa
“`

で導入されるライブラリを使うと, pythonでECDSAの鍵生成や署名をはじめとして, DER/PEM形式での鍵のインポートやエクスポートも可能となります.

今回いろいろあってこのあたりの構造を調べていたら, タイトルの通り署名鍵インポートが適当だったことが判明したので, 自分への備忘録も兼ねてこれを記している次第です.

なお, はじめに断っておくとこれはバグではなく, ただ単に(それを承知の上で)実装されていないだけです.

# 環境
“`
$ python3 –version
Python 3.10.12

$ python3 -m pip list | grep ecdsa
ecdsa

元記事を表示

数値のスペース埋め(入力でデータの数とスペースで何桁の数にするか指定する)

***数値のスペース埋め***(入力でデータの数とスペースで何桁の数にするか指定する)
のプログラミング課題を解きました。

“`Python3
#入力するデータ数とスペース埋めで何桁で出力するか入力する
data1 = input(“数値のデータの数とスペース埋めで何桁の数に指定するかスペース区切りで入力してください”)
array1 = data1.split(‘ ‘)
N = int(array1[0])
keta = int(array1[1])
for i in range(0,N):
num = input()
ans = “{: >{}}”.format(num,keta)
print(ans)
“`

元記事を表示

[Python][Julia]Project euler9 (プロジェクトオイラー9)

#### Project euler Ploblem 9 (プロジェクトオイラー9)
[Special Pythagorean Triplet](https://projecteuler.net/problem=9)

備忘のために残しておく。

## 問題
#### 問題文 (意訳)
ピタゴラスの三つ組数は 3つの自然数のセットであり、a

元記事を表示

OTHERカテゴリの最新記事