- 1. GraphQLの採用についての考察
- 2. Pythonで自動予約を作る
- 3. AtCoder初心者によるAtCoder初心者がコケたポイント集
- 4. SingleStoreを試す! (100万行挑戦編2)
- 5. [実践編]discord.pyでdiscordのBotを作ってみよう!
- 6. 図形だけで初音ミクを描く【OpenCV】
- 7. [準備編]discord.pyでdiscordのBotを作ってみよう!
- 8. 【Python】FizzBuzzで理解するジェネレータの特長(主に消費メモリ)
- 9. pyautoguiを使ってタイピングを自動化してみる【高速化編】
- 10. Seleniumチートシート
- 11. 【随時更新】学習記録
- 12. Discord.py Botとりあえず作ってみる
- 13. 株の自動売買プログラムつくろう その1
- 14. Django REST Framework on Docker でHello World APIをサクッと作る
- 15. SingleStoreを試す! (100万行挑戦編1)
- 16. Pythonの型ヒントでゆるくオブジェクト指向プログラミング – インターフェース・ポリモーフィズム・カプセル化
- 17. python初心者が食べログをスクレイピングして駅からの距離と評価の関係を調べてみた
- 18. [Python3] 正規表現で、括弧で括ったところの直後を数字に置換
- 19. PyQt5でQTreeViewを使用してファイル名を取得する
- 20. Build a Simple Naïve Text Summarizer
GraphQLの採用についての考察
## はじめに
技術調査として前から気になっていたGraphQLを調査したので今後、新規プロジェクトにおいて採用できるかの考察をまとめておきます。
※ 今回は、REST APIと比較してGraphQLの利点と使いどろこをまとめています## 検証環境
– OS: macOS
– python 3.9
– Web Framework: FastAPI
– Front: React.js & Material UI## GraphQLとは
[GraphQL | A query language for your API](https://graphql.org/)
Facebookが開発元のオープンソースでREST APIと同じく特定エンドポイントにリクエストをしてレスポンスを受け取る仕組みにかわりはないのですが以下の点が違います**・Rest API**
同一エンドポイントに対してデータ取得・登録・更新などの処理をGET・POST・PATCHなどのHTTPメソッドの使いわけによって行う。
また以下のユーザー情報に関してのリソースに対しては`/user`というパスになってい
Pythonで自動予約を作る
#はじめに
予約制の施設を使うことになったが、ネット予約がいちいち面倒なので、自動化を試みる。
使うのはPython3とseleniumである。#環境
・MacOS High Sierra ver10.13.6
・Python3#自動ログイン
先ずは予約画面に入るための自動ログインを行う。“`autolog.py
from selenium import webdriver
driver=webdriver.Chrome(“パス”)
url=”https://www.google.com”
driver.get(url)
#urlを開く
login_id=driver.find_element_by_xpath(“//input[@id=’txtUserID’]”)
login_pw=driver.find_element_by_xpath(“//input[@id=’txtpassword’]”)
#IDとpassの打ち込みformの取得
userid=”ID”
userpw=”PASS”
login_id.send_keys(userid)
login_pw.send
AtCoder初心者によるAtCoder初心者がコケたポイント集
最近AtCoderを始めました。
3回しか参加していないのでまだ灰色です。できたら水色くらいまで行きたいな〜〜〜と思っています(願望)。
何回かやってみて、レベルの高い低いは置いといてコケた箇所を備忘録としてまとめておきました。
プログラミング上手いマンにとっては常識だと思いますが、初心者にとってはあるある(多分)なので生暖かい目で見守っていただけると嬉しいです。
使用言語はpython3です。# 切り捨て徐算するときはint(A/B)ではなくA//Bを使うべし
[ARC112 B問題](https://atcoder.jp/contests/arc112/tasks/arc112_b)
コストをかけて整数を1引いたり-1倍したりする問題。
問題の本質的な部分ではないのですが、ある値Cを2で割った商の切り捨てを算出する必要がありました。
なので、int(C/2)としてその値を出しました。
【結果】
WA(これだけが原因ではないですが)
【原因】
浮動小数点の有効桁数。int(C/2)でははじめにC/2をfloatとして算出して、切り捨てを行う。floatは桁落ちが発生するので、Cが
SingleStoreを試す! (100万行挑戦編2)
#今回は、100万行のカラムストアに挑戦!
さて、前回は100万行のインメモリテーブルを作成しましたが、その勢いで今回は、ストレージ・デバイス側を使った**カラムストア**を作って、簡単なSQLを走らせて性能検証をしてみたいと思います。##さて、100万行の出所をどうするか・・・
幾つか方法は考えられますが、現実的な運用プロセスを考えた場合に、最初にインメモリで活性の高いデータ処理を行い、月末、期末等に過去参照データとして「更に一定期間(3年とか・・・)保存しておく様なケースを想定し、前回作成したテーブルを使って(コンバージョンして)一気に100万行のテーブルをデバイス側に立ち上げることにします(今回は、SingleStoreを導入した、自作PCのSSD上に作ります)#謎の呪文の登場・・・
基本的に初期設定では、 SingleStore上に作成するテーブルはインメモリ上に展開されますので、それを意図的にカラムストア側に作る様に環境変数を変えます(SQLベースでカラムストア側にテーブルを作成する!という宣言も有りますが、SingleStoreの中身を知る・・という意味も有り、今回
[実践編]discord.pyでdiscordのBotを作ってみよう!
# はじめに
**21/2/24 三部運用編を書いている途中です。**
実践編もちょっとだけ追記する予定です。プログラミングの基礎文法は理解した。
でも、**「どう書けばいいか分からないよ!!」**という人向けの記事になります。準備編、実践編、運用編の三部構成になっています。
一部 [準備編]discord.pyでdiscordのbotを作ってみよう! 二部 ←今ここ 三部 [運用編]discord.pyでdiscordのbotを作ってみよう! **記事は全編通して、基本操作するOSはWindows10を使用しています。**
# Step0.
図形だけで初音ミクを描く【OpenCV】
# 0. はじめに
– OpenCVの図形を描画する関数を用いて,初音ミクを描きました.
![miku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484145/699b30c8-23e0-7d7f-2912-f09170ef2bc3.png)※ この作品はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「初音ミク」を描いたものです
# 1. OpenCVの図形描画関数
– [こちら](https://note.nkmk.me/python-opencv-draw-function/)のサイトを参考にさせていただいております.### 共通引数
– `img`:図形を描画する画像
– `pt1`:始点
– `pt2`:終点
– `center`:円の中心
– `color`:色(今回はカラー画像で(Blue, Green, Red)で指定する)
[準備編]discord.pyでdiscordのBotを作ってみよう!
# はじめに
**21/2/24 三部運用編を書いている途中です。**プログラミングの基礎文法は理解した。
でも、**「何を準備すればいいのか分からないよ!!」**という人向けの記事になります。準備編、実践編、運用編の三部構成になっています。
一部 ←今ここ 二部 [実践編]discord.pyでdiscordのbotを作ってみよう! 三部 [運用編]discord.pyでdiscordのbotを作ってみよう! **記事は全編通して、基本操作するOSはWindows10を使用しています。**
# Step0. discordの準備
discor
【Python】FizzBuzzで理解するジェネレータの特長(主に消費メモリ)
# この記事でやってること
FizzBuzzを関数、ジェネレータでそれぞれ実装し、メモリ消費量と処理順序を比較する(ことでジェネレータの特長を理解する)。
# 環境
“`sh
$ python3 –version
Python 3.8.5uname -o
GNU/Linux$ uname -p
x86_64
“`# 基本のソースコード
まずは通常の関数とジェネレータでそれぞれ FizzBuzz を実装。
## 関数
“`python
def fizzbuzz(nums):
result = []
for num in nums:
if num % 15 == 0:
result.append(‘Fizz Buzz’)
elif num % 5 == 0:
result.append(‘Buzz’)
elif num % 3 == 0:
result.append(‘Fizz’)
else:
pyautoguiを使ってタイピングを自動化してみる【高速化編】
# 目的
[前回](https://qiita.com/mickie895/items/a7733a6dd70a29c204a0)の続き。
人間にはどうしようもないレベルまで行くことを目指す。# 現時点の課題
とりあえず、OpenCVとPillowの相互変換の部分や、判定の順番などに手を加えてみたが、タイプ出来た文字数が400文字が420文字になるぐらいで大きな効果はなかった。
なのでコードでどこの部分に時間が取られているかをプロファイリングしてみよう。参考にしたのは下記のページ。
https://qiita.com/masashi127/items/ca092c13e1300f4f6ade
気になった部分を抜粋したのが下記の部分。何らかの原因で文字を打つたびにsleepが入っているようだった。
| ncalls | tottime | percall | cumtime | percall | filename:lineno(function) |
|:——-|:——–|:——–|:——–|:——–|:———
Seleniumチートシート
#SeleniumでDOM要素を選択する方法
##DOMの中から最初に見つかった要素を1つだけ取得|メソッド名|説明|
|—|—|
|find_element_by_id(id)|id属性から要素を1つ取得|
|find_element_by_name(name)|name属性から要素を1つ取得|
|find_element_by_css_selector(query)|CSSセレクターを指定して要素を1つ取得|
|find_element_by_xpath(query)|XPathを利用して要素を1つ取得|
|find_element_by_tag_name(name)|タグ名nameの要素を1つ取得|
|find_element_by_partial_link_text(text)|リンクの子要素を含むテキストから要素を1つ取得|
|find_element_by_class_name(name)|クラス名nameから要素を1つ取得|##DOMの中にある全ての要素を取得
|メソッド名|説明|
|—|—|
|find_elements_by_css_
【随時更新】学習記録
##学習記録
### TensorFlow関連
| 日付 | タイトル | 学習時間 | 感想 |
| —- | —- | —- | —- |
| 2021/02/23 | Tensorflowの環境構築 | 3h | Pythonバージョンを指定した仮想環境に手こずり一時中断.Dockerで環境構築する方針に変更. |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |### Docker関連
| 日付 | タイトル | 学習時間 | 感想 |
| —- | —- | —- | —- |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |
| day | タイトル | *h | hoge |## 学習用リンク
コメント書く
Discord.py Botとりあえず作ってみる
こんにちは Taitaitatataです。
Botって便利ですよね。「MEE6」とか「顔文字で返してくるうざいBot」とか、
そいうやつ作ってみませんか?
この記事は[Discord.py](https://qiita.com/tags/discord.py)を使ってBotを作るという記事です。
**この記事はとりあえず作ってみたい人向けの記事です**
#環境
OS: Ubuntu 20.10
テキストエディタ:Visual Studio Code
言語: Python3.8
#下準備
###Bot用のトークン作成
まずはBotを作るためにトークンを取得する必要があります。
これは[Discord Developer Portal](https://discord.com/developer)から発行されます。
####Discord developer portalにアプリケーション登録をする
まずBotを作る前にアプリとして登録します
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73064
株の自動売買プログラムつくろう その1
test
学びをここに書いていく
Django REST Framework on Docker でHello World APIをサクッと作る
##はじめに
Django REST Framework(DRF)を使ってDockerコンテナ上で簡単なHello World APIを作ります。
ローカルを汚さないため、コーディングもコンテナ上で行おうと思います。
何度でもやり直せる気軽な開発環境のイメージです。##Django REST Frameworkとは
PythonのWebアプリケーションフレームワークであるDjangoを使ってAPIを開発するために利用されるライブラリです。
活用できればRESTfulなAPIの開発をサクッと簡単に(←重要)行えます。* 公式ドキュメント:[Django REST Framework](https://www.django-rest-framework.org/)
##環境
* Windows 10 Pro(20H2)
* Docker Desktop:3.1.0(51484)
* VSCode:1.53.2##0. 準備(必要であれば)
コンテナ上でコーディングを行うため、VSCodeに `Remote – Containers` 拡張機能をインストールします。
![re
SingleStoreを試す! (100万行挑戦編1)
#まずは準備から・・・
今回は、Pythonで簡単なデータ・ジェネレータ(的なモノ)を作成し、それを使ってまずは100万行のインメモリテーブルを生成します。取り急ぎ作成になったので、あまり綺麗な造りにはなっていませんが、SingleStore上に空のテーブル(ネット販売的な小売系データをイメージしてみました)を作成するスクリプトを書きました。##SingleStore上へ空のテーブルを作成する
PythonでSingleStoreを取り扱う場合は、通常よく用いられている**pymysql**を事前に導入しておきます。(多分、各カラムのサイズ定義等は、もっと最適化出来ると思いますが、先を急ぐ関係上、”極めてエイヤー!”で設定してありますので、気になる方は適宜修正・変更してお使いください・・・・(汗))~~~Python
# coding: utf-8
#
# 日本語版BIG DATA Generator
#
# Python 3版
#
## 初期設定
import sys
stdout = sys.stdout
sys.stdout = stdoutimport pym
Pythonの型ヒントでゆるくオブジェクト指向プログラミング – インターフェース・ポリモーフィズム・カプセル化
オブジェクト指向をPythonで実現するための記法をまとめます。特に、型ヒント (と `mypy`) を利用して静的解析を行う方法にフォーカスを当てています。
ただし、動的型づけ言語だと厳密に実現するのは難しいようです。厳密さにはあまりこだわらずに、メリットを受けられる範囲で (変更に柔軟に対応できるような) 実用的な書き方をまとめられたらなと思います。
今回は、こちら([オブジェクト指向と10年戦ってわかったこと](https://qiita.com/tutinoco/items/6952b01e5fc38914ec4e))の記事で取り上げられていたオブジェクト指向三大要素:
* 継承 (インターフェース)
* ポリモーフィズム
* カプセル化を取り扱います。
オブジェクト指向そのものについての説明は上記を参考にして下さい。(まともに理解していないので説明できません。誤りがあればご指摘いただけるとありがたいです。)
現在も変更が多そうなライブラリ (`TensorFlow`, `PyTorch`, `Pandas`, Web framework (`Django`, `
python初心者が食べログをスクレイピングして駅からの距離と評価の関係を調べてみた
#目的
スクレイピングをしてみたくてなんとなく思い浮かんだ食べログをスクレイピングしてみます。
仮説として、駅からの距離が近い店は家賃が高いからそれだけ人気を維持しなければいけないから評価が高い店が多いのではないかと思いました。
駅からの距離と評価を抽出して関係を調べてみます。#環境構築
windows8
anacondaをインストール
python3.7.5#ソース
食べログの東京にある店でMAXの60ページ分をスクレイピングで取得しています。
1ページに20件の店なので1200件分のお店ですね。
すべての店には駅からの距離が記載されているのですが、1つだけ世田谷とだけしか書かれていない店があったため処理をスキップしています。“`python:tabeAnalysis.py
import requests
import csv
from bs4 import BeautifulSoup
import re
import matplotlib.pyplot as pltroot_url = ‘https://tabelog.com/tokyo/’ # 食べログURL
[Python3] 正規表現で、括弧で括ったところの直後を数字に置換
**Python 3.7.3** で動作確認
“`python
import reurl = “https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789”
re.sub(r”(?Phttps://www\.example\.com/aaa/bbb/ccc\?x=123&y=)\d+(?P &z=789)”, r”\g 0\g “, url)
# “https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789”
“``https://www.example.com/aaa/bbb/ccc?x=123&y=456&z=789`
のような文字列の`456`を`0`に変えて、
`https://www.example.com/aaa/bbb/ccc?x=123&y=0&z=789`
のようにしたくなりました。いつもの調子で置換後を`r”\10\2″`と書いたところ、「`\1`と`0`と`\2`」ではなく「`\10`と`\2`」と解釈されたのかエラーが出
PyQt5でQTreeViewを使用してファイル名を取得する
# これは何
QTreeViewにファイルツリーを表示して、クリックしたファイル名を表示するまでのコードです。
いつも同じことを調べたりコードを確認したりしているので、部品ごとのメモを作成することにしました。
仕上がりは、以下のとおり。
![タイトルなし.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191337/5664fa1a-2f15-f7a3-7317-4ff7adb53b01.gif)
ファイルをクリックするとファイル名のメッセージが表示され、フォルダをクリックするとアラートとなります。
# 環境
– Darwin Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64 i386
– Python 3.9.1 (default, Jan 15 2021, 10:22:19)
– PyQt5 5.15.2# 手順
– Qt
Build a Simple Naïve Text Summarizer
Here I’m going to build a very simple text summarizer. It will be a very simple one using statistical modeling.
#### Text Summarization
First, let’s see what is text summarization.
Can you email me the summary of your report?.
Sounds familiar?.I have to frequently face this question when doing my master’s in Tsukuba.
Many peoples and students have to deal with this when studying and even in a professional environment.In short, Summarization means that converts original content to a brief