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

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

辞書

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

前回のケースからたぶん辞書と辞書を組み合わせればいいんだとは思ったけど
なかなか理解に骨が折れたのでコメントもつけつつ

“`py
p,q,r = map(int, input().split())
#A->B, B->Cの辞書を作成する
A_B = {}
for _ in range(p):
i, j = map(int,input().split())
A_B[i] = j

B_C = {}
for _ in range(q):
j, k = map(int,input().split())
B_C[j] = k

#上の2つを利用してA_Cの辞書を作成
#この場合iは1〜pまででOK
#A_B[i]の値がそのままB_C[j]の値になり、それがそのままA_C[i]に代入
#上のロジックをどう数式にすればいいかわからんかった
A_C = {}
for i in range(1, p +

元記事を表示

Stable DiffusionのWeb APIを用いて写真的素材をイラストに変換してみた

[Supership](https://supership.jp/)の名畑です。TVアニメ[マッシュル-MASHLE-](https://mashle.pw/)の2期の[OP](https://www.youtube.com/watch?v=210R0ozmLwg)が海外でバズっているという噂は聞いていたけれど、公開一月足らずでYouTubeの動画が2000万再生を超えていてびっくりしました。

## はじめに

画像生成モデルである[Stable Diffusion](https://ja.stability.ai/stable-diffusion)ではテキストからの画像生成(**text-to-image**)だけではなく、画像を元にした画像生成(**image-to-image**)もございます。

今回の記事では**Python**で[stability.aiのAPI](https://api.stability.ai/docs)を呼び出すことで「**写真を元にしたイラスト生成**」を行なっています。

目新しい試みではないというか、私の過去記事「[Stable Diffusi

元記事を表示

文字列の重複を取り除く

文字列の重複を取り除くプログラムを***Python3***で実装しました。

“`python
input_line = input()
array1 = []
for i in input_line:
# 文字列iが配列に含まれているか確認する
if i not in array1:
array1.append(i)
print(i,end=””)
“`

元記事を表示

GENERAL PATTERN EDITOR patterneditor.py

自由サイズの汎用2値画面パターンエディタです。

patterneditor.pyは実行ファイルです。

0 0 1 1 1 0 0 0
0 1 1 0 1 1 0 0
1 1 0 0 0 1 1 0
1 1 0 0 0 1 1 0
1 1 1 1 1 1 1 0
1 1 0 0 0 1 1 0
1 1 0 0 0 1 1 0
0 0 0 0 0 0 0 0

のような0 と 1からなるテキストファイルを生成します。
import numpy as np
F = np.loadtxt(a)
として、numpyでファイルを読み込み、2次元のリストにすることができます。

‘l’で 画面の幅、高さをファイルの要素数に合わせ、ファイルからパターンをロード
します。
‘s’で 現在の画面をファイルにセーブします。
‘z’で 現在の画面の幅と高さの要素数を設定します。
‘c’で 現在の画面をクリアします。
‘q’で 終了です。
画面のセルをマウスでクリックしたら、On/Offします。最初の画面の要素数は8×8です。

“`patterneditor.py
#

元記事を表示

昔懐かしのPCゲームを今のパソコンに移植しようシリーズGames in the atticその5豚殺しゲーム PIG SLAUGHTER (pigslaughter.py)

pigslaughter.pyは実行ファイルです。
supertext.pyというモジュールを使っています。

https://qiita.com/fygar256/items/11b92b7285359f600b36

上から侵略してくる豚の鼻を砲弾で撃破し、画面最下段のラインにまで来ないようにするゲームです。65体の豚の鼻を倒したらミッションクリア、豚の鼻が画面最下段にまで到着したらゲームオーバーです。

オリジナルは、42年前のCommodoleのCBM3032にあったゲームで、正式名称は忘れたましたが、何体敵を倒したら終わりということはなかったと思います。オリジナルは豚とは関係ありません。同人誌CURSORのゲームだったと思います。記憶があやふやなもので、思い出せません。

