Python関連のことを調べてみた2023年02月12日

Python関連のことを調べてみた2023年02月12日

[Hangman] 単語当てゲームを実装してみよう(Python)

## 目的
PythonでHangmanゲームを実装できる

## Hangmanとは
「ハングマン」とは、単語当てゲームの一種だよ。
プレイヤーはコンピューターが選んだ単語を当てることを目指しますが、当てに失敗すると、次第にマンが描かれていくんだ!
当てるのに失敗しすぎると、マンが完全に描かれたところでゲームは終了するよ。

## ゲーム進行の例

1. 単語リストを作成
1. 単語リストからランダムに単語を選択
1. 選択された単語を表示するための空の文字列リストを作成
1. プレイヤーからの文字入力を受け付け
1. 入力された文字が選択された単語に含まれているかどうかを確認
1. 入力された文字が選択された単語に含まれている場合、文字列リストにその文字を追加
1. 入力された文字が選択された単語に含まれていない場合、マンに一部を描く
1. ゲームの終了条件を確認する。単語が完全に当てられたか、マンが完全に描かれたかを確認

## ?実装してみよう?
“`hangman.py
import random

word_list = [“python”, “swift”, “ja

元記事を表示

ABC289回答メモ

0.はじめに
 全体的に難易度が1段ずつ高い感じがしました。
 C問題見た時はあきらめモードでしたが何とかACになり
 結果としてレートは-2で収まりました。
 そういえばレート変動が結構すぐ反映された気がします。

 DはDP問題だったので断念。いい加減覚えないと次に進めないな・・・。

1.A – flip
 なんか、スタイリッシュな方法があるだろうなと思いつつ
 愚直に1文字ずつ見て反転した文字列を作る形でACでした。
 解説見るといろいろ書いてあったので、覚えておくと今後役に立ちそうでした。

 https://atcoder.jp/contests/abc289/submissions/38783122

2.B – レ
 ややこしい問題でしたが、問題文が詳細で
 参考にしてロジックを組めば解けました。
 
 考え方
  1)変数N,M、リストAをそれぞれ入力する
  2)出力用のリストL、反転用リストTL、レ点アドレスLiを用意する
  3)for文で変数iを1~Nまで回す
   3-1)変数iをTLに格納
   3-2-1)A[Li]=iの時(レ点がついてる時)
    

元記事を表示

[Guess the Number] 数字を当てるゲームの実装(Python)

## 目的
Guess the Numberプログラムが実装できる

## Guess the Numberとは
プログラムがランダムに数字を選び、プレイヤーがその数字を当てるゲームですね!

## 実装例
“`guess_the_number.py
import random

number = random.randint(1, 100)
guess = None

while guess != number:
guess = int(input(“Guess the number (1-100): “))
if guess < number: print("Too low.") elif guess > number:
print(“Too high.”)

print(“You win! The number was”, number)
“`

一人寂しくなった時はこのゲームで遊んでみてください?

元記事を表示

カーネル法を使った強化学習のアルゴリズムの数値実験による検証

# 1. はじめに

文献[1]で、UCLK(Upper-Confidence Linear Kernel reinforcement learning)という強化学習のアルゴリズムが提案されました。このアルゴリズムには、次のような特徴があります。

+ (1) 状態および行動を特徴量に変換すること
+ (2) 制御対象の動特性が特徴量の線形和に従う、と仮定すること、
+ (3) また、それぞれの特徴量の重み係数をオンラインで学習すること
+ (4) 学習した動特性のモデルに基づいて、状態価値関数および行動価値関数を求めること
+ (5) 動特性のパラメタは、観測出力の予測誤差ではなくて、状態価値関数の予測誤差に基づいて学習すること

最近提案された強化学習のアルゴリズムは、多くの場合、ニューラルネットワークを使って価値関数や方策を実装するため、コーディングにも学習の計算にも苦労していました。基底関数を使うことで、アルゴリズムの実装や応用が軽快になることを期待しています。

この記事では、文献[1]で提案されたUCLKを以下のように簡略化したアルゴリズム(以下、簡易版UCLK)を実装し

元記事を表示

[Rock, Paper, Scissors] 古典的なじゃんけんゲームの実装(Python)

## じゃんけんゲームの実装(簡単)

## 実装例
“`rock_paper_scissors.py
import random

options = [“rock”, “paper”, “scissors”]

