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

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

VSCode拡張機能flake8でE501が邪魔だと感じたらすること

## 前置き

はいどうも、たねだです。
ご無沙汰になりました。
プログラミング自体は続けているものの
いかんせんこういう発信の継続が苦手です。

早速本題ですが、当方プログラミング初心者です。
PythonをメインにVSCodeでプログラミングをしており、
フォーマッターとしてflake8を採用しています。

きれいなコードを書くという意味で非常に有用なフォーマッターですが、
割とどうでもいいことなのにエラーが頻発して地味に邪魔。

その名も`E501`。

`line too long (n > 79 characters)`というやつですね。
調べ方が悪くてなかなか対処法が見つからなかったので放置していたのですが、
やっぱり邪魔だなと思いましてこの度片っ端から試しました。
## 対処法
結論から言いますと
設定からflake8のArgsに`–ignore=E501`を入力すればいいだけ!

なんですけども、
それだけだと味気ないですので以下具体的な方法と
ちょっとしたTipsを残しておきます。

### 対処方法
まずはflake8の設定に入ります。

元記事を表示

【断念】プロ野球で応援歌をライブ表示アプリを作ろうとした話

# はじめに
野球観戦が趣味で普段からドームに通っている私
外野席から声出し応援するの本当に楽しいんです。

そんなある日ふとアイデアが浮かんだのです

今打席に立ってる選手の応援歌を表示するアプリあったら便利なんじゃ?

そこから始まる怒涛の3ヶ月と挫折をここに記そうと思います!!

# どんなアプリ?
試合中、打席に立っている選手の情報をライブ表示できるものになります。
球場によってはホームの選手のみ表示してくれるチームも最近は増えてきていますが、ビジターチームやバックスクリーンの画面レイアウト上難しいところもあります。
構想当時は、これ結構需要あるんじゃないか?と思いました。

サンプル画面
![スクリーンショット 2024-10-31 21.16.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121349/346a57e9-c01d-df5f-5384-56ad10fbeefd.png)

主に以下の情報を表示させるようにしています。

・スコア
・選手名
・応援歌
・打撃成

【Python】Webスクレイピングで重要なニュース記事をピックアップする

## 概要
Pythonを用いてNHKオンラインニュースから重要な時事ニュースと科学記事を取得し、タイトルとURLをcsvに保存する。

当初は、requests及びBeautiful Soupを利用してスクレイピングをする予定であったが、対象サイトがjavascriptを使用して動的にデータを表示していたため、seleniumを利用することにした。

## 全体のコード

“`scraping.py
import csv
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

def fetch_news(url, news_category, css_selector, css_selector_url, count):
# ドライバーの設定
driver = webdriver.Chrome(ChromeDriverManager().install())

pythonでエクセルの書式を操作してテキストに差分がある部分だけ赤字にする(協力ChatGPT)

pythonでエクセル操作
二つのcellを比較してテキストに差分がある部分だけ赤色にする
最初はopenpyxlでやろうとしたのですが、それだと部分の書式設定ができないと判明したため
xlsxwriter で挑戦してみました
想定している結果が得られましたよ

当初単語設定を”[a-zA-Z0-9_]+”にしていたせいで原文を保持できず
ChatGPTも無理に原文を保持しようとして上手くいかないケースを返してきてたのですが。
私に電流が走り'([a-zA-Z0-9_]+|[^a-zA-Z0-9_]+)’にして全部とってくればいいじゃん!
ってChatGPTにいったらうまく動作するものが返ってきた。

ChatGPTに「ご指摘の通り」って言わせてやったぜ!(最初の聞き方が悪かっただけである)

“`ChatGPT返信.txt
ご指摘の通り、元の文字列のすべての部分を保持しつつ、単語や記号を適切に抽出するために、
正規表現を見直す必要があります。以下の修正では、単語にマッチする部分だけでなく、
それ以外の部分も抽出し、元のテキストの構造を保持するようにします。
“`

![imag

Pythonパッケージをシェルスクリプト/バッチファイルに埋め込む

Pythonの組み込みライブラリを眺めていたら面白そうなものを見つけました。zipファイルからモジュールを直接インポートできるそうです。

https://docs.python.org/3/library/zipimport.html

何かに使えないかと思い調べたところ、yt-dlpが配布に利用しているのを見つけました。パッケージを収めたzipファイルの先頭にshebangをつければ、同様にしたPythonファイルと同じようにシェルから直接実行できるということです。

https://github.com/yt-dlp/yt-dlp

Windowsのコマンドプロンプトにshebangはないですが、Pythonには1行目を無視するオプションが用意されており実質shebangを実現できます。Pythonはpyランチャー経由で起動するのが最も柔軟でしょうか。

“`
> py –help | Select-String -CaseSensitive “^-x”