キー操作は、’space’で砲撃、’4’でキャノンが左へ移動、’6’でキャノンが右に移動します。’q’でゲームを抜けます。

すごく単純なゲームです。豚の鼻の撃破数が出ますので、スコアを競ってください。

“`pigslaughter.py
#!/usr/bin/python3
import sup

元記事を表示

GAMES in the attic 昔懐かしのPCゲームを今のパソコンに移植しよう SUPERTEXT python用console module Ver. 1.0

supertext.pyは、昔の40×25ディスプレイのパソコンのキャラクタゲームを移植する
ためのコンソール用pythonモジュールです。スクリーンに8*8ドットのオリジナルキャラクタを表示できます。

cursesでは、当時のグラフィックキャラクタを再現できないため、キャラクタエディタと共に作りました。
supertextは、カレントディレクトリからchars.txtというキャラクタパターンデータを読み込みます。chars.txtのある場所は、プログラム内の、path_to_charsという変数を変えることによって変更することができます。最初は、/home/gar/lib/chars.txtになっていますが、使用者個人の環境に合せ、任意のパスに変更してください。
$ ./supertext.pyで、画面上に使えるキャラクタコードテーブルを表示します。キャラクタは0x00~0xffまでの256種類あり、charactereditor.pyで編集できます。
charactereditor.pyはカレントディレクトリのchars.txtを扱います。

メソッド:
setscreen(ti

元記事を表示

辞書データの順序

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

最初、辞書から辞書のデータを表示できるかと思ってたら
なかなかできなかったのでメモ。
下記のようにしたらできるように。
1つの辞書だけで動かそうと思うんではなく、
別のリストから操作できるようにすることもできるということを学びました。

“`py
n = int(input())
Data = {}
for _ in range(n):
[a,b] = input(),0
Data[a] = b

m = int (input())

for _ in range(m):
[a,b] = input().split()
Data[a] += int(b)

#ここからnameだけのリストを別に作る
names = list(Data.keys())
names.sort()

#そのリストに合わせて値を表示させる
for name in names:
print(Data[name])

元記事を表示

辞書式ソート

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

うんつまりどういう意味じゃ?
と思ったのですが、
結局のところ降順に並べ替えるとこの問題の条件通りのソートになるということです。
ソートの仕様がそうなっている、という話ですね。
念のためソートの仕様を確認しておきます。

仕様がわからんかったら、やっぱり知ってる関数を試してちゃんと条件通りになっているか
確認してみるのがよいですね。

“`py
n = int(input())
ab = [None] * n
for i in range(n):
[a, b] = map(int,input().split())
ab[i] = [a, b]
ab.sort(reverse=True)
for i in range(n):
print(*ab[i])
“`

元記事を表示

夜の渡り鳥が出す鳴き声を検出するnighthawkをdockerで動かしてみた

# 目的
夜渡る小鳥は鳴き声を出しながら飛んでいきます。春とか秋とか平野部でもよく聞こえます。この鳴き声をフライトコールと言いますが、夜間のフライトコール(NFC:Noctural Flight Call)を録音して渡りの生態を調べることが北米で行われています。そのための自動検知プログラムがpythonで開発されており、それをdockerで動かしてみようというものです。pythonの環境構築はバージョン管理やコンフリクトとかライブラリがないとか苦手なので、dockerを使うというのが新しいと思います。

## 難易度
– 初心者向け

## anaconda3をインストール
– docker desktopをインストールする
– こちらをご覧ください。 https://docs.docker.jp/desktop/install.html

– docker-anacondaのイメージをとってくる 
– continuumio/anaconda3:latest

“`
$ docker pull continuumio/anaconda3
“`

– anacon

元記事を表示

二重ループ:活用編 三角形の探索

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

今までの例からしてこれでいけると思ったんですけどね。。。
だめでしたね。おそらくループが多すぎるのだと思います。

