- 1. 【AtCoder】ABC289 のA,B,C,D における Python解説
- 2. C言語でpythonのモジュールを作る
- 3. selenium4 で スクレイピング
- 4. Pythonでの音声信号処理 (10) ノコギリ波の周波数を解析
- 5. Python: 剰余演算子を使わないでFizzBuzzしてみた
- 6. ChatGPTがえぐいっていう話
- 7. 陸上 100m 走の記録をいろいろな回帰モデルで学習し、未来の記録を予測する
- 8. Python 初学者が買い物リスト作成アプリを作った(データ加工編)
- 9. Django初学者のざっくり理解
- 10. Python 初学者が買い物リスト作成アプリを作った(データ収集編:3)
- 11. 【Python】自作モジュールのimport時にパスが通らない問題を解決
- 12. Udemyの番人がおすすめする講座
- 13. python zip(), set() の挙動を調べた
- 14. Pythonの依存パッケージとダウンロード先URL一覧をゲットする方法
- 15. Pythonでの音声信号処理 (9) 波の解析の一歩の疑問点
- 16. 初心者がDjangoを勉強したのでざっくりとアウトプットします
- 17. ffmpegの処理をtkinterでGUI化(その3: キャンセルボタン)
- 18. 【自動化】pyautoguiでクリックマクロ
- 19. 【Django】 Formsetを使ってテーブルの中にフォームを入れる
- 20. pythonでAPIのレスポンスで取得したjson形式(に見える)データを利用する
【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今回は、/dev/randomから真性乱数を取得するCのソースを使って、それでモジュールを作ってみます。
モジュール名、frandom# ソース
“`frandommodule.c
#include
#include
#includestatic 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
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# 分析
## 1. Data 前処理
### 1) 100m Excel Data の読み込み
最初に陸上競技の男子 100m 走の歴代3900 傑のリストの Excel ファイルを読み込みます。100m の歴代リストは下記のサイトから取得しました。Data 出典 : http://www.alltime-athletics.com/men.htm
“`
import pandas as pd
df = pd.read_excel(“M100m for ML.xlsx”)
df
“`今回の分析で使用するデータは以下のような内容で、約 3,9
Python 初学者が買い物リスト作成アプリを作った(データ加工編)
**この記事は以下の続きです**
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 初学者が買い物リスト作成アプリを作った(データ収集編: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
Udemyの番人がおすすめする講座
私はUdmeyに年間50万??ぐらい教材に投資して常に、Udemyに貼り付いて良い講座ができるのを監視しています。その中で、最後まで講座を受講してその講座の感想を書きたいと思います。私は、優良だと思わない講座は即返金処理を行うので、ここに紹介される講座は、とてもわかりやすいものしか基本的に載せてありません。
![スクリーンショット 2023-02-10 14.10.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1466470/62d37cff-42e1-b691-99bf-6b5faa774308.png)
## python系
### 酒井潤さん系
シリコンバレーのSplunk, Incでエンジニアをされているエンジニア。
正直python系の講座ならこれ一択で十分。酒井潤系列は、全部、おすすめする。というか、pythonを日本語で学習と言ったらこれレベルぐらいに有名。ただしレベルが高いので挫折を何回もする。
2年前に買ったがまだpythonの講座は終わっていない。実務でコードを書いてこ
python zip(), set() の挙動を調べた
最近[LeetCode](https://leetcode.com/problemset/algorithms/)にハマっておりまして、その中で得た知見を備忘的に残していこうと思います。
# zip()の挙動“`main.py
strs = [“flower”,”flow”,”flight”]for a in zip(strs):
print(a)# 出力
# (‘flower’,)
# (‘flow’,)
# (‘flight’,)
“`zip(*strs)とした場合
“`main.py
strs = [“flower”,”flow”,”flight”]for a in zip(*strs):
print(a)# 出力
# (‘f’, ‘f’, ‘f’)
# (‘l’, ‘l’, ‘l’)
# (‘o’, ‘o’, ‘i’)
# (‘w’, ‘w’, ‘g’)
“`
このアスタリスク何?となった場合[「こちら」](https://qiita.com/LouiS0616/items/1bbe0a9bb93054f6c380)が参考になった。
Pythonの依存パッケージとダウンロード先URL一覧をゲットする方法
# はじめに
仕事で Python パッケージの依存パッケージ一覧と、そのパッケージのダウンロード先URL一覧が必要になったのですが、取り出す方法がなかなか見つからなかったので、(もっといい方法がありそうですが…) 方法をメモします。
例として Python 3.8 の pandas の場合、依存パッケージは下記で
“`
numpy==1.24.2
pandas==1.5.3
python-dateutil==2.8.2
pytz==2022.7.1
six==1.16.0
“`ダウンロード先は下のようになりました。
“`
https://files.pythonhosted.org/packages/bf/8c/3d36cef521739bd481e9a5b30e5c0f9faf8b7fe7b904238368908a9d149d/numpy-1.24.2-cp38-cp38-win_amd64.whl
https://files.pythonhosted.org/packages/ca/4e/d18db7d5ff9d28264cd2a7e2499b870110
Pythonでの音声信号処理 (9) 波の解析の一歩の疑問点
## 今回のテーマ
「(8) 波の解析の一歩」を踏まえて、しっくりこない疑問点を整理する。疑問点
1. sin波が横にズレたような場合に、解析結果が変にならないか
2. そもそも周期が分からないときはどうすればいいか順番に検証する。
### 「sin波が横にズレる」場合
「sin波が横にズレる」とは、つまり、
![p9_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850619/289b5f24-4507-fca2-cd8f-d099820f460c.png)
のように、dだけズレたような場合でも、きちんと周波数成分を抽出できるのかということ。dだけズレたsin波の式を加法定理を使って展開すると、
![p9_2_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850619/99562e23-b693-9588-7fae-99abeb51798f.png)
という感じになる。つまり、同じ周波数の
初心者がDjangoを勉強したのでざっくりとアウトプットします
# Djangoとは
Djangoとはウェブアプリケーションを作る手助けをしてくれるフレームワークのことです。Djangoを用いることで、より安全に、より効率的にウェブサイトを作成することができます。
一般的なウェブサイトではブラウザから表示したいURLをサーバーにリクエストし、サーバーはそれに対応するファイルをブラウザにレスポンスとして返します。
一方、Djangoではリクエストを受け取ったあとサーバー内で処理を行った後に、レスポンスを返します。これにより、使うデータを指定できたり、見た目を変更したりすることができます。要するに、より便利なサイトを提供することが可能になるということです。# Djangoの構成
Djangoは以下の3つから構成されています。– Controller
`Model`に使うデータを指示したり、`View`に使うテンプレートを指示する。– Model
`View`にデータを受け渡す。– View
テンプレートとデータを組み合わせた情報を`Controller`に渡す。
以下、それぞれを実際にどう使うかを説明します。## Co
ffmpegの処理をtkinterでGUI化(その3: キャンセルボタン)
[その1: プログレスバーとリアルタイム出力表示](https://qiita.com/ytakeda-paleo/items/c3d33aef9d1c715702de)
[その2: コンソール風出力表示](https://qiita.com/ytakeda-paleo/items/c93ef9e1776414a0b263)
の続きです.# やりたいこととGUIの内容
– 処理を中止するキャンセルボタンをつける.
– 完成したもの↓
![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/736226/76fe7548-a415-b1ef-00b0-697e3bcd15b7.gif)## 環境
Windows 10 Pro, Python 3.7, miniconda(conda 4.11.0)# コード
“`python
import os, subprocess
import tkinter as tk
from tkinter import ttk, message
【自動化】pyautoguiでクリックマクロ
## 1.はじめに
何か悪いことをしたい人のために、記録を残しておきます。## 2.必要な知識
・Python(ループとか分岐とか使って好きに組める)
・pyautoguiのインストール
・threadingの使い方とか
・Windowsのスクショツールの使い方## 3.研究概要?
5年前ぐらいに挫折したプログラムを再度作り直してみました。
プログラムの中身を公開するというよりは、作り方のヒントをまとめます。## 4.作り方のヒント
### あくまでヒントです。組み立ててオリジナルマクロを作ろう!
##### まずはライブラリのインポート
“`python
import pyautogui as pag
import random as rand
import time
import threading
“`##### クリックする関数
引数のiconには何をクリックしたいかを渡すわけです。
そうすると、保存してある画像を読み込んで、その範囲内でランダムにクリックしてくれます。
__正直、これを動かすだけでもかなり楽しい。__
“`pyth
【Django】 Formsetを使ってテーブルの中にフォームを入れる
# この記事で伝えたいこと
– 画像のような画面の作り方
![Alt text](https://i.gyazo.com/e9182634b076b68ce734980a6c7b3f08.png)# 結論
Formsetとget_context_dataメソッドを使う
“`app1/views.py
from django.views.generic import TemplateView
from django.http import HttpResponse
from django import forms
from django.shortcuts import render, redirectfrom .models import TestData
class IndexView(TemplateView):
template_name: str = “app1/index.html”
object_list = TestData.objects.all().order_by(“number”)
max_num = object_li
pythonでAPIのレスポンスで取得したjson形式(に見える)データを利用する
PythonからAPIを使って、データを取得したときに、json形式だと思ったら、そうではなかったので、その対応をした記録です。
質問だったら、間違いなく:beginner:を付けるような内容ですが、あとになってあの時どうやってここに辿り着いたんだろうと思った時のために、メモを残しました。
最初に試したこと
“`
import os.path
p = “curl https://hoge.jp/results/123456789”
req = os.system(p)
“`
変数reqに値が入るかと思ったら入りませんでした。
そこで姑息な手段かと思いつつも、結果をファイルに出力しました
“`
import os.path
p = “curl https://hoge.jp/results/123456789 > result.json”
#req = os.system(p)
“`これで“やりたいこと”はできましたがカッコ悪いので、「requests.get」を使うことにしました。
“`
import requests
response = requ