Python3関連のことを調べてみた2019年12月08日

Python3関連のことを調べてみた2019年12月08日

Pythonで数独を解く

#はじめに
hello?初めてのアドベントカレンダーですがいつも通り書いていきます。今回はpythonで数独を解いていこうと思います。
※コードは[こちら](https://github.com/Tiger59/sudoku)に挙げておくので主要なコードのみ説明します。

#数独のルール
1. あいているマスには1から9までの数字が必ず1つ入る
* 縦9マスに1から9までの数字が1つずつ入る。(重複はしない)
* 横9マスに1から9までの数字が1つずつ入る。(重複はしない)
* 太線で囲まれた3×3のブロックのどれにも1から9までの数字が1つずつ入る。(重複はしない)

(例)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/267562/0419d580-d3b0-bba3-646b-3d982ee92c3f.png)

#実装

今回は最適化問題でよく使われる[mypulp](https://pypi.org/project/mypulp/)モジュールを使います。データはエクセルに格納し[openpyxl](h

元記事を表示

Pythonで3次メッシュコードをWKTに変換する

備忘録レベルですが、pythonで3次メッシュコードをWKTに変換する関数を作成いたしました。
地味ですが、いざ必要なときに計算できなくなってしまいがちです…

“`python

def toWKTfromMeshCode3(mcode3: ‘mesh code(str)’):-> ‘wkt(str)’
south = (int(mcode3[0:2]) * 80 + int(mcode3[4:5]) * 10 + (int(mcode3[6:7]))) * 30 / 3600
west = (int(mcode3[2:4]) * 80 + int(mcode3[5:6]) * 10 + (int(mcode3[7:8]))) * 45 / 3600 + 100
north = south + 30 / 3600
east = west + 45 / 3600
wkt = ‘POLYGON(({e} {n},{w} {n},{w} {s},{e} {s},{e} {n}))’.format(s=south, w=west, n=north, e=east)

元記事を表示

VSCodeにvenv環境を認識させる方法とそのメリット

# 環境
* macOS
* VSCode 1.40.1
* Python3.6.0

# VSCodeにvenv環境を認識させる
“`.vscode/settings.json“` に下記を追加(下記は“`python -m venv .venv“`で仮想環境を作成した場合)

“`.vscode/settings.json
“python.venvFolders”: [
“.venv”
]
“`

# メリット
Linterが仮想環境にインストール済みのライブラリを認識してくれるため、「インストール済みなのにNot found警告が出る!」なんてことにならない。

元記事を表示

Presentation Support System with Python3

# はじめに
N高等学校プログラミングクラス1年の [@seigo2016](https://twitter.com/seigo2018)です。
[N高アドカレ8日目](https://qiita.com/advent-calendar/2019/n-highschool)になります。
きちんとした記事ということで,何を書こうか悩んだのですが,現在のメインプロジェクトの「糸かけ曼荼羅色シミュレーター」についてはU22等で沢山お話したので,今回は最近の短期プロジェクト「PSS ~Presentation Support System~」についてお話します。

# PSS ~Presentation Support System~ の目的
皆さんも人に何かを伝える際にPowerPointやGoogleSlideなどを使用してプレゼンテーションを行うことが多々あると思います。N高プログラミングクラス(以下プロクラ)でも毎月LTが開催されています。
そこでプレゼンテーションを支援するシステムを制作することにしました。
## 機能
1. リアルタイムでコメントが流れる
2. スマートフォン等から

元記事を表示

slackbot備忘録 ~正規表現を使ったリクエスト編~

# はじめに
pythonを使ってslackbotを作成した備忘録パート3

[前回][1]から、だいぶ時間がたってしまった…

皆さん、よくこんなサンプル見ませんか?

> @respond_to(“^test\s+\S.*”)

私は最初、「こういうものなんだ!」と何も考えずに使っていた

しかし、よくよく考えると()内は正規表現だと気づいた(遅い)

ということで「こんな respond_to 作りたいなぁ」という悩みがあったので、正規表現で解決してみた!

今回はその正規表現をまとめてみた

お品書きは以下の通り

* そもそも正規表現って何?
* よく使う正規表現
* 「文頭(文末)の文字に反応してほしいなぁ」
* 「test 〇〇みたいにコマンド形式に反応してほしいなぁ」
* 「複数の言葉でも、1回だけ処理を実行してほしいなぁ」
* 「複数部、可変的にとりたいなぁ」
* おわりに

# そもそも正規表現って何?
*正規表現*とは、「文字列の集合を一つの文字列で表現する方法の一つ」である

PHP, Perl, Python, Ruby などで使用することができる

Pyt

元記事を表示

Djangoインストールからアプリ作成までのチュートリアル

#ほぼ初心者の方へ、Djangoの説明
**コチラの記事はかなりDjango初心者の方向けに、インストールからやってみようという方向けの記事として作成されています。**

DjangoはPythonのプログラミング言語を用いたアプリケーションフレームワークです。Python を知らない方はDjangoを聞くと「は?」となる方が多いです。

そのため、認知度は低いほうかと思います。
しかし、覚えるポイントが簡単で、慣れれば使いこなせること間違いなし。
Djangoから始めてみようと思った方は私と一緒な感覚をお持ちかと思います(^^)/
シンプルな言語でスラスラかけるように補助しますので、頑張りましょう。
きっとかけるようになります。こんなプログラミングが苦手な私でも扱えるのですから!

##やってみよう!DjangoはAnaconda3を使ってインストールをする
リンク先で各インストール方法が記載されているので参考にしてみてください。
パソコンに無料でDjangoのインストールを行います。
1.[Anaconda3のインストール](https://weblabo.oscasierra.n

元記事を表示

Pythonでデータ保存するときにディレクトリがないエラーを防止する関数

# Pythonでのデータ保存の問題
jsonやcsvとしてデータを書き出すとき,ディレクトリ指定でディレクトリがないときにエラーになってしまいます.

エラー例: `FileNotFoundError: [Errno 2] No such file or directory: ‘./save/json/result.json’`

なので,関数を一つ挟むことで,ないときは自動生成するようにしているので,その関数を置いておきます.

# ディレクトリ自動生成関数
“`python
import os

def set_up_directory(filepath):
path_elements = filepath.split(‘/’)
path_elements.pop(-1)
os.makedirs(‘/’.join(path_elements), exist_ok=True)
“`

# 一応解説
`/`で一旦パスをバラして,配列にし,ディレクトリだけを取り出すために最後尾を削除しています.
これを再び`/`で結合し,`os`モジュールの`makedi

元記事を表示

様々な言語でFizzBuzzプログラムを書いてみた

# いろいろな言語でFizzBuzzを書いてみた

本日はAdvent Calenderの7日目になります。
## はじめに
私自身、Advent Calendarに初投稿ということで、な・な・なんと今回は、ジャブ程度に`Python`・`Ruby`・`JS`でFizzBuzzを書いて見ました。

## FizzBuzzって何?
>「3」で割り切れる数値を引数に渡すと、’Fizz’を返す。
>「5」で割り切れる数値を引数に渡すと、’Buzz’と返す。
>「3」、「5」の両方で割り切れる数値を引数に渡すと、’FizzBuzz’を返す。

## Python version
“`
x = int(input(“好きな数字を入力してください:”))

print(x)
if x % 15 == 0:
print(“FizzBuzz”)
elif x % 3 == 0:
print(“Fizz”)
elif x % 5 == 0:
print(“Buzz”)
else:

元記事を表示

線形組み合わせ最適化(タイムテーブル)

# objective optimization
## Abstract
時間毎タスク割り当て組合わせ最適化問題をpythonとpulpを用いてやってみました.
参考にしたコード[^pakuri_moto]

## Motivation
以下のようなメールが届いたとします。

○○様

明後日のイベントですが, 企業$J$社に対して$I$人が申し込んでおります.
1人$T$コマですので($I

元記事を表示

JavaScriptかPython3で関数型プログラミングに触れてみる

関数型プログラミングとはなんぞやという人間が、JavaScriptかPythonで関数型プログラミングを初めての経験ということで、触ってみた。
まだまだ勉強中なんでとりあえず学んだことをメモします。

今日本日はカレーがメインです:curry:

## JavaScriptの場合

### 準備運動

“`javascript:main.js
// filterで絞り込みをする

let talentList = [
{‘name’ : “高田健志” , ‘Belong’ : null},
{‘name’ : “もっさん” , ‘Belong’ : null},
{‘name’ : “みどにぃ” , ‘Belong’ : “N○”},
{‘name’ : “こくにぃ” , ‘Belong’ : null},
{‘name’ : “かっさん” , ‘Belong’ : “無らっしゅ”},
{‘name’ : “

元記事を表示

外為で勝つために その2 ~ MySQL 接続編

前回「[外為で勝つために その1](https://qiita.com/Kazuya_Murakami/items/a5775af9b0f0ff7bee79)」の続きです。

為替レートが取得できたので、データベースに登録したいと思います。
以下のページを参考にしたというか、今回はほとんどパクリです。申し訳ない。

【参考】
[ラズベリーパイにMariadbをインストールした時のメモ](https://qiita.com/mtmtEM/items/cbda7216c08bc363be1f)
[Python3からMySQL繋ぐ時は、いろいろあるけどとりあえずPyMySQLにしとこうや](https://qiita.com/mitch0807/items/f9f6efd4e65a022a8ab9)

## パッケージのインストール
MySQL 環境構築に必要なパッケージをインストールします。

“`
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install mysql-server
pi@

元記事を表示

torch.max()でちょっと迷ったこと

## はじめに
PyTorchのドキュメントでちょっと理解できてなかったから残す程度
コードは[ドキュメント](https://pytorch.org/docs/stable/torch.html)から

## torch.max()の使い方
### 1. 1Dテンソルの場合

“`python
a = torch.randn(1, 3)
a
tensor([[ 0.6763, 0.7445, -2.2369]])
torch.max(a)
tensor(0.7445)
“`
うん,一番簡単一次元配列の最大値の要素を返してくれる

### 2Dテンソルの場合
“`python
a = torch.randn(4, 4)
a
tensor([[-1.2360, -0.2942, -0.1222, 0.8475],
[ 1.1949, -1.1127, -2.2379, -0.6702],
[ 1.5717, -0.9207, 0.1297, -1.8768],
[-0.6172, 1.0036, -0.6060, -0.243

元記事を表示

UCB 方策について

# UCB方策について

“`python3:ucb1.py
import random
import numpy as np
import matplotlib.pyplot as plt

class Bernoulli_class():
def Bernoulli(self, p):
if (p < random.random()): return 0 else: return 1 class ucb1_class(): def ucb1(self, round, simple_slot_rate): m = len(simple_slot_rate) temp_reward = 0 large_t = [0 for i in range(m)] total_reward = [0 for i in range(m)] sample_mean = [0 for i

元記事を表示

【自由研究】Wikipediaの更新とトレンドに関連性はあるのか?

# 【自由研究】Wikipediaの更新とトレンドに関連性はあるのか?

ゲッタ〜です。小学20年生くらいです。自由研究の発表をします。

……

動機は下に書きますが、興味湧いたのでやってみたらさくっと実装できたので、
qiitaにあげてみようかなって思ったらちょうどアドカレの時期だったので適当に載せときます。

## 動機

嵐の二宮氏が結婚発表した際に、Wikipediaが荒らされていたのが。

もちろんそのときにはTwitterのトレンドに<は「ニノ結婚」とか入っていた。 そこで「もしかしてWikipediaとTwitterトレンドには関連があるのかな:thinking:」と思った。 関連があった場合何が嬉しいかというと、Wikipediaを見るだけでトレンドもおさえつつ、具体的な知識を得ることができ、SNSを見るよりもトレンドについて詳しく知ることができるのではないか。 ## 方法 TwitterのトレンドをAPIで取得する。

Twitterの日本のトレンドをAPIで取得するプログラム

“`pyt

元記事を表示

Pythonにおける関数

# はじめに

ここでは、Python初心者向けに「関数」について解説していきます。
Python3系の使用を想定しています。

# 関数の作成

関数を作成するときは、`def`を使います。
`def 関数名(仮引数1、仮引数2、・・・):`の次の行は半角スペース4つ分インデントして書き始めます。
返り値は`return`で書きます。
関数名は、組み込み関数などと同じにならないように注意が必要です。

“`python:function_1.py
def hello_python(): # 仮引数はなくても良い。
return ‘Hello, Python!’

def average(a, b): # 仮引数を2つ指定する。
return (a + b) / len([a, b])

def greeting(word, n = 3): # 仮引数のデフォルト値を指定する(この例では第二引数)。
return (word * n)
“`

# 関数の呼び出し

関数を作成したら、実行したい箇所で関数名を呼び出します。
関数を作成しただけで実行される

元記事を表示

形態素解析で遊んだ話

## はじめに
僕は明治大学公認サークルのNCCに所属していて, 毎年夏と春に合宿を行なっています. 今年の夏合宿のテーマはペアプログラミングで, そこで行なった形態素解析について書きます.

## 環境
OS: High Sierra
言語: Python3.7

## 形態素解析とは
>文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。(Wiki)

要は文章を最小単位の単語(形態素)で分解するということを形態素解析といいます.

__今回は一方の文の名詞をランダムに他方の文の名詞の部分に突っ込み, おもしろ文章を生成します.__

[GitHub(auto_statement_generator)](https://github.com/jabelic/auto-sentence-generator#auto_statement_generator)
## 使用したライ

元記事を表示

Panasonic の電力計 kw2g から rs485 でデータを読む

RTコマンド を送って、リスポンスを受け取るサンプルです。
プロトコルは MEWTOCOL です。

“`py:kw2g.py
#! /usr/bin/python3
#
# kw2g.py
#
# Dec/07/2019
#
#
# ——————————————————————
import serial
import time
import sys

# ——————————————————————
sys.stderr.write(“*** 開始 ***\n”)
#
ser = serial.Serial(port=’/dev/ttyUSB0′, baudrate=19200,bytesize=8,parity=’O’,stopbits=1,timeout = 1)
#
data = [‘%’,’

元記事を表示

Pythonとzlibを使って圧縮ファイルを作ってみる

# はじめに
LOCAL学生部アドベントカレンダー6日目

11日目の記事を書いている途中に偶然生えたので、空いている枠を埋めようと思います。

# zlib って何?
## 概要
公式: [zlib.net](http://zlib.net/)
Zip等に使われている圧縮アルゴリズムをライブラリ化したもので、内部ではDeflateを実装しています。
バイナリデータの圧縮が簡単にできるので、通信とかに使うのもありかも?(試したことはない)
ファイルの圧縮とかだと、結構見かけますよね。

## license
zlib には zlib Licenseが適応されています。
MITに似たかなり緩いライセンスです。
詳しくは調べてみてください。

# 使ってみる
詳しい情報は[こちら](https://docs.python.org/ja/3/library/zlib.html)をご覧ください
## compress(data: bytes, level: int = -1) -> bytes
`data`を圧縮し返します。
`level`は圧縮率です。
`-1 ~ 9` の値が入り、デフォル

元記事を表示

python 文字列の連結の工夫

pythonで変数を文字列に組み込むときにわかりやすく書ける方法を備忘録として残しておきます
例えば、通常下のような記述がありますが””や+が多く煩雑になってしまう恐れがあります。

“`
name=”太郎”
print(“私の名前は”+name+”です”)
“`

これをf””で全体の文をくくり、変数を{}で表すことができます

“`
name=”太郎”
print(f”私の名前は{name}です”)
“`
こちらの方が分かりやすいのではないのでしょうか。もしよかったら使ってみてください

元記事を表示

Microsoft の AI サービス Cognitive Services を使った OCR アプリ (Python, Flask) を git push トリガーで自動で Azure にデプロイするハンズオン

今回作る Web アプリは、文字の含まれる画像をアップロードすると、それを認識して文字列にして表示してくれる OCR (文字認識) アプリです。
アプリには Python 3, Flask, Microsoft の AI サービスの Cognitive Services などを使用しています。
クラウド (Microsoft Azure) へのデプロイは git push トリガーの自動デプロイとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24609/9bf43636-3b5e-52cf-ad51-a96b5e2941df.png)

### Thank you!

この OCR アプリは Microsoft 社のエンジニア [Christopher Harrison](https://twitter.com/geektrainer) さんによって作られた「 [sign-reading](https://github.com/geektrainer/sign-read

元記事を表示

OTHERカテゴリの最新記事