“`py
N = int(input())
Ans = “NO”
for a in range(1,N):
for b in range(1,N-a + 1):
for c in range(1,N-a-b + 1):
if a ** 2 == b ** 2 + c ** 2:
Ans = “YES”

print(Ans)
“`
でもよく考えたら、ですね。
2辺が決まったら、あともう1つって自動で決まるんですよね。
だからforを一つ減らせます。
ただ、aが0にならないようにしないとですが、
結局Falseになるので関係ないか。

“`py
N = int(input())
flag =

元記事を表示

Pythonを使って二人用しりとりゲームを作る

## 初めに
今回は、判定に二分探索を使ってしりとりゲームを作りました。

## コード
“`py
import re

wordList = []
#しりとりの初めの文字を初期値で入れる
LastTimeWord = “り”
#ひらがな判定用
p = re.compile(‘^[ぁ-ゖ]+$’)

#しりとりとして成り立っているか判定
def siritoriCheck(inputWord):
global LastTimeWord
if inputWord[0] == LastTimeWord[-1]:
#成り立っていたら言葉を格納
LastTimeWord = inputWord
return False
return True

#言葉が重複していないかをチェック
def wordCheck(inputWord):
global wordList

#最後の文字が「ん」だったらTrue
if inputWord[-1] == “ん”:
return True

元記事を表示

動的型付け言語の限界と静的型付け言語の真価

# はじめに

動的型付け言語はその柔軟性で知られていますが、この柔軟性が時には代償を伴います。一方で、静的型付け言語はその厳格さにより多くのメリットを提供します。FastAPI と Pydantic を使用することで、Python のような動的型付け言語でも型の安全性を部分的に享受できるようになりました。しかし、この体験はまた、静的型付け言語におけるエディタの補助や型システムの堅牢さがいかに価値あるものかを痛感させられました。型ヒントとデータバリデーションを通じて得られた疑似的な型安全性は、静的型付け言語の持つ本質的な型安全性とエディタのサポートには及びません。この経験から、静的型付け言語の厳格さがもたらすクリアな利点に気づき、その優秀さを再認識するに至りました。

# 動的型付け言語における疑似型の問題点

FastAPI と Pydantic の使用は Python のような動的型付け言語でも型の安全性を向上させることができますが、この疑似的な型安全性には限界があります。特に、実行時まで型の不一致が検出されないことが多く、これは開発者にとって予期しないバグやエラーの原因となります

元記事を表示

APIキー不要のPythonのTwitter APIラッパー”twikit”の紹介

# この記事の概要
APIキーなしで利用できるPythonのTwitterAPIラッパーを作ったので紹介します。この記事を読んで使っていただけたら幸いです。
詳しい使用方法などは以下のリポジトリやドキュメントでご確認ください。

https://github.com/d60/twikit

ドキュメント: https://twikit.readthedocs.io/en/latest/twikit.html

追記: 非同期に対応しました

# インストール
pipを使用してインストールしてください
“`bash
pip install twikit
“`

# はじめに
まずは、TwitterのAPIにアクセスするためのクライアントを定義し、アカウントにログインします。

以下は、コードの例です。

“`python
from twikit import Client

# 第一引数に言語を指定
client = Client(‘ja’)

# アカウントにログイン
client.login(
auth_info_1=’email@example.com’,
a

元記事を表示

POSCARが存在するディレクトリorファイルパス一覧の取得

## プログラム使用法の確認
“`terminal
python3 get_poscar_existed_path_list_argparse.py -h
“`
usage: get_poscar_existed_path_list_argparse.py
example: python3 get_poscar_existed_path_list_argparse.py /mnt/ssd_elecom_c2c_960gb/cif/

This script takes five arguments: arg1.

positional arguments:
arg1 directory path that name is cif/: /mnt/ssd_elecom_c2c_960gb/cif/

options:
-h, –help show this help message and exit

## 実行ログ
“`terminal
time python3 get_poscar_existed_path_list_argparse

元記事を表示

I tried creating a Web API with Python [Introduction to Fast API]

## Web APIとは?

– ネットワークを経由してデータをやり取りする方法の1つ

## Web API サーバーとは?

– Web ブラウザ以外のアプリケーションから、HTTP 経由でデータや機能を提供するためのサーバーのこと
– データベースやその他のシステムと連携して、データを取得したり、処理したり、新しいデータを作成したりすることができる