while True:
computer_choice = random.choice(options)
player_choice = input(“Rock, paper, or scissors? “).lower()
if player_choice == “quit”:
break
elif player_choice in options:
if player_choice == computer_choice:
print(“Tie!”)
elif player_choice == “rock” and computer_choice == “scissors”:
print(“You win!”)
elif pla

元記事を表示

[Magic 8 Ball] あなたの問いに助言をしてくれるプログラムの実装!!!(超簡単)

## 目的
Magic 8 BallのロジックをPythonで実現してみよう!
## Magic 8 Ballとは?
アメリカで流行ったある問いに対して助言をしてくれるボールの玩具のことですね。

## 実装してみよう
“`magic_8_ball.py
import random

responses = [
“It is certain”,
“It is decidedly so”,
“Without a doubt”,
“Yes – definitely”,
“You may rely on it”,
“As I see it, yes”,
“Most likely”,
“Outlook good”,
“Yes”,
“Signs point to yes”,
“Reply hazy, try again”,
“Ask again later”,
“Better not tell you now”,
“Cannot predict now”,
“Concentr

元記事を表示

Python + OpenCV ArucoでVRChatでフルトラしようとしたけどうまくいかなかった話

こんにちは、最近VRCにハマりにハマっている者です。
VRCやってるとフルトラしたくなりますよね。でも、フルトラ機器って高いわりにまだまだ発展途上って感じで、買うくらいなら作りたいなってなりませんでしょうか?
作り方は何案かあったんですが、まずはARマーカーベースでやってみようと一日やってみました。OpenCVの経験があるのと、opencv-contribのARマーカー(ArUco)が結構使いやすかった思い出があったためです。
結論から言うとあんまりうまくいきませんでした。
が、同じようなことをしようとする人が居るかもしれないので、メモ代わりに残しておきます。

まず初めに、現状の実行結果を掲載します。所感としては
– ARマーカーをカメラ内に入れておくのが結構大変
– 私の環境では実行速度は20~60FPSで安定しません(@カメラ解像度640×480)
– トラッキング精度が出ずカクカクするが一応足腰動く。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/345525/d68b9513

元記事を表示

Elastic Beanstalkのワーカー環境のPythonサンプル

# はじめに

以前、Elastic Beanstalkのワーカー環境だけ作る方法を記事にしました。

https://qiita.com/a_b_/items/3b49c5dd582dd13b8f04

その際用意できなかったサンプルコードを作成しましたので記事にしました。

# コード

以下のサンプルを拝借して作りました。

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/GettingStarted.DeployApp.html

`python.zip`を解凍してコードを少し書き換えます。`welcome`の中身を空文字にしただけです。

“`python:application.py
import logging.handlers

# Create logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# Handler
LOG_FILE = ‘/tmp/sample-app.log’
handler

元記事を表示

Instagramのいいねを自動化したい

Instagramでフォロワーを増やす必要があり、Instagramのいいねを自動化しました。
2023年2月12日に動作確認をしました。

注意: Instagram公式には”自動いいね”は推奨されていないため、ご利用は自己判断でお願いします。

## 実行環境
OS: macOS Ventura 13.1
Python: 3.10.10
Chrome: 109.0.5414.119

