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

Python関連のことを調べてみた2023年09月30日
目次

【Tkinter】ファイルダイアログから選択したファイルをファイル名でリストに追加する

### 実現したいこと
Tkinterにて、ファイルダイアログから一括選択した複数のファイルファイル名でリストに1行ずつ追加していく

### 環境
OS:Windows 10
Python Version:3.11.1

### コード
“`ruby:Filename_list.py
import tkinter as tk #tkinterのことをtkと略して書きたい場合に記述。
import os #OS機能を使用するライブラリ。今回はファイル名の取得を行うために使用。
from tkinter import * #tkinterモジュール内で定義されているメソッドや変数をまとめてインポート
from tkinter import filedialog #tkinter内のfiledialogを使用するために記述。

#ウィンドウの作成
window = Tk() #メインウィンドウ”window”を作成
window.title(“PDF”) #”window”のタイトルを定義
window.geometr

元記事を表示

AtCoder Beginners Selection 個人メモ

https://atcoder.jp/contests/abs/tasks
# Welcome to AtCoder
“`python
a = int(input())
b, c = map(int, input().split())
s = input()
print(sum([a, b, c]), s)
“`
“`python
print(int(input()) + sum(map(int, input().split())), input())
“`
# ABC086A Product
“`python
a, b = map(int, input().split())
if a * b % 2:
print(‘Odd’)
else:
print(‘Even’)
“`
“`python
a, b = map(int, input().split())
print(‘Odd’ if a * b % 2 else ‘Even’)
“`
# ABC081A Placing Marbles
“`python
s = input()
print(sum(map(i

元記事を表示

【Python】指定したURLの見出しを抽出してテキスト出力するプログラムを作ってみた【スクレイピング】

# はじめに
サイトの見出し情報を取得したい!

**Pythonなら簡単にできますよ(^^)**

プログラミング副業挑戦中の **そばごろう** です。

twitter ☛https://twitter.com/sobagoro1

今回はChatGPTにPythonで指定したURLの見出しを抽出してテキストに出力するプログラムを書いてもらう手順をまとめます。
# 1.ChatGPTを起動

https://chat.openai.com/
# 2.以下のプロンプトを入力

“`markdown
Pythonで以下のプログラムを書いて
1.ポップアップでURLを指定
2.指定したURLの見出し情報(h1~h6)を取得
3.取得した情報を指定してパスにtxtファイルで保存
※処理完了後に入力したURLはクリアして
※txtファイル名は「output_タイムスタンプ.txt」として
※最初のポップアップにスプレイピングについての注意書きを記載して
“`

# 3.ChatGPTの返事を確認する
すぐに返答が表示されました。
何回かやり取りして使い勝手が良いプログラムに修正しました

元記事を表示

ろうとるがPythonを扱う、、(その14:ping結果をCSVファイル化)

# ろうとるの頭の活性化
タイトルのとおり、Pythonにてping実行結果をCSVファイル化するもの。tkinter上で画面表示も行う。内容も平凡、相変わらず、美しくないプログラムであるが、新たに気がついた事項もあるので、備忘録として残す。

## 最初に実行結果
SimplePing(1回の実行で規定回数のpingを実施)の結果。後述するPythonのicmplibのpingを忠実に使うもの。成功回数だけではなく、平均RTTなどを表示)の結果は下記となる。表示もCSV化している。
![スクリーンショット 2023-08-17 20.18.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/84e2161e-55d0-ba2f-bf75-dfcd2803a8c2.png)
RealtimePing(規定回数のpingを実行かつリアルタイムに結果を表示)の結果は下記となる。icmplibのpingを規定回数呼び出すものである。
![スクリーンショット 2023-08-17 20.29.07

元記事を表示

物理エンジンMuJoCoと強化学習: アリ型ロボットの学習に挑戦しよう!

# 1. はじめに

 以前、下記の記事で強化学習の DQN(Deep Q-Network) を使って宇宙船の着陸ゲームに挑戦しました。

https://qiita.com/key353/items/a39ce9dfc405d9aed58c

 この記事の内容が楽しく、あれから強化学習の勉強をしていたので、今回は少しレベルをあげて、以下の動画のような MuJoCo (Multi-Joint Dynamics with Contact) と呼ばれる物理エンジンを使って、複雑なモデルの強化学習を行いたいと思います。

![Ant-v4](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3130775/7ec0c9d3-92a4-83da-d230-4fc3d0f73cf0.gif)
(学習途中です)

::: note info
MuJoCo 環境は以前まで有料だったのですが、2021年10月にDeepMindに買収され、2022年にオープンソースになりました。
:::

本記事では専門的な解説はそこそこに、強化学習

元記事を表示

オセロ、ランダム実行

前回の記事で本職の方にクラスの使い方をご指導いただけたので、その反省とアウトプットとしてオセロをランダムな置き方で終了まで実行するコードを作りました。
これを基盤として、盤面の状態価値を推定していきたいです。

“`python:オセロ、ランダム実行
import copy
import random

class Board:

dir=[-11,-10,-9,-1,1,9,10,11]

def __init__(self):
self.turn=0
self.reward=[0,0,0,0,0,0,0,0,0,0]#場所ごとの報酬を管理
“””ボードの作成(空き→0,黒→1、白→2、置ける場所→3,壁→5)”””
self.places=[5,5,5,5,5,5,5,5,5,5,
5,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,5,

元記事を表示

2種類の時間帯リストの共通部分を見つける方法

# はじめに

2種類の時間帯のリストがあった場合に、それらの共通部分だけを抽出する方法を紹介する。使いどころは、例えば、2つの装置が同時にONとなっている時間帯だけを計算したい場合 (同時計測の時間帯)など。天体解析では、GTI(Good Time Interval)をマージしたい場合に相当します。

## 簡単なプログラムの例

簡単な例として、

start1 = [0, 10, 21.5, 30]
stop1 = [5, 20, 22.5, 100]

という時間帯、具体的には、 {T : 0 < t < 5 or 10 < t < 20 or 21.5 < t < 22.5 or 30 < t < 100} があった時に、 start2 = [-3, -1, 3, 18, 22.4, 23, 50] stop2 = [-2, 0.5, 7, 22, 22.6, 25, 60] という時間帯との AND を取ると、 start3 = [0, 3, 18, 21.5, 22.4, 50] stop3 = [0.5, 5, 20, 22, 22.5, 60] となる場

元記事を表示

PythonパッケージをPyPIに公開するはじめの一歩

この記事では、簡単な Python パッケージを PyPI に公開する方法を解説します。

## PyPI とは

[PyPI](https://pypi.org/) とは、Python Package Index の略で、Python のパッケージを公開するためのリポジトリです。
Python で書かれたソフトウェアとライブラリを公開、共有するための中央リポジトリとしての役割を果たしています。

### 仕組み

* パッケージの公開: 開発者は自分が作成した Python パッケージを PyPI にアップロードします。
* パッケージの検索とダウンロード: `pip“ はこの PyPI からパッケージを検索し、ダウンロードしてインストールします。

## 1. PyPI のアカウントを作成する

1. [PyPI のアカウント作成ページ](https://pypi.org/account/register/) にアクセスし、アカウントを作成します。
2. 二要素認証(2FA)を有効にします。[PyPI のアカウント設定ページ](https://pypi.org/manage/ac

元記事を表示

ChatGPT で Python プログラミング ケーススタディ: markdown を json に変換

ChatGPT のおかげで、ちょっとしたPythonプログラミングならチャチャっと作れるようになってしまいましたね。今回はそのケーススタディとして、 __「markdown を json に変換」__ するためのPythonコードを書いてみようと思います。この記事は __「データを得る」__ と __「ChatGPT で Python プログラミング」__ の2部構成になっています。どちらも、実際にChatGPTで行ったやりとりを載せています。

# データを得る

### **user**:

漫画「ジョジョの奇妙の冒険」に登場するスタンドを階層的に分類してください。

### **assistant**:

`ジョジョの奇妙の冒険`に登場する`スタンド`を階層的に分類するのは非常に大きな作業となりますが、一部を簡単に分類してみます。以下の分類は`スタンド`のユニークな特性や能力に基づいています。

> 1. 物理攻撃型スタンド
> – 『Star Platinum』(空条承太郎)
> – 『Magician’s Red』(アヴドゥル)
>

元記事を表示

【Python】相関関係を使って、温室効果ガスの増加と避暑地の観光客数の増加の関連性を調べる+今後の軽井沢の観光客数を予測する

#初めに

初めまして。Qiita初投稿・まだまだ勉強中のばりきゃりを目指しつつ適度に働きたい(@moku0517)です。
学習のアウトプット発信の一環として本記事を投稿します。まだまだ勉強中のみですので、暖かくご指摘・コメントいただければ幸いです。

#目的

本分析の目的は、旅行会社で働く私が、避暑地ってだんだん避暑地じゃなくなるのか?そうなったら観光客は来てくれるのか?それとも新たな魅力を発信しないとだめなのか?という疑問を解消するためにおこないます。
旅行会社ですが地域脱炭素普及のための事業をしていることもあり、このような分析をしてみたいと思いました。

#分析手法

– 過去18年の軽井沢の観光客数の変遷と、温室効果ガス排出量の合計をそれぞれデータにする
– 相関係数を確認
– 今後の観光客数を予測

①温室効果ガスの排出量と軽井沢の観光客数との関連を調べる

#データの前処理

 1.日本の温室効果ガスの排出量データの読み込み

日本の温室効果ガスのデータを読み込みます。
“`
from google.colab import files
uploaded

元記事を表示

データ解析面倒だから半自動化してみた

# はじめに
最近、データを触ってみたり、データ分析、機械学習に触れる経験を積むためにkaggleやNishika、signateなどのデータコンペに参加しています。
面白そうなコンペに参加しては、データを眺めたり、EDAしたり、ヒストグラム作成したりしてから、じゃあ機械学習するかーって感じで進めています。
今回はそれらの作業が面倒なのでアプリケーションを作成して勝手にやらせればいいのでは?と思い、Webアプリケーションを作成したのでまとめていこうと思います。

# 背景
機械学習に行う際には、様々な作業が発生します。
そこで1つ頭の中に
**面倒臭くね?**
一からコードを書くの面倒なんですよね。
ということでStreamlitでWebアプリケーションを作成すれば、勝手にやってくれるんじゃね?と思い立ち、作ってみました(かなり雑)

# 機能
今回付けた機能は以下の通りです。
1. データの概要確認(データ型、欠損値、統計値)
1. ヒストグラム、箱ひげ図
1. ヒートマップによる相関係数
1. LightGBMによる機械学習モデルの学習/推論(ハイパーパラメータの変更可)
1. 特

元記事を表示

[jupyter / Python] nbconvert 実行時に “state” が無いというエラーが出る時の対策

# 1. 概要

`ipynb` ファイルを HTML ファイルに変換しようとした時にハマったエラーの対策を記載しています。

# 2. 症状

## 2-1. Jupyter の WEB画面上から変換を試みた場合

ここで HTML 化できるはずだが、

![スクリーンショット 2023-09-27 8.39.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327407/a4be0450-6a3b-f78e-41f0-f7e2c0bc786f.png)

以下のように、エラー表示となる。

![スクリーンショット 2023-09-27 8.39.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327407/194c71f8-abbe-5ae5-2836-e7c5d2dd854a.png)

エラー文言

“`
500 : Internal Server Error
The error was:

nbconv

元記事を表示

【Python】SeleniumでVanJS Click Counterを攻略する

弊社[mori_goq](https://qiita.com/mori_goq)の作成した[VanJS Click Counter](https://vanjs-click-counter.vercel.app/)をやってみたところ、私では高橋名人を超えることができず、悔しくなったため技術力で攻略してやろうと思いました。

https://qiita.com/mori_goq/items/6294380a3c66599b195e

## 結果
結果からお伝えすると、大体730(73クリック/1秒)あたりに落ち着きました。
![meijin.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/359978/d464e0e2-0ddd-6e0c-f908-53342c7ccf71.gif)

## コード
“`python:main.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriv

元記事を表示

綺麗なコードの書き方が学べる技術書3選

# はじめに

みなさん、こんにちは。高校生エンジニアの[Raio](https://twitter.com/Raio14f)です!
平日は公立高校に通いながら、放課後や休日はIT企業のエンジニアとして働いています??‍?

↓筆者について↓

https://qiita.com/Raio14f/items/ef0fb67685b36298bcb0

今回の記事では、**綺麗なコードの書き方が学べる技術書5選**を紹介します!
ご興味ある方は、是非最後までご覧ください!

# 技術書を無料で読む方法
[KindleUnlimited](https://amzn.to/3F9Qh4p)を使うことで、**沢山の技術書を無料で何冊でも読むことが可能です**?

– 200万冊以上の書籍が何冊でも読み放題
– 月額980円が今なら1ヶ月無料
– 場所に囚われず、様々な端末で使用可能

勿論、技術書以外にもビジネス書や漫画など種類豊富です!

**↓入会したい方は画像をクリック↓**
[![画像タイトル](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

Pythonで画像ファイルのIPTCを更新する(pyexiv2)

## はじめに

先日、Pythonのpyexiv2を使って、複数の画像ファイルにつけたIPTCのキーワードを集計するという記事を書きました。

https://qiita.com/st10/items/5ae77fd5393365cce42a

当初は、キーワードの集計ができたところでよしとしていたのですが、キーワードの更新もやってみようと思い、試してみました。

## 環境

* OS: Windows 11 Home 22H2
* Python: 64ビット版、3.11.4

## インストール

* pip install pyexiv2

## IPTC情報のうち、キーワードを更新する

サンプルの画像ファイルからIPTCのキーワードを取得して、取得したキーワードの末尾に現在日時の文字列を追加するという処理を行っています。

キーワードに限らず、更新したい要素の値を作り込み、「要素名: 値」で辞書を作成、作成した辞書をmodify_iptc()メソッドで更新するという流れになります。

“`python
import pyexiv2
import datetime
impo

元記事を表示

応用情報技術者試験の過去問を全取得する

R5秋期のAP直前なので(直前すぎますがw)過去問をしようということになりました。

でも、一つ一つダウンロードするのは面倒くさい!ということでPythonを使って一括ダウンロードしてみました
同様の記事はたくさんありますが、IPAのホームページが最近更新された影響でその方法ではできなくなってるっぽいので新たに書いてみました。
# 全体のソースコード
全体のソースコードはこんな感じです
“`
from os import makedirs, path
from time import sleep
from urllib.request import urlretrieve

ids = [
[“ps6vr70000010d6y-att”, “2023r05h_ap_”],
[“gmcbt80000008smf-att”, “2022r04a_ap_”],
[“gmcbt80000009sgk-att”, “2022r04h_ap_”],
[“gmcbt8000000apad-att”, “2021r03a_ap_”],
[“gmcbt80000

元記事を表示

Django + ChatterBotで5分でチャットボットを作ろう!

**Django** と**Chatterbot**の組み合わせで**簡単にチャットボットがサイト内、アプリ内に作れる**ことを知っていましたか?

「Djangoで業務システムを作っている方」、
「Djangoで自作サイトやアプリを開発している方」、
「Djangoで何か面白いものを作れないか探している方」、

そんな方に届けばいいなと思って記事を書いています。

今日はチャットボットをDjangoで導入するパッケージについて解説します。
最初に**Chatterbot**というPythonパッケージから簡単に説明します。

### Chatterbot

**ChatterBot**は、Pythonで会話型のAIを構築するためのライブラリです。

大きな特徴と言えば、
ユーザーとの会話から学習し、
レスポンスを改善していく能力を持っています。

使い方の手順さえ覚えれば、
プログラミング初心者でも容易に**チャットボットを開発**できるシンプルなライブラリだと思います。

使用例
– 自動応答システムの開発
– AIによるカスタマーサポートの自動化

### DjangoでCh

元記事を表示

Pythonのモジュール/パッケージ/ライブラリ、from / importの違いについて(初心者向け)

#
## はじめに

本業がプログラマじゃないけどPythonをたまに使う自分向けのメモです。PythonでFromとimportをおまじないとして使ってたり、モジュール/パッケージ/ライブラリの整理が少し経つと忘れてしまう人向けのメモです。自作ライブラリやサブフォルダとか作りたくなってきた人はちゃんと理解しましょう。

## ソースコード区分の概念

### モジュール

[モジュール](https://docs.python.org/ja/3/tutorial/modules.html)は、Pythonプログラムの1つのファイル(xxx.py)です。
モジュールは、関数、クラス、変数などのコード要素を定義することができます。
他のPythonプログラムから**import**文を使用してモジュールを読み込み、そのコード要素を使用することができます。
モジュールは再利用可能なコードの1つの最小単位となります。ある機能の実装を1つのモジュールにまとめておくことで、他のプログラムで簡単に利用できるようになります。

### パッケージ

パッケージは、Pythonプログラムの複数のモジ

元記事を表示

【Python】文字列の操作方法

## はじめに
今回はfind系メソッドによる判定方法をいくつか紹介します。
文字列の中に、めつの文字列が含まれているかの判定するには
in演算子を使えば可能ですが、含まれている位置までは分かりません。
なので、含まれている位置を調べるための
**findメソッド・rfindメソッド・indexメソッド・rindexメソッド**
の4つについて紹介いたします。

## findメソッド
“`ruby:書き方
str = “これは文字列です。これは文字列です。”
str.find(“文”)
# 結果:3
“`
文字列strの中に『文』が含まれている場合、その最小のインデックス返却して、
そうでなければ-1を返却します。

## rfindメソッド
“`ruby:書き方
str = “これは文字列です。これは文字列です。”
str.rfind(“文”)
# 結果:12
“`
文字列strの中に『文』が含まれている場合、その最大のインデックス返却して、
そうでなければ-1を返却します。

## indexメソッド
“`ruby:書き方
str = “これは文字列です。これは文字列で

元記事を表示

【仕様検討】Pythonのお勉強も兼ねて、競馬予想AIを作ってみる 【Part2】

長らく放置してしまいましたが、前回の続きです。

仕様の検討ということで、他のサイト様なども参考にしながら、
やりたいことをとりあえず列挙して、そこから内容を煮詰めていけたらと思う。

# 競馬予想AIでやりたいこと
とりあえず予想AIの機能として、盛り込みたいことを列挙してみる。

1. netkeiba.com から、過去のレース情報を取得する
2. 予想するレースの馬場情報・天候・競走馬の情報を取得する
3. レースに出場する競走馬データを取得する
4. 取得したデータ類をデータベースに格納する
5. 過去データを元に学習モデルを作成、レース結果の予想を行う
6. 予想結果と実際の結果を比較し、乖離が大きい場合はモデルを修正する
7. GUIでの操作を可能とする

GUIでの操作は正直後回しでいいのかな?
おおまかに、やりたいことが決まったので、詳細を煮詰めていく。

# 1. netkeiba.com から、過去のレース情報を取得する

過去の情報は開催前日までに、取得することを想定する。

過去の情報の取得と一概に言っても、どの情報を学習に利用するかによって、
取得する内容も

元記事を表示

OTHERカテゴリの最新記事