“`
pip install fastapi
pip install “uvicorn[standard]”
“`
“`main.py
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”) # HTTPリクエストメソッド GETに対する関数
def read_root():
return {“message”: “APIです”}

# パラメータを作成する
@app.get(“/items/{item_id}”)
def read_item(item_id):
return{“item_id”:item_id, “item_name”:”Tシャツ

元記事を表示

お金の支払い

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

最初全く考えつきませんでした。
たぶん、(1,X,Y)=Zの組み合わせを全部考えて
それらの中でそれぞれの数が最小になるのを選べばよいわけです。
だけど、これらをどうやって多重ループにすればいいのか?が考えつきませんでした。

ただし、
・ 2 ≦ X , Y ≦ 1000
・ X != Y
・ 1 ≦ Z ≦ 3000
うーんと。
まず1円というのがあるので、
ひとまず、テストケースを元に考えます。
500 1000 300なので、
X = 500
Y = 1000
Z = 300。
ZがXやYよりも少なければ、問答無用で1円をZ枚分使うのが最小になりますね。だから300が答えになります。

テストケース2だと
50 100 855
X = 50
Y = 100
Z = 855
XよりYが大きければそっちを限界まで使いますね。
この場合、Z//Y = 8をcntにいれて、余りをsumに入れればいいわけなので sum = Z

元記事を表示

リアルタイムで音響イベントをラズベリーパイ(Raspberry Pi4 B)で検出

# 使用したデバイス
1\.Raspberry Pi 4B(64-bit)
2\.USB接続マイク(logicool C270n HD WEBCAM)

# 前準備
マイクのデバイスが認識しているか
参考サイト https://hellobreak.net/raspberry-pi-usb-microphone/

# 手順
ターミナルで以下のコードからgit cloneし、ファイルに移動。そしてrequirements.txtに書かれているライブラリをインストール
使用させて頂いたgit hub
https://github.com/robertanto/Real-Time-Sound-Event-Detection
“`
git clone https://github.com/robertanto/Real-Time-Sound-Event-Detection.git
cd Real-Time-Sound-Event-Detection
pip3 install -r requirements.txt
“`
インストールが完了したらThonnyかターミナルで実行
ターミナルの

元記事を表示

人はマクドナルドだけで生きていけるのか?

# 概要
 「ファストフードは栄養が偏る」昔から様々な人たちに言われてきたことですが、果たして本当にそうなのでしょうか?昔はともかく、健康寿命が注目されている最近は栄養に気を使ったメニューなどが販売されており、ファストフードそのもののイメージも変わりつつあるように思えます。そこで、ファストフードでの飲食が本当に栄養バランスが偏るのかについて検証しようと思います。
 この検証にあたり、先行研究があったので、そちらを参考として進めていこうと思います。
# 参考

https://qiita.com/takobaya391076/items/49b15c1fa36734b3fa53

https://qiita.com/youwht/items/9098d560f28d16aa5567

https://qiita.com/Kashalpha/items/582d0ffab82192304ca5

# 目標
 先人たちが辿ってきた足跡をそのままなぞっても面白くないので、以下の要素を追加したものを完成系として目指そうと思います。
– 栄養摂取目安を年齢・性別・運動レベル別に設定する

元記事を表示

数値変換判定処理

数値に変換できるかチェックできるプログラムを2通りで実装しました。

1.例外処理を使う場合

“`python
str1 = input()
try:
num1 = int(str1)
print(“YES”)
except:
print(“NO”)
“`

2.isdigitメソッドを使う場合
“`python
s = input()

if s.isdigit():
print(“YES”)
else:
print(“NO”)

“`

追加
正負記号を入れた整数はisdigitメソッドでは判定できません
下のプログラムを実行しました。

![タイトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1055346/29706047-7973-53f3-255f-5389d305a26a.jpeg)

元記事を表示

スーパー鳩時計

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

元記事を表示

OTHERカテゴリの最新記事