“`python:instagram_automate_like.py
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.action_chains import ActionChains
import time
import datetime
import bs4
import random
from selenium.webdriver.common.by import By
from webdriver_

元記事を表示

kintoneのアプリレコードにpythonで登録する方法(レコード1件)

# kintoneのアプリレコードにpythonで登録する方法(レコード1件)

## 最初に

 kintoneのアプリのデータを自動で一括取得したり、登録したりしたい状況があるかと思います。kintoneではREST APIが用意されており、いろいろなプログラム言語等からデータを簡単に取得したり登録したりすることができます。
 そこで、本記事ではpythonを使ってkintoneのアプリにレコードを1件登録する方法をご紹介します。

kintone公式のkintone APIの使い方の説明に従います。
‘https://cybozu.dev/ja/kintone/docs/rest-api/records/add-record/’

## 環境

* windows11
* python 3.11.1

## 準備するもの

* kintoneアプリ
* 上記のレコード追加、編集の権限があるログイン名とパスワード


今回は下記フィールドが配置されたアプリを用意します。

* 文字列(1行)  文字列__1行_
* 文字列(複数行) 文字列__複数行
*

元記事を表示

【AtCoder】ABC289 のA,B,C,D における Python解説

ABC 289のA,B,C,D 問題を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。

この記事は @u2dayo さんの記事を参考にしています。見たことのない方はそちらもご覧ください。とても勉強になります。

また、問題の難易度を表す指標を [Atcoder Problems](https://kenkoooo.com/atcoder/#/table/tsuru1471) から引用しています。このサイトは勉強した問題を管理するのにとてもオススメです。

質問やご指摘はこちらまで
Twitter : [Waaa1471](https://twitter.com/Waaaa1471)

作者プロフィール
Atcoder :[緑 886](https://atcoder.jp/users/tsuru1471)
230211 現在

# 目次
[はじめに](#はじめに)
[A.flip](#aflip)
[B.レ/V](#bレv)
[C.Coverage](#ccoverage)
[D.Step Up Robot](#dstep-up-robot)

元記事を表示

Python容量食いすぎ事件

PCのSSDの容量が一杯になったので、

* Anaconda
* .conda
* .cache

をバッサリ消しました。

**30GB空きました。**

容量が無尽蔵にあるようなPCでもない限り、Anacondaとか使わない方がよさそう。

元記事を表示

cifファイルからQuantum ESPRESSOのインプットファイルを自動生成するよ

# Quantum ESPRESSO
結晶構造からエネルギー計算、バンド構造計算、フォノン分散関係計算などが行える量子化学計算アプリケーションが、[Quantum ESPRESSO](https://www.quantum-espresso.org/)です。Quantum ESPRESSOで計算を行うにあたっては、インプットファイルを作成しなくてはなりません。このインプットファイルに計算条件や結晶構造を書き込むわけですが、有機結晶だと結晶の単位格子中に原子が100個以上含まれていることもザラで、手入力でインプットファイルを作るのは人間業ではありません。そこで、PythonでQuantum ESPRESSOのエネルギー一点計算を行うインプットファイルを自動生成するプログラムを作ってしまおうというのが今回のお話です。Quantum ESPRESSOのインプットファイルの作成に必要なのはcifファイルのみです。

今回はpythonで作成する方法を紹介していますが、[Winmostar](https://winmostar.com/jp/)というアプリを使っても同様のことが可能です。というか

元記事を表示

C言語でpythonのモジュールを作る

C言語でpythonのモジュールを作ってみる。

# 環境

Ubuntu22.04LTS
python3.10

今回は、/dev/randomから真性乱数を取得するCのソースを使って、それでモジュールを作ってみます。
モジュール名、frandom

# ソース

“`frandommodule.c
#include
#include
#include

static FILE *fp=NULL;
static int count=0;
#define RANDOMMAX (0x0000ffffffffffff)

