Python3関連のことを調べてみた2020年04月17日

Python3関連のことを調べてみた2020年04月17日

プログラミング言語の学ぶ順番について(初心者から中級者へ)後編

#追記
記事に書き忘れていましたが、複数の言語を中途半端にやるより、一つの言語を極めれる方がいいと思います。
ただその言語が自分に合わない(僕の場合はCが生理的にきつかった) 場合は他の言語へ移った方がいいとも思うのです。

#目次
大前提と学ぶ意義と大まかな学ぶ流れ
最初の一歩:Javascript
飛躍の一歩:Python
最初のコンパイル言語:C#
最後の難関、最強言語:C言語

http://www.minekawada.com/program-lang-order.html

元記事を表示

YAMAHA VPNルータのL2TPトンネル設定コマンドを生成するツール

# 対象
YAMAHA VPNルータ
(RTXシリーズ、NVR500以降)
Python3.x

# 使い方
以下のgithubリポジトリをcloneしてmain.pyを実行してください。

“`
https://github.com/MasatoHanayama/yamaha_l2tp_generator
“`

main.pyと同じ階層にconf.txtが生成されます。
それ以外はREADME.mdを参照してください。

元記事を表示

【Actoder】初中級者が解くべき過去問精選 100 問を解いてみた【Part1/22】

**目指せ水色コーダー!!!!!!**

ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)
>
AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。

こちらの記事の`初中級者が解くべき過去問精選 100 問`
を**Python**で解いていきます!
@e869120さんに感謝!!!!!!

#記念すべき「Part1」〜普通の全列挙

元記事を表示