-x : skip first line of source, allowing use of non-Unix

ApacheにBasic認証かけるの、意外と簡単なのよ

## まえがき
Basic認証かけるのは意外と簡単!!

![kagi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3908981/28c4558e-af83-e9f3-f13d-b07c738e8a0f.png)

## 前提
Linux上でmod_wsgiつかって動かしてるPython Webアプリケーションであること
今回のケースではEC2上でApache HTTPを動かしている。

## 1. htpasswdツールをインストール

#### 1-a.そもそもhttpd-toolsが入ってるか確認
“`
rpm -q httpd-tools
“`
・入っていない場合: 以下のような文言を吐く
package httpd-tools is not installed

・入っている場合: 以下のような文言を吐く
httpd-tools-2.4.59-2.amzn2023.x86_64

#### 1-b.入ってなかったらインストール
“`
sudo yum install httpd

python/TKのひな形をChatGPTと対話しながら作る

ruby/TKは触ったことありますが、
python/TKは触ったことなかったので
個人的にはQtよりTkのほうが好きです

いざ作ろうと思うと調べるのがめんどくさくなったのでざっくりChatGPTに作ってもらうことにしました。
私の曖昧でへたくそな日本語でもそれなりのものを返してくるChatGPTまじすごい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3638856/9e087d92-139c-bd07-5273-f38d084a6b4a.png)
“`ChatGPT質問.
(1)
下記ようなGUIをpython/Tkで作成してください
ボタンを押すと
[テキストボックス1]
[テキストエリア2]
の内容を[テキストボックス3]のファイル名で保存

GUIレイアウトイメージ
value1=[テキストボックス1]
value2=[テキストエリア2]
output=[テキストボックス3][ボタン(save)]
(2)
保存するフォーマットは、pythonで読める形式でお願いします

初心者向け:コードを改変して学ぶ効果的な方法

## 初心者向け:コードを改変して学ぶ効果的な方法

プログラミングを学び始めるとき、書かれたコードをただ模写するだけでは、深い理解に繋がりにくいことが多いです。そこで、実際にコードを少しずつ改変して、どう動作が変わるかを確認しながら学習する方法が非常に効果的です。この記事では、コードの改変を通じてプログラムの仕組みを理解するための具体的な手順を紹介します。

### 1. **変数の値を変更してみる**

変数はプログラムの中でさまざまなデータを保持しています。変数の値を変えることで、出力がどう変わるのかを確認してみましょう。次の例を参考にして、コードの中の変数の値を変更してみてください。

“`python
# 元のコード
x = 10
y = 5
result = x + y
print(result) # 出力: 15

# 改変例
x = 20 # 新しい値に変更
y = 5
result = x + y
print(result) # 出力がどう変わるか確認
“`

**目的**: 変数に新しい値を入れることで結果がどう変化するかを確認します。これにより

Anacondaを使いこなそう! よく使うコマンドとその活用術

Anacondaは、データサイエンスや機械学習で必須のPythonパッケージをまとめた、パワフルなプラットフォームです。

本記事では、Anacondaを使い始めるにあたって知っておきたい基本的なコマンドから、日々の作業を効率化する便利なコマンドまでご紹介します。

**1. 環境構築と管理**

– **conda create**: 新しい仮想環境を作成します。

“`
conda create -n <環境名> python=<バージョン>
“`

– 例: `conda create -n myenv python=3.8`
– **conda activate**: 作成した仮想環境をアクティブ化します。

“`
conda activate <環境名>
“`

– **conda deactivate**: アクティブな仮想環境を非アクティブ化します。
– **conda env list**: 作成済みの仮想環境の一覧を表示します。(conda info -e でもできる)

複数のグラフを重ねて描画する際の色と線の種類を管理する方法

### 複数のグラフを重ねて描画する際の色と線の種類を管理する方法

複数のデータセットを1つのプロットに描画する際、色や線のスタイルを調整して視覚的に区別しやすくすることが重要です。ここでは、Matplotlibを使用して色や線の種類を指定・管理するいくつかの方法について説明します。

