Python関連のことを調べてみた2019年11月29日

Python関連のことを調べてみた2019年11月29日

まゆんごのPython学習記:各話リストとリンク集

まゆんごまゆまゆです。

目録を作成し必要なものへすぐ移れるようにします。

動画順として「第何話」と表記するため文法基礎や演習など行ったり来たりする場合がありますのでご了承ください。

#文法基礎編

[第1話:printで文字を出してみた](https://qiita.com/mayu5mayu2/items/ab5a5c44c7cb128bff68):[動画](https://youtu.be/sPp_5ZByMGQ)

[第2話:変数で文字を出してみた](https://qiita.com/mayu5mayu2/items/74fe7e857aaeea834d7f):[動画](https://youtu.be/KhADe4Y7Rnw)

[第3話:printで数字を出してみた](https://qiita.com/mayu5mayu2/items/99710b0c7b1eae6c2466):[動画](https://youtu.be/Xzc43Gns_9E)

[第4話:数字を文字扱いするとどうなるか見てみた](https://qiita.com/mayu5mayu2/item

元記事を表示

04. 元素記号

## 04. 元素記号
“Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.”という文を単語に分解し,1, 5, 6, 7, 8, 9, 15, 16, 19番目の単語は先頭の1文字,それ以外の単語は先頭に2文字を取り出し,取り出した文字列から単語の位置(先頭から何番目の単語か)への連想配列(辞書型もしくはマップ型)を作成せよ.

###Go
“`go
package main

import (
“fmt”
“strings”
)

func main() {
var src = “Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.”;
var dw = map[int]bool{1: true, 5

元記事を表示

まゆんごのPython学習記第5話:数字で四則演算とかしてみた

まゆんごまゆまゆです

今回は第5話ということで数字の計算をしていきます。

python上で足し算をする際は「+」を使います。

私たちが普段計算する時と同じですね。

“`python
print(5 + 2)

7
“`

5+2で計算してみると7になりました。

引き算も普段の計算と同じく「-」を使います。

“`python
print(5 – 2)

3
“`

5-2で計算すると3が出てきます。

掛け算からちょっと変わってきます。

掛け算では「×」ではなく「*」を使います。

“`python
print(5 * 2)

10
“`

割り算では使い分けが必要です。まずは「/」。

“`python
print(5 / 2)

2.5
“`

これで計算してみると小数点が出てきます。

もう一つは「//」。

“`python
print(5 // 2)

2
“`

これをやると出てくるのは整数で小数は出てこなくなります。

整数で割り切れる式であっても使い分けが必要です。

割り切れなかった分の余りは「%」を使います。

“`python

元記事を表示

“「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察”のpython版をやってみた

いつもの日課でQiitaのトレンドページを見ていたのですが、こんな記事を見かけました!

> 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察
> https://qiita.com/xtetsuji/items/19d07c629852876da401

いやいやいや

$$ 1000\div999^{2} $$

$$ = 0.001002003004005…099100 $$

これで1から100までの数値を出せるなんて面白すぎますし、凄過ぎません?

perlとrubyでの再現を記事中ではされているのですが、普段僕の使っているpythonでは再現はされていないようなのでやってみました。

“`python:make_num.py
from decimal import *
import re
getcontext().prec = 298
data = Decimal(“1000”)/Decimal(str(999**2))
data = (str(data).split(“.”)[1])
print(re.sp

元記事を表示

virtualenvを使ったDjango開発仮想環境構築〜新規プロジェクト・新規アプリ作成と初期設定までの手順

# はじめに

まっさらな状態から仮想環境構築〜新規プロジェクト・新規アプリ作成・初期設定までの手順を忘れることがあるので残しておきたいと思います。

**Python3系と仮想環境構築ツールであるvirtualenvがインストール済みであることを前提条件とします。**

著者の環境は以下となります。

– MacOS Mojave 10.14.6
– Python 3.7.5
– Django 2.2

**予め、Djangoの各バージョンで対応しているPythonのバージョンを確認してください。**
https://docs.djangoproject.com/ja/2.2/faq/install/#faq-python-version-support

# virtualenvを使って仮想環境構築

まず任意の場所(デスクトップ)でこれから作成するプロジェクトを入れるフォルダを`mkdir`コマンドで作成。(今回例として名前をsampleprojectとする)
`cd`コマンドで作成したフォルダ内に入る。

“`
$ mkdir sampleproject
$ cd sampl

元記事を表示

aws cliを自作しています

aws cliを自作しています。AWSの中身を理解するためにAPIを叩きまくろうと思ってです。Pythonのboto3を使っています。Pythonの練習でもあります。おかげでかはわかりませんが、前よりもずっとAWS触りやすくなりました。

自作ツールではAWSのリソースの閲覧に特化して、いちいちヘルプを見なくても使えることを目指しています。

# aws cliで感じてること

aws cliは help を見れば使い方がわかりますが、サブコマンドごとにいちいちヘルプを見ないといけません。またパラメータが非常に多いサブコマンドもあり、ヘルプを見ながらコマンドを打っていくのがつらいです。こんな長いコマンドはなかなかすらすら打てるようにはならないです。

“`
# とても長い覚えられないコマンドの例
$ aws cloudwatch get-metric-statistics –namespace AWS/Lambda –metric-name Duration \
–dimensions ‘Name=FunctionName,Value=xxxx’ –start-time

元記事を表示

Python 3 エンジニア認定基礎試験は本当に簡単なのか。

#はじめに

初投稿です。

底辺SESのバーチャルYouTuber、久遠寺ネアルです。

嘘です。

YouTuberでは無いです。

本当です。

少し身元を。

よくある中小企業のSESとして働き始めてはや6年。
ゲーム系の専門学校でC++の基礎を独学。
就職したのは汎用機オペレーターで、4年間機器エラーを電話&メールし続ける。
現場の異動でプログラマーをやるもCっぽい独自言語での開発だったため自身の成長に疑問を持つ。
その後転職し、やっぱり中小企業のSESでVB.NETをメインに.NET系でWebサイトやらPOSやら開発。仕事以外にもPHPやらLINEBOTやら機械学習やらで遊びながら現在に至る。

資格に関しては、応用情報とJavaSE8silverを持ってます。

##試験について

最近機械学習に興味をもって学習を始めたので、資格でもあったら受けてみようかなぁと思い探してみると「Pythonエンジニア認定基礎試験」とやらがあったので早速受験してみました。
他にも、同じ協会が実施している「Pythonエンジニア認定基礎試験」と日本ディープラーニング協会が実施している「G

元記事を表示

量子情報理論の基本:エントロピー(2)

$$
\def\bra#1{\mathinner{\left\langle{#1}\right|}}
\def\ket#1{\mathinner{\left|{#1}\right\rangle}}
\def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}
$$

## はじめに

[前回の記事](https://qiita.com/SamN/items/4abc9e3399a0aabadb2c)で、古典的な情報理論におけるエントロピーについておさらいできたので、今回は量子情報理論におけるエントロピーについて勉強します。その定義と性質について説明した後、量子計算シミュレータ[qlazy](https://github.com/samn33/qlazy)を使って、その重要な性質について、実際に計算して確認してみたいと思います。

参考にさせていただいたのは、以下の文献です。

1. [ニールセン、チャン「量子コンピュータと量子通信(3)」オーム社(2005年)](https://www.ohmsha.co.jp

元記事を表示

全国の自動車の台数を地図にプロットしてみる

# この記事の目的
Pythonで以下の様なプロットを描く
![how_many_cars_map.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540956/09530bc8-1c5f-1867-26a6-a738c746438e.png)

ちなみにデータは全国の乗用車の所有台数を使用した.

ページの最後に[コード一覧](#コード一覧)があります.

# 解説

色付きの地図を作成するために, [japanmap](https://pypi.org/project/japanmap/) というパッケージを用いる

“`bash
pip install japanmap
“`

その他パッケージのインストール

“`python
import numpy as np
import pandas as pd
import cv2
from PIL import Image
import matplotlib.colors
import matplotlib.pyplot as plt
from

元記事を表示

AtCoderのABCでD問題をクリアしたい人が足掻いてみた

## はじめに

* ド素人の筆者が[AtCoder](https://atcoder.jp/contests/) Beginner Contestに数回挑んでみた。
* 言語はpython
* しかしながらD問題以降まったく歯が立たない。
* これらの問題は、計算量の見積もり+処理速度向上のためのアルゴリズムorライブラリの使いこなし方or数学知識が問われている。
* 難しくて吐きそうだけど、面白い。解けないとついついムキになってしまう!

## 目的

* AtCoderのDランク問題(400点)の解き方を習得する。
* D問題のための計算量の見積もりと、計算量を削減するアルゴリズムについて習得する。

## 今後

* 今の実力では本番で解けるイメージが沸かない….。
* 今後も勉強した結果が溜まったら記事を追加する予定。

## 問題へのリンク

* ABC D問題
* [ABC 142 D](https://atcoder.jp/contests/abc142/tasks/abc142_d)
* [ABC 141 D](https://atcoder.jp/co

元記事を表示

[Python]Enumとevalを駆使してifによる条件分岐をなくす

## きっかけ
増田さんの[「場合分け」の書き方あれこれ](https://devtab.jp/entry/internal/28)を読んで感銘を受け、
Pythonでできないかなぁと試行錯誤をしたのが始まりです。
自分用のメモに留めるつもりでしたが、もしかすると同様の悩みを持つ方がいるかもしれないと思い、
投稿することとしました。

## ifを使用する場合
例として、図形の面積を求めるコードを考えてみます。

“`python
def calculate_area(shape_type, shape_info):
if shape_type == ‘triangle’:
return shape_info[‘bottom’] * shape_info[‘height’] / 2

if shape_type == ‘rectangle’:
return shape_info[‘bottom’] * shape_info[‘height’]
“`

図形の種類が増えるたびに関数にif文がどんどん増えていくのは嬉しくないですね。
(こ

元記事を表示

QuizKnockで取り上げられたLook-and-say Sequence (見て言って数列) をPythonで生成する

先日投稿されたQuizKnockさんの動画 [【東大】Google本社でGoogle入社試験に挑戦!](https://www.youtube.com/watch?v=7KaiPOou1As) で、 **Look-and-say Sequence(見て言って数列)** が取り上げられていました。
これは以下のように、初項を1として「前の項を読み上げた数字を並べたものが次の項になる」という規則で変化する数列です。

“`
1 = 1が1個 (One 1) → 1 1
1 1 = 1が2個 (Two 1s) → 2 1
2 1 = 2が1個,1が1個(One 2, One 1) → 1 2 1 1
1 2 1 1 = 1が1個,2が1個,1が2個…
“`

今回の動画で初めてこの数列の存在を知り、面白いと思ったので
この数列を生成するプログラムをPythonで作成してみました。

“`python
def lookAndSay(initialValues, maxIteration=None):
x = initialValues
yield x

元記事を表示

エンジニアにオススメしたいyoutuber

# Able Programming
機械学習に必要なpythonのライブラリや、機械学習の手法について解説しています。初心者でも機械学習に触れられるようになっています。
[Able Programming](https://www.youtube.com/channel/UCh5M2YUAPW7HnpfTUv7XHmA/videos)
スクリーンショット 2019-11-29 1.14.59.png

# シリエン戦隊JUN TV

シリコンバレーの現役エンジニアで、シリコンバレーで働いているエンジニアならではの情報を載せています。
将来シリコンバレーで働きたい人や起業したい人にオススメです。
[シリエン戦隊JUN TV](https://www.youtube.com/channel/UCqRPKFts1P

元記事を表示

「危険すぎる」と話題の文章生成AI「GPT-2」で文章を生成しよう

# GPT-2の運営はOpenAI
OpenAIはイーロン・マスクなどをはじめとする有力な実業家・投資家が参加している人工知能を研究する非営利団体です。
https://openai.com/

# 生成の手順
1. gitからclone
2. モデルのインストール
3. ライブラリをインストール
4. 文章を生成

## 1. gitからclone
“`
git clone https://github.com/seiyatakahashi/gpt-2.git && cd gpt-2
“`

## 2. モデルのインストール
“`
python3 download_model.py 1558M
“`

## 3. ライブラリをインストール

“`
pip3 install -r requirements.txt
“`

## 4. 文章を生成
“`
python3 src/interactive_conditional_samples.py
“`

元記事を表示

pyenvを使って、python3.xを構築しよう

## pyenvとは
複数のPythonバージョンを簡単に切り替えられるツール

## 環境構築の手順
1. Homebrewをインストール
2. pyenvインストール
3. pyenvのパスを通す
3. python3.6をインストール
4. python3.6を適用

## 1. Homebrewをインストール
HomebrewとはmacOS用パッケージマネージャーで、pyenvのインストールをするために必要なのでインストールします。Homebrewを使えば、pyenv以外にも、phpやmysqlなどを入れることができます。
Homebrew公式ページ: https://brew.sh/index_ja

“`
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`

## 2. pyenvインストール
pyenvはpythonのバージョン管理ツールです。

“`
brew install pyenv
“`

## 3. py

元記事を表示

薬理学実習_鎮静睡眠麻酔薬

“`bash:time.sh
name=$1
conc=$2
sleep 540; say “{$1}、1分前です”
sleep 60; say “{$1}、時間です”
say “次の投与濃度は{$2}分の1です”
“`

“`python:time.py
import numpy as np
import os,sys
import pickle
import pandas as pd

import argparse

#最初の引数受付
parser = argparse.ArgumentParser()
parser.add_argument(‘-n’, ‘–name’, type=str, default=None, help=’person name’)
parser.add_argument(‘-d’, ‘–drug’, type=str, default=None, help=’drug name’)

args = parser.parse_args(sys.argv[1:])
name = args.name
drug = args.drug

time_

元記事を表示

Python GoogleMapsAPIで逆ジオコーディングを日本語で出す

##始まりは「緯度・経度」から
たまたまだが、仕事でデータ処理チームのExcelのVBAを色々と直しているうちに、「atsukinovさん、VBAでAPIって使ったことありますか?」と聞かれた。
「え、使ったことないですね。どうしましたか」
「VBAで、緯度・経度から住所を調べるGoogle MapのAPIを使ってるんですが、なかなかうまくいかなくて…」
「ほうほう」
ということでコード画面を見せてもらったところ
***(さっぱりわからん)***
というのが正直な感想だった。
こちとら画像ダウンロードでちょいとflickrのAPIをチュートリアルに沿って使ったことがあるだけで、そもそもAPIとか使わんのじゃ!!
「因みにそのデータはどのくらい処理するんですか」
***「8万行です」***
Oh…
そりゃ確かにAPIとかそういう機能も使いたくなるだろうな。
でも、API使うなら正直Pythonとかで処理しちゃった方が楽だなと思ったので、
「とりあえず、俺Pythonで何かできないか調べてみますよ」
と言って、まずはGoogleMapsAPIというものについて調べることにした。

##

元記事を表示

MSの安全確認を突破し、証明書もムリヤリ提出する、ゴリラseleniumライブラリ

# なんで作ったの?
ブラウザをコードで動かすseleniumは大変便利。だが、システム毎に毎回書くのも面倒。
だったら自分の使い勝手のいいラッパー、ライブラリを作ろうじゃないか。

## 先に結果だけ見たい人
– システムに合わせて1ファイル(systemspecific.py)だけ改修
– テストするシナリオを作ってフォルダに配置
– コードを実行して、一晩待って、スクショで確認

https://github.com/ofbear/pyAutoTest

# どんなものが欲しい?
## 優先したいこと
– 使い回したいので、システム毎に改修すべき部分はくくりだしたい
– システムに合わせて改修したら、あとは非エンジニアでも使えるようにしたい
– オレオレ証明書で使っても文句を言われないようにしたい(物理で)
– クライアント証明書の提出もしたい(物理で)

## 捨ててもいいこと
– テストはどうせ夜中に走らせるので、処理は遅くてもOK
– 結果はとりあえずスクショの目視でOK

# 特徴は?
だいたいのところは、みなさんが各自で作ってるラッパーと一緒だと思います。
設計は好みに

元記事を表示

PythonのUnittestでmotoによるmockを共通化する

# 1. 動機
テストコード作成中に各テストコードでmockを作成するのが冗長的だなと思い、共通化できないか試行錯誤してみた。
以下、スタート時点のサンプルアプリとサンプルテストコード。
テストコードのEC2作成部分を共通化する。

– アプリ:EC2の情報を取得して出力する

“`app.py
import boto3

def main():
client = boto3.client(‘ec2’)
# 全てのインスタンス情報を取得する。
instances = client.describe_instances()
# インスタンス名を抽出する。
instace_name = [instance[‘KeyName’] for r in instances.get(‘Reservations’) for instance in r.get(‘Instances’)]
# インスタンス名を出力する
print(instace_name)
“`
– テストコード:mockでEC2を作成しアプリを実行する

“`test.p

元記事を表示

pythonのmodels.pyで設定するテーブルを関連付ける

#やりたい事
pythonでdjangoを使ってブログを作っている。
models.pyにテーブルの設定を行う際に、
カテゴリー>記事のような親と子の関係にあるテーブルを作りたい。

#やり方
各テーブルを紐づけるには、
各テーブルに存在する変数を用いる。
その際指定される変数をforeign_keyとして設定する。

#実際にやってみた
ブログに投稿する記事には以下のclassとデータが入っている。
postクラスには
id,title,cantent,created_at,category
その際categoryクラスは別で作り、
id,name,created_at
で構成されている。

これらをデータ型も決めてコードに落とすと、

“`
class Category(models.Model):
name = models.CharField(‘カテゴリ名’,max_length=255)
created_at = models.DateTimeField(‘日付’,default=timezone.now)

class Day(models.Model):

元記事を表示

OTHERカテゴリの最新記事