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

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

開発ツールで確認されるようなソースコードが、Pythonのrequests.get()で取得できないときの対処法

# はじめに
ブラウザの開発ツールから確認するかぎりでは、ソースコードが確認できるwebページ。
しかし、いざ`python`の`requests.get()`でページのソースコードを取得しようとしてもソースコードを得られない場合があります。
本記事では、このような場合の対処法のひとつを示します。

# 解決策
**`requests.get()`の引数`headers`にUser-Agentを指定する**
“`python
import requests
url = “” # webページのurl
response = requests.get(url, headers={“User-Agent”: “”})
“`
User-Agentの指定の仕方の一例は[こちら](https://yuki.world/python-requests-useragent/)。
自分の場合は、User-Agentに空文字列`””`を指定しても解決しました。

# User-Agentとは
webサイトを閲覧するためのブラウザ情報やOS情報。
これを指定することで、ブラウザの開発ツールで確認されるよ

元記事を表示

若手社員のAI部署での利用技術紹介

## はじめに
はじめまして、私は2022年に新卒としてBIPROGY株式会社に入社した高場です。
今回は若手社員の仕事紹介として記事をまとめます。

## 組織の紹介
私が所属している組織は AI 技術部と言い、主に AI を用いたサービスの検討等を行っています。
また、企業や研究機関と協力して共同研究を行うこともあります。
その中で私は主に自然言語処理や時系列データを扱う案件を主に担当しています。

## 案件紹介
### 全体概要
自然言語処理を取り扱っている案件としては、学校教育への支援システム(PoC)などがあり、時系列データの取り扱っている案件としては、 **国立研究開発法人科学技術振興機構(JST)** と協力して行っている **個人及びグループの属性に適応する群集制御**[^1]があります。

今回の記事では、時系列データを取り扱っている群集制御(群集マネジメント)に関する取り組みについて簡単紹介にします。

### 群集マネジメントとは
群集マネジメントとはざっくり言うと **集まった人々の安全・安心と快適な徒歩移動を支え、人々の満足度を高める予防安全活動​*

元記事を表示

歴史を作る時間 (paizaランク C 相当)

https://paiza.jp/works/mondai/query_primer/query_primer__history

タプルのやり方を完全に忘れてたので、調べつつ対応しました
まあ、中身としてはうーんnamesは必要ない気がします。。。
一応出したけど。
historiesは内包表記ができなさそうなので、普通に。タプル化して配列に入れてます。
タプル化したやつをどうやっていれるかってことでちょっと迷ったけども。

その後は、sortedしたやつをそのままプリントするだけですね。
クエリじゃない問題だと思ったのですが案の定でした。

“`py
N,K = map(int,input().split())
names = {input() for _ in range(N)}
histories = []
for i in range(K):
event,charge = input().split()
histories[i] = (int(event),charge)

for year, name in sorted(histories):
p

元記事を表示

話した言葉を文字起こしするアプリの作成

今回は、pythonで、話した言葉を文字起こしするアプリを作成しました。
これは、タイピングが苦手な人や、紙のメモをパソコンにそのまま入力したいときなどに役立ちます。

https://github.com/mt1-m/voice_memo

# 使用方法
zipファイルをダウンロードして解凍したら、voice_memoディレクトリで下記を実行して必要なライブラリをインポート、
“`
pip install -r requirements.txt
“`
できたら下記を実行します。
“`
python voice_memo.py
“`
## 実行結果
![実行結果1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3426433/f37203a1-ad41-3585-1a99-50f12abf4a89.png)
このように、話した言葉を文字起こししてくれます。頑張って発音すれば英語もいけます。終了するときは、’q’キーを押します。

# 実装方法
今回は、マイク入力と文字起こし共に、speech

元記事を表示

【Python】sorted関数を利用して同じ組み合わせのクエリ実行(DBアクセス)を減らす方法

# 概要
`sorted`関数を利用することで、 DBアクセスする回数を減らすことができましたので紹介します。

## サンプルコード1
`sorted`関数とは、イテラブル(リスト、タプル、辞書など)をソートした新しいリストを返す関数。
以下、シンプルなサンプルコードです。

“`py
def sort_and_tuple(input_list):
sorted_tuple = tuple(sorted(input_list))
return sorted_tuple

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
result = sort_and_tuple(my_list)
print(result) # (1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9)
“`

`sort_and_tuple`関数は、入力としてリストを受け取り、そのリストをソートした後、タプルに変換して返します。このように、`sorted`関数と`tuple`関数を組み合わせることで、リストの要素をソートし、その結果を変更不可

元記事を表示

STEP: 1 アイドルグループ

今週前半はAWSの試験があり、直前だったので一旦お休みしてました。

https://paiza.jp/works/mondai/query_primer/query_primer__idle_group

“`py
N,K = map(int,input().split())
A = {input() for i in range(N)}
for _ in range(K):
command = input().split()
if command[0] == ‘handshake’:
for name in sorted(A):
print(name)
elif command[0] == ‘leave’:
A.remove(command[1])
else:
A.add(command[1])

“`
久しぶりだったのでちょっとど忘れしたりして長引いてしまいました。

キー無しの辞書は{}でできて、
削除や追加はremove,addでできる。
順序はもちろんsortedで。

元記事を表示

ChatGPTを使ったクイズアプリを作ってみた

# はじめに
ChatGPTを使ったクイズアプリを作るにあたって、
前回まではChatGPT APIの呼び出し方について紹介したので今回は実際に完成したアプリを紹介していきたいと思います!

API呼び出し編については以下の記事でまとめています。
https://qiita.com/kitaji12/items/ac770569db6fcc7169ad

# 事前情報
– OpenAI / ChatGPT 初心者
– クイズアプリは React + Flask で作成

# 開発環境
– macOS Sonoma 14.4
– Visual Studio Code 1.87.2
– Python 3.10.6
– Flask 2.3.2

# プロンプト準備
– [前回の記事](https://qiita.com/kitaji12/items/ac770569db6fcc7169ad)で紹介した以下の形式で準備していく
`model`:今回は **gpt-3.5-turbo** を使用
`messages`:ChatGPTに投げる質問を記載する
– `rol

元記事を表示

友達のじゃんけんの勝敗判定のコードを効率化&わかりやすくしてみた

## 自己紹介

Python大好きwhile-true-ifです。

## 対象者

– Python好きな人
– Python初心者
– Pythonでじゃんけんのコンソールアプリを作りたい人

## この記事を読む前に

– この記事では効率化という言葉が使われます。ここでいう効率化とは、「コードを書く効率」です。処理時間ではありません。
– あくまでもこの記事は2人のじゃんけんに特化した勝敗判定となっています。3人以上は想定していません。
– この記事に出てくる「よりよいコード」とはだいたい同じくらいの処理時間(差が1000ms以内)であり、コードが短くなることを意味します。

## じゃんけんとは

**グーとチョキとパーがあります。**

下の表は左側のグー・チョキ・パーが自分の出した手で、上側のグー・チョキ・パーが相手の出した手です。

オシロスコープ上で動くゲームを作る方法

# 概要
オシロスコープを使って画像や動画を描いてみたい!
と思った方に向け、この記事を書いていきます。
最終的には以下の画像のように、絵をオシロスコープ上に描くことができます。

![RigolDS3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3756939/10efc3b0-a319-bd16-36f9-6e2a8af61a68.png)

# 方法
## 1 用意するもの
– オシロスコープ
– Pythonの開発環境
– National Instruments (NI USB-6212)
– コントローラ(JC-U3613M)

### 開発環境
– Python3.8.6
– ライブラリ
– nidaqmx
– numpy
– matplotlib
– pygame
– time
– Image
– 使用したソフト
– VScode editor

“`
import numpy as np
import matplotlib.p

Raspberry Piでスマートロック作ってみた

# はじめに
大学の授業の最終課題でRaspberry Pi3 modelAを使ったスマートロックを作ったのでまとめていきます。作った理由としては鞄からいちいち鍵を出すのが面倒というのと、家族友人が泊まりに来た際に鍵を共有したかったからです。
初学者のため拙い説明が多くなるかと思いますがご了承ください。
# 使ったもの
1. ハード
– Raspberry Pi3 modelA
– サーボモータ(SG92R)
– タミヤ ユニバーサルアームセット
– 結束バンド
– その他テープ等
1. ソフト
– Python3
– Bolt for Python
– iOS Shortcut
1. 外部サービス
– Slack
# Slack APIの設定
今回はSlackに入力された文章をトリガーにラズパイが鍵を操作するようにしています。そのため、まずはラズパイでSlackを監視できるようにSlackアプリを作ります。
[Bolt for Pythonの入門ガイド](https://slack.dev/bolt-python

【Python×Twitter】TwikitでらくらくSNS運用

TwitterをPythonで運用したい人向けの記事です。
Python初心者の方でもコードをコピペして実行できるような記事を心がけます。

:::note
この記事では、Python3.12.2での動作確認のみ行なっています。
Twikitのアップデートで動作しなくなる場合もありますのでご注意ください。
:::

# Twikitの導入
まず、今回メインで使用するTwikitについて説明します。
Twikitは、TwitterのAPIを簡単に操作できるようにするライブラリです。
Pythonで有名なtweepyと違うのは、APIキーなどの発行が不要なことです。
tweepyだと開発者ポータルから申請する必要がありますが、
twikitなら必要なのはユーザー名とパスワードだけです。

https://github.com/d60/twikit

twikitはpipを使ってインストールできます。
“`:Terminal
pip install twikit
“`

# Twikitの使い方
簡単な英語とPythonの文法が理解できればすぐに使えます。

## ログイン
Twik

色々な言語の Dictionary のキーの型の扱いについて調べてみた

Dictionary や object のキーに複数の型を指定した場合、どういった扱いになるのかが非常に気になったので、自分の知っている範囲の言語で試してみました!

# Python の場合

“`python:Python
a = {}
a[1] = “int”
a[1.0] = “float”
a[“1.0”] = “str”
# => {1: ‘float’, ‘1.0’: ‘str’}
“`

int と float は同一視されるようです。Python では `1 == 1.0` が成立するので、これは合理的な気もしますね。使う側は非常に安心できます。他にも、True, False, Fraction, Decimal なども同一視されるようです。

> Numeric values that compare equal have the same hash value (even if they are of different types, as is the case for 1 and 1.0).

https://docs.python.org/3.5/lib

ABC346 with Python(A~F)

今回は、初めてのQiita記事投稿がてら、ABC346のA-F問題までの解説をPythonで書いてみました。誰かのお役に立てれば幸いです。。。

# A – Adjacent Product
## 問題
$N$ 個の整数 $A=(A_1,A_2,\cdots,A_N)$が与えられます。
また、$B_i = A_i \times A_{i+1} (1 \leq i \leq N-1)$ と定めます。
$B_1,B_2,\cdots,B_{N-1}$ をこの順に空白区切りで出力してください。

https://atcoder.jp/contests/abc346/tasks/abc346_a

## 考察
隣り合っている要素同士の積を計算してリストに代入、それを答えとして表示する。

## コード
“`python:A.py
N = int(input())
A = list(map(int, input().split())
B = []
for i in range(N – 1):
B.append(A[i] * A[i + 1])
print(*B)
“`
#

【生成AIアプリ100チャレンジ】(1)自然言語生成AIアプリ

# 公開中サイト

https://ai.nuevo.jp/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# PYTHONとDjango環境

 生成APIが流行しているので、PYTHONとDjango環境でアプリを作成してみた。
最初のアプリなのでプロンプトを送ったら、プロンプトが戻ってくるだけのシンプルなものです。
基礎中の基礎ですけれども、プロンプトを送ってレスポンスをもらうだけですが、いろいろと大変だった。

https://docs.djangoproject.com/ja/5.0/

 それと、PHPエンジニアでPYTHONはまだまだ経験不足

『モデルベース深層学習と深層展開』読み会レポート#0

# 概要
– オンラインで開催している[『モデルベース深層学習と深層展開』読み会](https://majime-ni-study.connpass.com/event/)で得られた知見や気づきをメモしていく
– ついでに、中身の理解がてらJuliaサンプルコードをPythonに書き直したコードを晒していく
– 自動微分ライブラリにはJAXを使用する

# 第0回
## 大まかな内容
– モデルベース深層学習と深層展開の概説
– 上記がどんな事に応用可能か
– 微分可能プログラミングとしての実現方法について
## 議論になったこと
### 1.1.1節 あたり
– モデル駆動アプローチの実例
– 制御だと運動の法則等からモデリングする
– 通信だと、電波や媒質(空気など)を支配する法則からモデリング
– アンテナなど部品は物理系の法則
– 通信だと周波数領域のパラメタの同定に学習要素があるかも
– 図1.1を眺めながら
– 真ん中の図はNNの重みも学習可能パラメータでは?
– おそらくそう。NN以外の計算に埋め込んだパラメ

誕生日のパラドックスをpythonを使って検証してみた

# 概要

**誕生日のパラドックス**とは、「同じ誕生日の人がいる確率が50%を超えるのは、何人集まれば良いか?」という問題において、結果が直感と反しているというパラドックスです。

確率を計算すると以下の結果になります。

– 40人の場合は、`約89.12%`
– 23人の場合は、`約50.73%`

個人的にも納得できないので、Pythonを使って検証をしていきたいと思います。

# 計算式

同じクラス内に1組以上の誕生日が一致する確率は以下の式から導き出せます。(nは1クラスの人数)

“`math
p(n) = 1 – \frac{365!}{365^n(365-n)!}
“`

# コーディング

## 関数①:計算式を基にコーディング

まずは、計算式を基にプログラムを書いてみました。

“`python
def birthday_paradox_prob_calc(n: int) -> float:
”’
誕生日のパラドックスの計算を行う
Args:
n (int): 人数
Returns:
f

【Python】エラー「IndexError: list index out of range」を出ないようにするorエラー捕捉するコード

# 概要
`IndexError: list index out of range`エラーに遭遇し、このエラーを出ないようにするor捕捉してあげることでエラーをキャッチできるコードを3つ作成したので紹介します。

# `list index out of range`とは
以下のコードを実行すると、リストの最初の要素の`fruit_name`を取得できます。

“`py
def get_first_data_of_list(data, key, sub_key):
value = ”
if key in data:
if sub_key in data[key][0]:
value = data[key][0][sub_key]
return value

information = {
“fruit”:
[
{“fruit_name” : “apple”,
“fruit_price” : “200” },
{“fruit_name” : “banana

Python の dict のキー 1.0 と 1 は同一視される(そして True も!)

Python のキーで、int と float、つまり整数と浮動小数点は同一視されるようでした。たとえば 1.0 と 1 は同一視されるようです。仕組みは、謎です。

# コード

“`python
a = {}
a[1] = 100
a[1.0] = 200
print(a) # => {1: 200}
“`

キーは最初に指定した値が採用されるようです。

“`python
b = {}
b[1.0] = 300
b[1] = 400
print(b) # => {1.0: 400}
“`

`__hash__` の値を見てみましょう。

“`python
(123).__hash__() # => 123
(123.0).__hash__() # => 123
(123.456).__hash__() # => 1051464412201451643
“`

なるほど! 驚きですね!

Python 3.5 のドキュメントに書いてありました。

> Numeric values that compare equal have the same hash value (

LIMEによる機械学習モデルの局所説明

# はじめに
こんにちは、@sasshi_iです。

本日はXAIの手法の1つであるLIME(Local Interpretable Model-agnostic Explanations)について説明したいと思います。

LIMEは**局所説明**の手法です。

LIMEはある入力に対して機械学習モデルの出力に寄与した特徴量を算出します。
局所説明って何?という方はこちらの記事をご覧ください。

https://qiita.com/sasshi_i/items/400b7672d8b80bfc3a28

それでは、LIMEがどのように機械学習モデルを説明するのかを説明していきます。

# LIMEとは?
LIMEは、**複雑な機械学習モデルを説明するための解釈可能な機械学習モデルを作ります**。

LIMEがどのように機械学習モデルを説明しているかみていきましょう。

## どのようにして解釈可能な機械学習モデルを得るのか
LIMEは、複雑な識別境界や内部ロジックを持つ機械学習モデルであっても、説明対象の近傍に限れば、単純な(解釈可能な)機械学習モデルで近似できると仮定しています。

PythonでExcelグラフを出力したのに最後のデータが反映されない問題を解決しました

## PythonのExcelグラフはめちゃめちゃ癖が強かったというお話
私は毎年読書の記録をスプレッドシートでつけています。

年末には集計して読了数、購入媒体、ジャンルなどをグラフ出力しているのですが、Pythonでグラフのひな形を書いておいて出力したら楽かな?と思い立ち、PythonのExcelグラフ出力を試みてみました。

とりあえずラフにデータを書き込んで出力させてみたのですが、どういうわけか3つ項目があるうちの2項目までしかグラフに反映されず詰まってしまいました。

#### テスト用にラフに作ったExcelの元データ(2024read.xlsx)
![xl01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2984316/528c0b35-1e51-b07f-64df-d8b59e3ac6d6.jpeg)

#### パイチャートを出力させるために書いたコード
※openpyxlライブラリをインストールする必要があります

“`python
import openpyxl
from op

グー チョキ パー