### 目次
1. [色の指定方法](#1-色の指定方法)
2. [線のスタイル指定方法](#2-線のスタイル指定方法)
3. [カラーサイクルの設定](#3-カラーサイクルの設定)
4. [プロットごとの手動設定](#4-プロットごとの手動設定)
5. [カラーマップの使用](#5-カラーマップの使用)
6. [まとめ](#まとめ)
7. [参考文献](#参考文献)

### 1. 色の指定方法

色の指定には複数の方法があります。以下の例では、異なる形式で色を指定しています。

– **名前付き色**: `’red’`, `’blue’`, `’green’` など
– **16進数カラーコード**: `’#FF0000’`, `’#0000FF’` など
– **RGB値**

PythonでIQR法を使って外れ値を検出する方法

# PythonでIQR法を使って外れ値を検出する方法

**この記事のゴール**
IQR法を使用して、データセット内の外れ値(異常値)を検出する手法をPythonで実装できるようになることが目的です。データの分布や異常値の傾向を確認し、データの信頼性を向上させるための一歩となるでしょう。

**目次**
1. [IQR法による外れ値検出の手順](#IQR法による外れ値検出の手順)
2. [Pythonでの実装例](#Pythonでの実装例)
3. [注意点と考慮事項](#注意点と考慮事項)
4. [参考文献](#参考文献)

## IQR法による外れ値検出の手順

IQR法(Interquartile Range Method)は、データの四分位範囲を使用して外れ値を検出する方法です。以下がその手順です。

1. **データの四分位数(Q1, Q3)を計算**
– Q1: データの下位25%点
– Q3: データの上位75%点

2. **IQR(四分位範囲)の計算**
IQR = Q3 – Q1

3. **

複数のグラフを重ねて描画する際のエラーと解決方法

# 複数のグラフを重ねて描画する際のエラーと解決方法

**この記事の目的**
Pythonで複数のデータを重ねてグラフに表示する際、エラーや意図しない表示が起こることがあります。本記事では、特に初心者が遭遇しやすいエラーとその解決方法をわかりやすく解説します。このブログを読むことで、エラーに対処し、複数のデータを効果的に1つのグラフに重ねて表示するためのスキルを学ぶことができます。

**目次**
1. [グラフが重ならず別々に表示される問題](#グラフが重ならず別々に表示される問題)
2. [x軸のデータが正しく対応していない問題](#x軸のデータが正しく対応していない問題)
3. [凡例が表示されない問題](#凡例が表示されない問題)
4. [グラフのスケールが合わない問題](#グラフのスケールが合わない問題)
5. [ラベルが重なる問題](#ラベルが重なる問題)
6. [参考文献](#参考文献)

## 1. グラフが重ならず別々に表示される問題

### 問題点
`plt.figure()`を複数回呼び出してしまうと、新しい

Pythonでリストに複数の要素を効率的に追加する方法

# Pythonでリストに複数の要素を効率的に追加する方法

## この記事の目的
Pythonで複数の要素をリストに追加する場合、操作の効率性やコードの可読性が重要です。本記事では、複数の要素を追加する際に推奨される方法とその特徴を解説します。

## 目次
1. [extend()メソッドを使用する方法](#extendメソッドを使用する方法)
2. [+ 演算子を使用する方法](#演算子を使用する方法)
3. [結論: どちらの方法が効率的か](#結論-どちらの方法が効率的か)
4. [参考文献](#参考文献)

## 1. extend()メソッドを使用する方法

### 概要
`extend()`メソッドは、リストの末尾に複数の要素を一度に追加でき、元のリストを直接変更するため非常に効率的です。

### 例
“`python
# リストに複数の要素を一度に追加する方法
my_list = [1, 2, 3]
new_items = [4, 5, 6]
my_list.extend(new_items) # extend()で複数の要素を一度に追加
p

構造体の作成 (paizaランク C 相当)

https://paiza.jp/works/mondai/class_primer/class_primer__make/

解答は見てくれを表示するだけで、全然構造体を作成してませんでした。

“`python3
N=int(input())
ulist=[]
for i in range(N):
n,o,b,s=input().split()
#入力を元に辞書を作成
u = {
“nickname”:n,
“old”:o,
“birth”:b,
“state”:s,
}
#辞書をリストに追加
ulist.append(u)

for u in ulist:
print(“User{“)
for key, value in u.items():
#キーと値を出力
print(f”{key} : {value}”)
print(“}”)
“`

構造体ならばulist[0].nicknameのような感じで使いたいの

pythonでエクエルの行列を挿入したときに式のアドレスを追従機能をChatGPTに作成してもらう

openpyxl で エクセル操作
insert_rowsで行を挿入した場合、式のアドレスは追従してくれない
ChatGPTに聞いて作ってもらいました所要時間5分。。。
動作確認用の入力データ作成やこの記事作成のほうが時間かかったよ
ChatGPTに使われる素人なボク

これがあれば、仕様変更になって行列追加になっても対応できる!!!

“`ChatGPT.質問.txt
(1)
openpyxl で insert_row を実施したさいに 数式があった場合にずれが発生します、ずれが発生した式を矯正する方法、例えば3行目に空白行を挿入した場合、それより下の”=”で始まる数式で”[A-Z]+[0-9]+”にマッチするアドレスをずらした分に修正する
(2)
新しいinsert_rowとして関数化してください、また列バージョンの例も提示してください
(3)
挿入行より下だけ修正した場合、挿入行より上の式に対応できないようです、なのですべての行をチェックして式の行番号をチェックして挿入行番号より大きい場合に修正するようにお願いします
“`

“`参考入力CSV形式.xlsx
11,=A1

【恐怖】Pythonがターミナルで実行できなくなった。

# はじめに
今回わたしはPythonのコードをGCPにデプロイしようと思ったときに、いろいろ環境を触ってしまった原因でSSL証明書検証エラーに陥ってしまったようです…
恥ずかしながら、`Claude-3.5-Sonnet`くんと相談しながらいろいろとコマンド操作しているうちに変なことをしてしまったようです。

https://claude.ai/login?returnTo=%2F%3F

# 問題の症状
SSL証明書検証エラーが発生し、以下のようなエラーメッセージが表示されました
“`
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
“`

# 解決方法
Python の証明書を更新する!!
ターミナルで以下のコマンドを実行してください。
“`
/Applications/Python\ 3.11/Install\ Certificate

【Python】relativedeltaを利用して年数差を計算する

# 概要
`dateutil`ライブラリの`relativedelta`を使うことで、特定の日付と今日の日付の間の年数の差を計算することができます。サンプルコードを使って紹介します。

## サンプルコード

`relativedelta`は基本的に以下のように使用してその差分を出すことができます。

“`py
relativedelta(datetime1, datetime2)
“`

ドキュメントはこちら。

https://dateutil.readthedocs.io/en/stable/relativedelta.html

以下にサンプルコードを作ってみました。

“`py
from dateutil.relativedelta import relativedelta
from datetime import date

year = 2020
month = 12
day = 1

base_date: date = date(year, month, day)
print(f’base_date: {base_date}’)

today: date = d

PythonでリアルタイムWebカメラ処理を行うときに最新フレームを常に取得する

https://qiita.com/kotai2003/items/466b2be885ff4cdbbde2
↑の記事にてPythonでリアルタイムWebカメラ処理を行うときの方法が書いてある.
この方法を参考に最新フレームを取得できるようにしたものが以下のコードである.
尚,必要のないコードは消したり改変したりしてしまったので,必要な人は適宜直してもらうと良いと思います.

# 全体コード
“`python
import cv2
import numpy as np
import threading
import queue
import time

class CameraThread:
def __init__(self):
# Initialize camera
self.camera_source = 0
self.camera_width = 640
self.camera_height = 480
self.camera_frame_rate = 30
self.ca

【Python】uvで始めるPythonプロジェクト

## はじめに

**Ryeで始めるPythonプロジェクト**を執筆してから半年近く経ちました。
(よければ、まずRyeの記事から読んでいただけると嬉しいです)

https://qiita.com/kissy24/items/37c881498dcb8a01f3bd

この半年でuvが大きく成長し、Ryeと同等かそれ以上のプロジェクトおよびパッケージ管理ができるようになりました。そのため、今度は**uv**を使って開発を進めたい方向けの記事も上げてみようと思いました。
本稿はRyeの記事同様、ハンズオン形式で誰でも気軽にプロジェクトを作れるようになっています。また、Ryeとの違いについても簡単にですが、言及します。

### ハンズオン環境
– Ubuntu / MacOS
– uv : 0.4.24

## 0. uvとは?

Rustで書かれた非常に高速なPythonパッケージとプロジェクト管理ツールです。

https://docs.astral.sh/uv/

以前に、Ryeの記事を執筆した際には、「パッケージインストーラー(pip等)の代替」ような位置づけでuvを利用して

野球の審判(力試し編) (paizaランク C 相当)

https://paiza.jp/works/mondai/c_rank_skillcheck_archive/umpire_01

### 考え方
Pythonはswitch文がないとのことで、辞書を使用しています。
アウトかフォアボールが成立した時点でループを抜けたほうがいいかもしれません。

“`python3
s=[input() for _ in range(n)]
c={“ball”:0, “strike”:0}
for i in s:
c[i] += 1
if c[“strike”] == 3:
print(“out!”)
elif c[“ball”] == 4:
print(“fourball!”)
else:
print(i+”!”)
“`