// サブ関数
// 48bit符号なし整数の乱数を乱数デバイスから得る
//
static long get_48bit_random() {
int c;
char buff[sizeof (long)]={0,0,0,0,0,0,0,0};
for (int idx=0;idx<(int)sizeof (double)-2;idx++) { c=f

元記事を表示

Raspberry Piでクローリングする方法まとめ(Selenium,Pyppeteer,Requsts-HTML)

ラズパイで各種クローリングライブラリを使用すると、エラーが出る等ですんなり実行できません。この記事では、ラズパイで`Selenium`・`Pyppeteer`・`Requsts-HTML`を用いてクローリングできるようにするための設定をまとめます。

## 実行環境
Raspberry Pi 4 Model B

“`bash
$ uname -a
Linux raspberrypi 5.15.84-v7l+ #1613 SMP Thu Jan 5 12:01:26 GMT 2023 armv7l GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
“`

# Selenium
まずはクローリングで特に有名な、`Selenium`についての設定方法です。
Seleniumでは、使用したいブラウザのバージョンに適したドライ

元記事を表示

非エンジニア34歳から始めるAtCoder~入茶まで

# はじめに
非エンジニアですが、3日坊主で終わると思っていたことにハマってしまったので記事にしました。
こんな人でもできるんだな、と同じ世代に感じていただき仲間を増やすのも目的としてあります。

# 非エンジニア34歳のプロフィール
工業高校・機械課卒、勉強が苦手だったので、日本の伝統的大企業(製造業)に就職。18歳から保全業務16年。機械に潜って油塗れになったり、真夏の夜勤明け40℃近い地下ピットで熱中症になったりしてました。バリバリのゲーム好きインドアオタクなのに、仕事は肉体系でキツかったです。

2年ほど前から、デジタル化遅れうんたら、DXうんたらということで、デジタル業務担当になりました。デジタルに関しては上層部もほとんど知識(というか興味)が無く、ほぼ丸投げ状態でしたが、逆に良かったのかもしれません。仕方なくデジタル化に関して自分で色々情報収集するうちに、AtCoderにも出会った感じです。

知識に関しては、デジタル業務と言っても管理業務(Office等)や設備からデータを取るIoTなどが主で、プログラミングに関してはプの字もわからないという状況でした。設備にはPLCとい

元記事を表示

pythonにおける高階関数と@デコレータについて(Python中級)

## はじめに
Pythonを使っている皆さん、@デコレータというのはご存知でしょうか。Djangoのようなwebフレームワークに触れたことがある方であれば「ログインが必要な動作を行う関数の前に`@login_required`をつける」というようなことを「おまじない」として覚えた方もいるかもしれません。この@デコレータの意味を学び、さまざまなプログラムに応用してみよう、というのが今回の趣旨です。
なお、説明には誤りが含まれている可能性があります。もし誤りを見つけた場合にはご指摘いただけると助かります。

## 想定する読者像
python初級者~中級者。「引数」、「返り値(戻り値)」の概念や例外処理`try-except`は理解できていることを前提とします。

## 最もシンプルな例

“`python
@funcA
def funcB():
print(“funcB”)

funcB()
“`
この時、このプログラムは`funcA(funcB)()`という意味になります。さて、この式の意味を正しく読み取ることができるでしょうか。
– なぜ`funcA`の引数に関数である

元記事を表示

白黒背景画像から透過画像をPythonで生成する

# はじめに

アルファチャンネルの存在しない画像、例えばグリーンバック画像から完全なオリジナルの透過画像を生成するような問題は、条件式が不足していて明らかに解が一意に定まりません。ですが、画像が2枚あれば話は別です。以下のような2枚の画像のが与えられた場合に、透過画像をPythonで生成する問題について説明します。

1. 黒背景画像とアルファチャンネル画像の2枚
2. 白背景画像とアルファチャンネル画像の2枚
3. 黒背景画像と白背景画像

![3720289459-5044-67a1-13ae-334f8d5d44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78152/6d138000-a2ee-e42c-0262-505c36580777.png)

# 問題設定

アルファ付きの元画像の各ピクセルを $\vec{x}$ とし、以下のように表すとします。
“`math
\vec{x} =
\left( \begin{array}{c} x_r \\ x_g \\ x_b \\ x_a

元記事を表示

ただただシンプルに FizzBuzz する

– [剰余演算子を使わずにFizzBuzzを解く](https://qiita.com/nkfrom_asu/items/783c6be996abe6cc2a67)

– [% 演算子を使わずとも算数の知識だけでFizzBuzzができる例](https://qiita.com/esehara@github/items/a4fbdc64896663add2ab)

– [if文を使わずにFizzBuzzしてみた](https://qiita.com/Mitz-TADA/items/e6dbcad8a4c56a735cd8)

Python は,もう忘れたので Julia で(別のやり方で)やってみる。

“`Julia
function fizzbuzz(n)
fizzbuzz = string.(1:n)
[fizzbuzz[i] = “Fizz” for i in 3:3:n]
[fizzbuzz[i] = “Buzz” for i in 5:5:n]
[fizzbuzz[i] = “FizzBuzz” for i in 15:15:n]

元記事を表示

Argos Translateを用いたPythonによる外部APIに依存しない英語日本語相互翻訳の実行に関するメモ

# はじめに
– ネットワーク的に孤立した環境や、外部に通信ができなくなる環境で英語を日本語にする翻訳、あるいはその逆が使いたい場合の実現方法

# 前提
– Windows 11 Pro 22H2
– conda 23.1.0
– Python 3.10.9

# 全体の流れ
1. 仮想環境の作成
2. 前提モジュールの導入
3. argos-translateの基本的な使い方
4. 実装例
5. 補足

# 仮想環境の作成
– 今回はAnaconda環境で作成する
“`
conda create -n argos-translate
“`

# 前提モジュールの導入
– 記事作成時点(2023年2月11日)ではcondaでは”argos-translate”がインストールすることは”conda-forge”を含めてもできないのでpipでインストールする
“`
conda activate argos-translate
pip install argostranslate
“`

# argos-translateの基本的な使い方
– “argos-translate”は

元記事を表示

OTHERカテゴリの最新記事