- 1. 【AtCoder】ABC194E Mex Min Python解説
- 2. Pythonチートシート – 正規表現の使い方一覧
- 3. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
- 4. アルファベットからなる連続IDを生成するPythonコード
- 5. Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
- 6. Webスクレイパーを作ろう #1
- 7. class-based viewとfunction-based viewの違い
- 8. SKJvillageのスクリーンショット内の顔認識
- 9. Python学習、ボール取り出しゲームの作成
- 10. 【AtCoder】ABC289 のA,B,C,D における Python解説
- 11. C言語でpythonのモジュールを作る
- 12. selenium4 で スクレイピング
- 13. Pythonでの音声信号処理 (10) ノコギリ波の周波数を解析
- 14. Python: 剰余演算子を使わないでFizzBuzzしてみた
- 15. ChatGPTがえぐいっていう話
- 16. 陸上 100m 走の記録をいろいろな回帰モデルで学習し、未来の記録を予測する
- 17. Python 初学者が楽天APIを使って買い物リスト作成アプリを作った(データ加工編)
- 18. Django初学者のざっくり理解
- 19. Python 初学者が楽天APIを使って買い物リスト作成アプリを作った(データ収集編:3)
- 20. 【Python】自作モジュールのimport時にパスが通らない問題を解決
【AtCoder】ABC194E Mex Min Python解説
# はじめに
ABC 194 E 問題 Mex Min を解くために考えたこと、ACできるPython3(PyPy3)コードを紹介します。
# E.Mex Min
[問題ページ](https://atcoder.jp/contests/abc194/tasks/abc194_e)
難易度 : 緑色 1088# 考察
## データ構造の選択
$mex$ : 区間に含まれない & 最小値
⇔ **$1 , 2 , …. , N$ の集合から区間に含まれる要素を削除して残った最小の値** と解釈できます。
区間はスライドするため、この区間に含まれない要素の集合を管理するためには**任意の要素の削除 および 追加** を高速で行えるデータ構造が必要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3012066/f2370664-bdeb-3c4e-1303-8969f5bed2a0.png)
また、*
Pythonチートシート – 正規表現の使い方一覧
これまで、独習Pythonの内容を参考にチートシートを作成してきました。
今回の正規表現に関するチートシートで一区切りとし、次回からは「Pythonではじめるアルゴリズム入門」、”ML for beginners”の内容の学習記録を再利用性・汎用性の高い情報として纏めてみたいと思います。学習予定・記事を執筆予定の書籍・学習コースは以下の通りです。https://www.amazon.com/Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%85%A5%E9%96%80-%E4%BC%9D%E7%B5%B1%E7%9A%84%E3%81%AA%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(材料の計算編)
**このページは以下の続きです**
https://qiita.com/yuuauuy1/items/6d399f6903d9cf068169
今回は、選択したレシピの材料を自分が作りたい人数分の量に変換 ➡ 同じ材料があれば足し算 ➡ お買い物リストとして表示!
という部分を作っていきます。
**イメージはこちら**
選択したレシピの詳細を表示され、ユーザーが何人分の材料にするか入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/dde0dd6e-4201-6387-6177-dddec12ddb23.png)材料がユーザーが入力した人数分に変換されて、表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/da3514b2-7fc0-62dc-191f-056ec7447614.png)**買い物リスト作成アプリの概要はこちら*
アルファベットからなる連続IDを生成するPythonコード
### 概要
SpreadSheetのカラム名のように、A, B, C, …., Z, AA, AB, AC, ADと連続するIDを生成するコードを作成した### コード
なお今回は、Aを自然数における0と同じ様に扱うように設定した。つまり以下となる。
– 正) Y → Z → BA → BB
– 誤) Y → Z → AA → ABこれは、8 → 9 → 00ではなく、8 → 9 → 10であることに等しい
“`python
import stringZERO_CHAR = ‘A’
ONE_CHAR = ‘B’
LAST_CHAR = ‘Z’
CHAR_SERIES = string.ascii_uppercasedef reverse(_list):
return list(reversed(_list))def succ(char):
alphabet_to_num = dict(zip(CHAR_SERIES, [i for i in range(1, len(CHAR_SERIES) + 1)]))
num_to_alp
Python 初学者が楽天APIを使って買い物リスト作成アプリを作る(レシピ検索システム編)
**この記事は以下の続きです**
https://qiita.com/yuuauuy1/items/3448c41c0b684db76edb
今回は、楽天レシピカテゴリ一覧API と 楽天レシピカテゴリ別ランキングAPIを使って
集めたレシピから検索 ➡ 買い物リストに入れたいレシピを選択する
という機能を作っていきます!**イメージは以下の通り**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/3a576d55-d8ac-d00b-65ff-53c031feda60.png)このように、検索ワードを入力したら、以下の検索結果が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/0b5369d7-c86f-0732-9556-853cb5b1d4d7.png)
この中から、以下の様に indexを選択します。
![image.png](
Webスクレイパーを作ろう #1
# Pythonを使ってWebスクレイパーを作る
この記事では,Pythonを使ってWebスクレイパーを作ることを目的としています.
今回は,ココオルのつぶやきを集めるというスクレイパーを作成していきます.
2回に分けて解説していきます.# 環境準備
インストールするもの
– requests : Webページの情報を取得するのに使用
– BeautifulSoup : WebページのHTMLから必要な情報を抽出するのに使用“`
pip install beautiflsoup4
pip install requests
pip install html5lib
“`ライブラリのインポート
“`.py
from bs4 import BeautifulSoup
import requests
import html5lib
import time #収集の際に時間間隔をあけるために使用
“`# Webページの構造の確認
https://cocooru.com/mutters?page=1
を開き,アクセス後F12キーを押し,左上の矢印をクリック後,カーソル
class-based viewとfunction-based viewの違い
# class-based viewとfunction-based viewの違い
本稿ではDjangoの実装でよく用いられるけど、似ているからごっちゃになる2つについて説明します。## イメージでとらえる
具体的な説明に入る前に、まずはイメージで捉えていきたいと思います。
– class-based view:お惣菜
– function-based view:料理
です。お惣菜は、便利です。料理をしたくないときに買ってきたら、すぐ食べることができるし、一定のおいしさは担保されています。しかし、「もうちょっと味濃かったらな」とか「具材の組み合わせがなんか違う」といったような融通の利かなさが出てくるかもしれません。
一方で料理はめんどくさいです。献立を決めて、食材を選び、調理をしなくては食べれません。おいしさだって「砂糖と塩を間違える」といったべたなミスや、「焼きすぎ、煮込みすぎ」などの調理ミスで左右されます。しかし、自分の思うように作ることができます。味も食材も自分の自由です。class-based viewとfunction-based viewも同じ関係です
SKJvillageのスクリーンショット内の顔認識
# 1.あらすじ
今回は導入として、pythonとOpenCVを用いて、ゲーム実況系Youtubeグループ[SKJvillage](https://www.youtube.com/@SKJVillage)のスクリーンショットからメンバー3人(その他の人物も含む)の顔認識を試みました!# 2.顔認識とは
顔認識とは、データの中で顔を検出することです。方式は人によって様々ですが、今回は下の画像のように顔認識を行うと顔の部分に赤枠が生成されます。
![arigatou-detect2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128356/68b27fd9-749f-0f32-3d18-fdfe3bcb608b.png)# 3.実験方法
今回は、OpenCVに存在する分類器を用いてpythonで実行し、スクリーンショットに対する顔認識を行います。実行にはGoogle Colaboratoryを用います。プログラムを以下に示し、プログラムの後に詳細を説明します。
※Googleアカウントを持
Python学習、ボール取り出しゲームの作成
こんちわ、kmdです。
学習3週間目です。
今回はこのような問題を解いていきました。
↓ 参考サイト
https://joytas.net/programming/python/python%E6%BC%94%E7%BF%92%E5%95%8F%E9%A1%8C%E5%88%9D%E7%B4%9A“`
1~99の番号のついたボールが計99個入っている袋
その中から2人が交互にボールを取り出し大きい数を引いた方が勝ちとなる。
ゲームは5回戦で競う。
なお、取り出したボールは袋に戻さないものとする(同じボールを二度ひくことはない)
“`“`ballgame.py
import randomdef game():
balls=list(range(1,100))
random.shuffle(balls)
playerwin = 0
comwin = 0
for i in range(5):
player = 0
com = 0
player = balls[i] #プレイヤーにリ
【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)
C言語でpythonのモジュールを作る
C言語でpythonのモジュールを作ってみる。
# 環境
Ubuntu22.04LTS
python3.10
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0今回は、/dev/randomから真性乱数を取得するCのソースを使って、それでモジュールを作ってみます。
モジュール名、frandom# ソース
“`frandommodule.c
#include
#include
#includestatic FILE *fp=NULL;
static int count=0;
#define RANDOMMAX (0x0000ffffffffffff)// サブ関数
// 48bit符号なし整数の乱数を乱数デバイスから得る
//
static int64_t get_48bit_random() {
int c;
char buff[sizeof (int64_t)]={0,0,0,0,0,0,0,0};
for (int idx=
selenium4 で スクレイピング
とりあえず、動くコード
ヤフーのソースを表示するだけ。
“`
yum -y install libX11 GConf2 fontconfig
yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
fc-cache -fv
yum -y install google-chrome-stable libOSMesa
python3 -m pip install selenium
python3 -m pip install webdriver-manager
“`今回はwebdriver-managerを使用するので、わざわざドライバをダウンロードする必要がない。
# chrome
“`hoge.py
from selenium import webdriver
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWai
Pythonでの音声信号処理 (10) ノコギリ波の周波数を解析
## 今回のテーマ
以前、ノコギリ波を秒間440回繰り返して音を出したときの波のデータについて、どのような周波数が含まれているのかを調べてみる。(前回挙げた疑問点の残るひとつは、とりあえず保留して次回以降へ)
## やってみた
“`p10_1.py
# -*- coding: utf-8 -*-
import sys
sys.dont_write_bytecode = Truefrom Grp import Line, Bar
import Dummy as dmy
import numpy as np
import Analyze as ana
from multiprocessing import Process
import time
import mathdef main():
orgsmpl = 44100 # サンプリングレートは44.1KHz
sec = 1 # 1秒分# ノコギリ波
# -> 440回繰り返したいので、サンプル数を440分の1にして、あとで440回繰り返す
smpl = int(
Python: 剰余演算子を使わないでFizzBuzzしてみた
[剰余演算子を使わずにFizzBuzzを解く](https://qiita.com/nkfrom_asu/items/783c6be996abe6cc2a67) の題名を見て「そうだよな剰余演算子って別になくてもできるよな」って妙に納得してしまったので、自分だったらどうやるかな?と思って考えてみました。
「3の倍数かどうか」 と考えれば剰余演算子の出番ですが、「みっつめごとに”Fizz”になる」と考えれば別のやりかたがありそうです。
“`py:
def print_fizzbuzz(n):
for i, fb in enumerate(fizzbuzz_gen()):
if i >= n :
return
print(fb)def fizzbuzz_gen():
for f, b in zip( mod_gen(3, “Fizz”)
, mod_gen(5, “Buzz”)
):
yield
ChatGPTがえぐいっていう話
# ChatGPTって?
OpenAIが提供しているチャットでやりとりする形のサービスです.
こいつがすごい.その辺の人間よりよっぽど賢いです.自分はAIが人間にとって代わるなんてまだまだ先派だったんですが,ChatGPT見ると…アレ??って感じです?
研究等自分で触っているAIではデータが少なく,できることが限られているというのも1つあるんですよね.
ChatGPTはえぐい量のデータを学習させているので,えぐいことができています.いやぁ…えぐいよ…?
Googleアカウントとかで誰でも無料で使えます.Wow
[ChatGPT: Optimizing Language Models for Dialogue](https://openai.com/blog/chatgpt/)# やばすぎる記事たち
TwitterでもChatGPTの記事ばかり流れてきます.
大学入試等の試験も軒並み合格ラインを出しているらしいです.(難関大ですよ
…俺より優秀じゃんね(´;ω;`)– [米医師試験で合格ライン](https://news.yahoo.co.jp/articles/4
陸上 100m 走の記録をいろいろな回帰モデルで学習し、未来の記録を予測する
# 概要
陸上競技の男子 100m 走の歴代3900 傑のリストを使って、回帰分析を行いたいと思います。いろいろな回帰モデルを使って分析を進め、決定係数 R2 で比較していきます。さらに、2030 年と 2050 年にどれくらいの記録が出るのかを、それぞれのモデルを使って予想していきます。それぞれのモデルがどのくらいの記録を予想するのか興味が惹かれます。
# 環境
– M2 Mac
– JupyterLab 3.3.2
– Python 3.9.12
– Numpy 1.21.5
– Pandas 1.4.2
– Matplotlib 3.5.1
– Scikit-learn 1.0.2# 分析
## 1. Data 前処理
### 1) 100m Excel Data の読み込み
最初に陸上競技の男子 100m 走の歴代3900 傑のリストの Excel ファイルを読み込みます。100m の歴代リストは下記のサイトから取得しました。Data 出典 : http://www.alltime-athletics.com/men.htm
“`
import pandas
Python 初学者が楽天APIを使って買い物リスト作成アプリを作った(データ加工編)
**この記事は以下の続きです**
https://qiita.com/yuuauuy1/items/3a442f40f2ba77552f0b
今回は楽天レシピから取得した「材料」と「量」のデータを加工していきます。
買い物リスト作成アプリの機能として、
・同じ材料名の**量を足す**(玉ねぎ:1玉 + 玉ねぎ:1/2玉 = 玉ねぎ:3/2玉 みたいな)
・ユーザーが欲しい人数分の量に**変換**する(1人前:玉ねぎ:1/2玉 → 3人前:玉ねぎ:3/2玉 みたいな)
というところを実装したいです。これがやり易いようにデータを加工していきます。
**買い物リスト作成アプリの概要はこちら**
https://qiita.com/yuuauuy1/items/5bb4a53ab15bde354297
**★このページは以下項目で構成されています★**
| 項番 | ページ内リンク |
|:—-:|:————-|
| 1 | [目指すデータ型](#目指すデータ型) |
| 2 | [やること](#やること) |
| 3 | [記号を消す・文字を変換する]
Django初学者のざっくり理解
# RenderとRedirect
Djangoの勉強をしていて、`Render`と`Redirect`がこんがらがったので整理のためにまとめます。# Render
## Renderの記述
まずはRenderの記述から見ていきます。
“`python:Render
def hoge_view(request):
object_list = Model.objects.all()
return render(request, ‘hoge/hoge.html’, {‘object_list’ : object_list})
“`
まず、renderはviewの中で使われています。引数は前から順に、`リクエスト`、`テンプレート`、`データ`です。前2つは、[前回記事](https://qiita.com/devagar/items/919cdf77b7dccd852f2f)を参照してください。
今回の記述において、データは`モデル`の情報を使っています。モデルのすべてのオブジェクトを取得して、キーと値の組み合わせで利用しています。## Renderの動
Python 初学者が楽天APIを使って買い物リスト作成アプリを作った(データ収集編:3)
**この記事は以下の続きです**
https://qiita.com/yuuauuy1/items/c7b544eda29f90ee12e5
今回は、こちらの表のURLを使って各レシピの材料と量を取得していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/8a8552e1-dce6-d661-b891-36066cbec841.png)作りたい表はこちら(どのようなデータ型にしたいか考えるの大切!)
二つの表のindexは対応しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983287/6ac2fc6f-90f6-d55f-035f-407b24631297.png)**買い物リスト作成アプリの概要はこちら**
https://qiita.com/yuuauuy1/items/5bb4a53ab15bde354297
**★このページは以
【Python】自作モジュールのimport時にパスが通らない問題を解決
## 環境
Python 3.8.10## 初めに
研究で自作モジュールのimportが上手くいかなった時の記録をメモ。
ディレクトリ構成は以下。![スクリーンショット 2023-02-10 16.41.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3131671/f450bb0f-50bc-0eed-c869-1bbaf053baac.png)
## 先に結論
自作モジュール自体が他の自作モジュールをimportする場合、実行したいファイルにおいて、利用する全ての自作モジュールのパス(実行したいファイルからの相対パス)を通す必要がある。反対に、他の自作モジュールをimportしている自作モジュールでは、パスを通す必要はない。
## パスが通らない様子
再掲
![スクリーンショット 2023-02-10 16.41.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3131671/f450bb