Python で Socket 通信 (TCP/UDP サーバ

現在 TCP/UDP でデバイスと接続する IoT モバイルアプリのプロジェクトをしています。

コロナ対策で在宅推奨にはなってるんですが借用している機材を持ち帰るわけにも行かないので、動作確認用のシミュレータを作りました。その覚書です。

## Environment

### Server

– OSX 10.14.5
– python 3.7

### Client

– Android 10.0
– Kotlin 1.3.50

クライアント (モバイルアプリ) が UDP ブロードキャストでサーチした後、見つかったデバイスに対して TCP 接続してデータが取得できるまでを目指します。

– ざっくり図

![mermaid.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308397/0ccafd7a-f011-cd27-576e-a1f7340bd427.png)

今回はシミュレータ(サーバ)作成のためクライアント側は割愛します。。。

## Python の Socket 通信

元記事を表示

scipy の OptimizeWarningを例外としてキャッチする

次のページを参考にしました。
[python – OptimizeWarningを例外としてキャッチする](https://ja.coder.work/so/python/1508276)

“`py:curve_fit02.py
#! /usr/bin/python
#
import sys
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

import warnings
from scipy.optimize import OptimizeWarning

warnings.simplefilter(“error”, OptimizeWarning)
# ——————————————————————
def exp(xx, aa, bb, dd, pp):
rvalue = 0.0
try:
rvalue = dd * np.exp(aa * xx – bb)

元記事を表示

【やってみた】Nand2Tetris 第6章

[前回 (Nand2Tetris 第5章後編) ](https://qiita.com/daisuke_ishii/items/351845e52fe1818f7a1f)の続きです。

参考にしました。[ひとりNand2Tetris/Hiraku](http://blog.tojiru.net/article/426762206.html?seesaa_related=category)

以下はこの本で実際に手を動かしながら学ぶトピックです。

* ハードウェア 
* アーキテクチャ
* オペレーティングシステム
* プログラミング言語
* コンパイラ
* データ構造とアルゴリズム
* ソフトウェアエンジニアリング <- 今

フッターにも書いてるけど11時間30かかりました。
頑張りました。
#6章 アセンブラ
ここから本書の後半。
前半はハードウェアだったが、後半はソフトウェアらしいです。

コメントアウトで感想みたいなの書いてます。少しだけ。
constructorというのを`__init__

元記事を表示

curve_fit の使い方

exp 関数のカーブフィットの使い方です。
次のような結果を得ます。
![curve_fit_apr16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/5171e594-65dc-2968-647b-a48e1a3ab5f0.png)

“`py:curve_fit03.py
#! /usr/bin/python
#
# curve_fit03.py
#
# Apr/16/2020
# ——————————————————————
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# ——————————————————————
def exp(xx, aa, bb, d

元記事を表示

AWS EC2の初期環境構築:Emacs, zsh, Python3(Miniconda)

# TL; DR

まっさらなEC2インスタンスにログインして作業環境を構築した際のメモ

– `emacs-nox`をリポジトリから導入
– `zsh`をリポジトリから導入
– `/etc/passwd`を編集しシェルを変更
– `/etc/locale.conf`を編集し文字化けを解消
– `.zshrc`を編集し変更を適用
– `Miniconda3`をインストーラから導入
– `/path/to/conda init zsh`を実行

# はじめに

本記事ではAmazon Linux 2を使っているが,Ubuntu Serverを使う場合もあるため,以下に注意する.

– Amazon Linux 2のデフォルトユーザ名は`ec2-user`になる.Ubuntu Serverでは`ubuntu`になる.

– Amazon Linux 2はRedHat系なので,パッケージマネージャには`apt`ではなく`yum`を使う.

# リポジトリの初期化
“`
$ sudo yum update
“`

Debian系の`sudo apt updat

元記事を表示

自分のITライフを振り返りつつ、プログラミング言語の学ぶ順番について考える

http://www.minekawada.com/program-language-oder.html

目次
自分のプログラミング言語の学んできた順番

川田さとし、C言語を始める
川田さとし、Javascriptを始めるの巻
川田さとし、Pythonに目覚める
川田さとし、C#で仕事としてのプログラミングへ

後編は作成中

元記事を表示

PytorchでDataFrameのデータをNNで訓練できる形に整形する

# 概要
ニューラルネットワークでデータを訓練させたり検証したりする際に、データを(データ群,ラベル)の形に整形する必要がありますよね。
MNISTやCIFAR10だと事前にこの形になっているんですが、手持ちのデータを使うときには自分でこの形にする必要があります。が、理解するまで時間がかかったのでこちらにしたためておきます。

尚、基本的な方法については英語でどんぴしゃ回答してる方々がいたため、英語が行ける方は以下の一連のやりとりをご覧ください。
[Convert Pandas dataframe to PyTorch tensor?](https://stackoverflow.com/questions/50307707/convert-pandas-dataframe-to-pytorch-tensor)

このQiitaでは文脈を補って少し詳しく解説しているので、適宜必要なところだけサク読みして下さい。

##データとラベルに手持ちのデータを分ける

###DataFrameからラベルを引っ張って来る(ラベルのコラム名:target)

“`python
train_labe

元記事を表示

仮想マシン配置最適化問題(簡単版)をblueqatで解いてみた

前回はblueqatを使ってVQEの動作確認を実施した。今回は、仮想マシン最適化問題(簡単版)をblueqatのVQEで解いてみる。

# 仮想マシン配置最適化問題とは
一言で表すと、**「仮想化基盤において、仮想マシンを無理なく詰め込むことができる仮想マシンの配置ってどんな配置?」**っていうのを求める問題です。私が現在勝手にそう呼んでいますが、正式名称があるのでしょうか・・・?

# この問題を考えるに至った背景
私の日頃の業務は、VMware製品を利用してオンプレ環境での仮想マシン提供、基盤全体の運用保守を行っています。基盤としては700VM程度の中規模基盤です。業務をしていて思うのは、「仮想マシンの配置を工夫すればもう少しリソース(特にCPU、メモリ)の空きができるんじゃない?」ってことです。

どこの基盤管理者も同じだと思いますが、新規の仮想マシンを提供する時は以下のことを特に意識しているんじゃないでしょうか?

– 仮想マシン搭載予定の物理マシンにリソースの余力があるか

1台の物理マシンに仮想マシンを詰め込み過ぎると、仮想マシンのパフォーマンスに影響するため、この観点は非

元記事を表示

ConceptNetをローカル環境で実装する

# ConceptNetとは

> ConceptNet aims to give computers access to common-sense knowledge, the kind of information that ordinary people know but usually leave unstated.[公式githubより]

端的に言うと、コンピュータに常識を持たせることを目指した常識データベースです

# 常識が何の役に立つか

考えればきりがないのですが、一例として挙げてみます

## ユーザの発話の正しい意味や文脈をコンピュータが認識する

“`
(サウザンドドレッシングの話をしていて)
女性A:そう、そう、そう。何かね、でも沖縄の人は、何にでもあれかけるから。
女性B:沖縄すごい。じゃあ、最初からバラで売らなくて混ざったのを。
女性C:隠れた味だね、沖縄の方は。
女性A:混ざったやつは売らない。売ってはないかなー。
レストランとかも作りがいがないとかいうの聞いたことがある。
何にでもかけちゃうから。微妙な味を出してもー。

引用元「名大会話コーパス」

元記事を表示

Python の正規表現マッチングで引数付groupを使うと遅いのか検証する

# 結論

– 正規表現でグループを指定するとちょっと遅くなる。(14%)
– 引数付でgroup(1)とかするとさらにちょっと遅くなる。(22%)
– 遅くならないわけではないけど倍かかるわけでなし別に気にする必要ない。(個人差があります)
– 何行もロジック書くよりは標準ライブラリの関数使ったほうがだいたいにおいてマシ。

# やる気あったんか

どちらかというとQiitaになんか書こうというモチベーションでした。すいやせんした。
Pythonの正規表現でマッチしたあとmatchobj.group(1)とかするとなんか遅い気がしたし、簡単に検証できそうだったのでとりあえず書きますという気持ちです。

# 環境

– Windows 10 Home
– Python 3.6.6
– ipython 6.4.0

# 実験用コード

“`python
import re

seq = “hoge123fugafoobar456zoo”
pat1 = re.compile(r”\S+\d{3}\S+\d{3}\S+”)
pat2 = re.compile(r”\S+(\d{3})\S+

元記事を表示

Python 3チップス

Python3を触っていてエラーが発生したり調べたことのひたすらメモです。短いもの主体なのでチップスの名前を使っています。

# arrayはリスト内包記法でリストに変換される
“`py
from array import array
array1 = array(“i”, [0, 1, 2, 3, 4])
print(array1) #array(‘i’, [0, 1, 2, 3, 4])
print([i for i in array1]) #[0, 1, 2, 3, 4]
print(type([i for i in array1])) #
“`

# ctypesにはmemmoveが実装されている
“`py
from ctypes import *
ctypes.memmove #
“`
RtlCopyMemoryやRtlMoveMemoryは不要です。

#arrayは文字列をサポート終了予定

#ctypes.get_unicode_bufferメソッドの戻り値に対応する型はcty

元記事を表示

MacにPython, Jupyter Notebook, BeautifulSoup4, Seleniumを用いたスクレイピング環境を構築

新しいMacBook Proを買ったので、個人的備忘録としてPython, BeautifulSoup4関連の環境構築で参考にした記事をメモします。
きっとこの通りにやれば他のMacでもひとまず問題なくいけるはず、、

## MacBookについて
OS     macOS Catalina 10.5.13
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ   16 GB 2667 MHz DDR4

## 目指す環境
– Python3でBeautifulSoup4を使ってスクレイピングできる
– Pythonのバージョン管理をできるようにしておく
– JavaScriptで動くサイトも見れるよう、SeleniumとChrome Driverが使える

## Homebrewのインストール
まっさらなPCなので、、
[MacにHomebrewを導入する方法](https://qiita.com/balius_1064/items/ac7dff5ef10eaf69996f)

##Python, virtualenvのインストール
Virtualenvも含め、[ma

元記事を表示

Django REST FrameworkのPermission周りの日本語解説がないので書いてみた

#なぜ書こうと思ったか

Djangoが好きでプライベートで色々と触っているのですが、QiitaにDjango周りの記事はそれなりにあってもDjango REST Framework(以下DRF)周りの記事が少ない・・・(この記事を書いている段階で159件)
とても強力なフレームワークであり、かつフロントエンドとサーバーサイドを分割して開発するのが一般的になってきている現状で、DRFはとても魅力的な選択肢の一つであると思います。
一方で、日本語の記事や技術書が少なく、英語のドキュメントを読むことが必須になると英語ができない方からするととっつきにくい印象を与えてしまうのではないかと思います。
とりわけ初心者からすると日本語ですら理解できないような内容を英語で書かれてもなぁ・・となりがちだと思うので書きました。

#DRFのPermission
アクセス制御に関する領域です。

>Authentication or identification by itself is not usually sufficient to gain access to information or co

元記事を表示

Python リストから順番を維持したまま重複を取り除く方法。

**Python3.7以降から使える方法です。**

Python3.7からは**辞書の順番が維持**されるらしい。
##fromkeys()
以下のようにして辞書が生成できる。

入力 `print(dict.fromkeys([“キー1”, “キー2”, “キー3”], “値”))`
出力 `{“キー1”: “値”, “キー2”: “値”, “キー3”: “値”}`

第二引数を指定しなければ値がNoneとなる。
print(dict.fromkeys(l))
{3: None, 2: None, 1: None, 5: None, 4: None}“`

##list()
辞書を引数に渡すとkeyからリストを作る。

**Keyは重複しない**
##本題
入力

“`
l = [3, 3, 2, 1, 5, 1, 4, 2, 3]
print(dict.fromkeys(l))
print(list(dict.fromkeys(l)))
“`
出力

“`
{3: None, 2: None, 1: None, 5: None, 4: None}`

[3, 2

元記事を表示

Windowsで通知を出す神パッケージ「zroya」を見つけた話

# Windowsで通知したい
監視アプリやトレイアプリで通知をしたいとき、丁度いいパッケージを見つけられませんでした
一応、[WinAPI](http://blog.sbfm.jp/archives/137)とか[Powershell](https://quzee.hatenablog.com/entry/2019/01/14/014959)とか使えば出来るんですが、[^1]

– Python3で
– Windowsで
– Cpython・Powershellを使わずに
– Pythonのパッケージを使って
– 数行で
– トースト通知を出す

という条件だと中々ヒットしないんです…

# そんな貴方にzroya!
悩むこと数ヶ月、ついに[zroya](https://malja.github.io/zroya/)というパッケージを見つけました
[WinToast](https://mohabouje.github.io/WinToast/)というC++ライブラリを使ってるみたいです
~~まぁ結局Cpython使ってるようですが、使いやすいならOKです~~

# インストール
pi

元記事を表示

Pythonのturtleでマウスクリックしたところに亀を移動させる

#Pythonのturtleでマウスクリックしたところに亀を移動させる

### 実行イメージ
スクリーンショット 2020-04-15 4.23.00.png

### サンプルプログラム
“`python
import turtle

kame = turtle.Turtle(“turtle”)

def moveKame(x, y):
kame.goto(x, y)

kame.screen.onclick(moveKame)

turtle.done()

“`

### 解説
“`python
# turtleモジュールを読み込む
import turtle
“`

“`python
# kameという名前の変数にturtleモジュールの中の亀(Turtle)を生成して格納する
kame

元記事を表示

heroku + Python で Vtuber Twitter bot 作る

# 目的
 次の機能を持つTwitter botを作ります。
 (たぶん)無料で運用できるはず。

– YouTube
– チャンネル登録者数のキリ番突破通知