Python3関連のことを調べてみた2021年02月24日

Python3関連のことを調べてみた2021年02月24日

[実践編]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.5

uname -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 = stdout

import 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 plt

root_url = ‘https://tabelog.com/tokyo/’ # 食べログURL

元記事を表示

[Python3] 正規表現で、括弧で括ったところの直後を数字に置換

**Python 3.7.3** で動作確認

“`python
import re

url = “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”\g0\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

元記事を表示

【Python】Djangoで遊ぶ(管理画面)

#この記事について
前回の記事でDjangoのセットアップをしてました。
[【Python】Djangoで遊ぶ(セットアップ・HTMLファイル表示)](https://qiita.com/666mikoto/items/c097f73403018f611de5)

今回はデフォルトでセットアップされる管理サイト(adminサイト)を少し触れてみます。

#環境
OS:Windows10 Home
Python:3.9.2
Django:3.1.7

#管理サイト(adminサイト)とは
今回はローカル環境“`http://127.0.0.1“`で構築したのですが、何も触ってなくても“`http://127.0.0.1/admin“`にアクセスすると以下のページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250196/a8f63b06-4d77-99ca-d26d-1ba5876e9c59.png)

ただ、ユーザー名・パスワードは分かりません。。
作成してログ

元記事を表示

pyautoguiを使ってタイピングを自動化してみる

# 注意事項

**悪用厳禁!統計を取るような場所で使えばただのチートツールです!**

# 目的

ひょんなことから職場でタイピングが流行っていたので、腕試しとpyautoguiの習得を兼ねて自動化させてみました。

# 自動化対象
## 大まかな方針

ベネッセのタイピング練習のサイト。キーボードの表記があり、外部に成績を送っていないため選定。サイトは下記のとおりです。
https://manabi-gakushu.benesse.ne.jp/gakushu/typing/nihongonyuryoku.html

UIは下記の感じになっています。

![UI(1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395414/b77fe56e-0c92-5cae-2e96-0ea44bd56cd0.png)

タイピングを自動化するのであれば、方法は3つ思いつく。

1. 中央のローマ字をパターンマッチングで取得する。
1. 下部のキーボードの部分を取得し、次にタイプするキーを取得する。
1. 中央

元記事を表示

Pythonの引数評価戦略は”参照渡し”ではないと何度でも主張すべきそうすべき

Google検索すると、いまだにPythonの引数は参照渡しされるとする記事が後を絶たないので注意喚起。

## なんで?

**A. 公式ドキュメントにそう書かれているからです。**

まず、当該部分の原文はこう。

[How do I write a function with output parameters (call by reference)? – Programming FAQ — Python 3.8.8 documentation](https://docs.python.org/3.8/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-reference)

> Remember that arguments are passed by assignment in Python. Since assignment just creates references to objects, there’s no alias between an argu

元記事を表示

SQLiteによるデータベースの操作

SQLiteは非常にお手軽なデータベースです.
軽量でありながらデータベースの操作言語SQLを利用して本格的なデータベース操作が行えるという点に注目が集まっています.
ファイル1つが1つのデータベースであり,組み込み用途でよく利用されています.
Pythonから使う場合,標準ライブラリのsqlite3を利用する宣言だけで使うことができるのもメリット.

例)shuto.sqliteというデータベースに,リンゴやバナナの値段を挿入し,それを抽出する.

“`python
import sqlite3

# sqliteのデータベースに接続
dbpath = “shuto.sqlite”
conn = sqlite3.connect(dbpath)

# テーブルを作成し、データを挿入する
cur = conn.cursor()
cur.executescript(“””
/* itemsテーブルが既にあれば削除する */
DROP TABLE IF EXISTS items;

/* テーブルの作成 */
CREATE TABLE items(
item_id INTEGE

元記事を表示

OTHERカテゴリの最新記事