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

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

Python初心者がクイックソートを整理する

###これは備忘録です
ホントに忘れそう
#引用サイト
今回は先に整理するために拝見させていただいたサイトを紹介させていただきます

– [アルゴリズム参考](https://qiita.com/muijp/items/257e8b9b49d891137d56)
– [トレース参考](https://www.suzu6.net/posts/68-quicksort/)

それぞれ少しだけアルゴリズム自体が違いますが同じクイックソートなので@muijpさんのアルゴリズムを元に整理させていただきます

#プログラム
[@muijpさんのクイックソート](https://qiita.com/muijp/items/257e8b9b49d891137d56#%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88-quick-sort)に先日@shiracamusさんからアドバイスをいただいたランダム配列のプログラムとデバッグ用の出力を入れました

“`q_sort.py
def qSort(a):
print(a

元記事を表示

ゼロから始めるLeetCode Day58 「20. Valid Parentheses」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

python3での競プロの標準入力部分のテンプレートらしきもの

#初めに
最近、自分のスキルアップのためにAtCoderで競技プログラミングを始めてみました。
正直、周りのつよつよエンジニアの解く速度に圧倒されていますが、少しずつ解けるようになってきて楽しいです。

始めたての時にまず詰まるのが、与えられたデータの入力をどう処理するかです。
初心者用の問題でよくあるのが、整数の入力だったり、N個の数値が入力されたり…。
Pythonを使っている側からすると、正直あんまり標準入力とか使わないんですよね(私だけではないですよね…?)
そこで、最初の入力系でよく使う個人的なテンプレートみたいなのをまとめたいと思います。

#Pythonでの標準入力
私が実際に使っているのは、sys.stdin.readline()で、一行ずつ読み込んでくれます。
改行コードも読み込みますが、使いやすいので使っています。
事前にinputにsys.stdin.readlineを代入しておくと、input()だけで使えるので便利です。
このinputでは、文字列が得られます。

“`python:input.py
import sys

input = sys.s

元記事を表示

Docker-Compose&Python3.6+NGINX+MariaDB10+uWSGIのDjango環境構築におけるMigrationエラー対処法について

“Docker-ComposeでPython3.6+NGINX+MariaDB10+uWSGIのDjango環境欲張りセット”のおまけ。
https://qiita.com/NickelCreate/items/bed3dc9d088b57127ba7

@NickelCreate ++

環境
– Python 3.6.10
– Django 3.0.7

# トラブル発生

つらつらと環境欲張りセットを実行していくと、マイグレーションコマンド実行でバージョン互換エラーが発生。

> docker-compose run web ./manage.py makemigrations

`django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.`

モジュールを確認すると、以下のような構成(バージョンは最新版を当てたい)

“` requirements.txt
django
djangorestframework
django-filt

元記事を表示

ラズベリーパイZERO-WHの監視カメラを動かすための環境構築作業

# はじめに

前々回からQiitaにて監視カメラの記事を投稿しています。
監視カメラをもう一つ構築するので、環境構築についてもすこしまとめてみました。

## 1) 準備するもの

* Raspberry Pi Zero WH
* microSD カード(32GB、16GBでもOK)

## 2) 設定する前に必要なもの

設定作業を行う上で必要な周辺機器です。

* PC(windows or mac) OSのダウンロードやmicroSDカードの作成ほか
* USB2.0のハブ(USB2.0-microUSB変換アダプタが必要)
* USB マウス(USBハブに接続)
* USB キーボード(USBハブに接続)
* HDMI接続できるモニタ(接続ケーブルが必要。HDMI-miniHDMIケーブルもしくはminiHDMIに変換できるアダプタが必要
* マイクロUSB電源アダプタ
* USBのSDカードリーダ(MicroSDカードの場合はSD用のアダプタが必要)。PCに接続します。

# OSのイメージをmicroSDに作成する。

1. microSDカードをWin

元記事を表示

Pythonによる.txtファイルの読み込み

paizaラーニングの環境でPythonの基礎をひと通り勉強した後にAtomに移行したら標準入力ができないことに困惑してしまい、どうしたら外部からのデータを読み込めるか調べた時のまとめです。
初心者の自分用にまとめたものなので間違いなどあったら教えてくださると幸いです。

以下のサイトを参考にさせていただきました。
**note.nkmk.me**様
– [Pythonでカレントディレクトリを取得、変更(移動)](https://note.nkmk.me/python-os-getcwd-chdir/)
– [Pythonでファイルの読み込み、書き込み(作成・追記)](https://note.nkmk.me/python-file-io-open-with/)
**crukky**様
– [atom・pythonで競技プログラミングのテスト環境構築](https://qiita.com/crukky/items/73c1322f5929b1ca5834)
##カレントディレクトリを取得してパスをつなげる
“`python:pass.py
import os
path = os.ge

元記事を表示

いまさらPython3(その他)

# はじめに
自分用のPython3として基本的な制御構造とデータ構造以外の文法を記載する。正確性より実用性を重視する。
(Javaや.NETを主に使ってる自分が、Pythonを使うためのページです)

制御構造は[いまさらPython3(制御構造編)](https://qiita.com/hos20r1/items/acd331c36403b96b5a1b)
データ構造は[いまさらPython3(データ構造編)](https://qiita.com/hos20r1/items/3326bdf6b4d2d75e33c0)

# モジュール
## import文
“`
(1) import モジュール名 as 別名
(2) from モジュール名 import 定義名 as 別名, 定義名 as 別名
 ※定義名は、クラス名、関数名、変数名など
“`
“`py:importの例
import math as m
from math import pi

print( m.pi )
print( pi )
“`
(1)は、モジュールをインポートし、モジュール名.定義名で利用する。

元記事を表示

subprocessでPATHが必要な外部プログラムを動かす時,実行エラー

# 結論
PATHが通ってないと動かない様なプログラムをsubprocessから実行するにはshell=Trueが必要?

# やりたかったこと
pythonからfortranのプログラムを動かしたかった.
具体的にはこんな感じのものを副次的に呼び出す.
“`subprocess.run(‘./hoge.out’)“`

# 動かしてみると
– 正常に動作してくれない…
– 出力を見てみるとifort(コンパイラ)がfile not foundうんたらかんたら
– PATHが通ってない時によくみる症状
– シェルから動かすと普通に動くのでPATHは通っているはず…
– 試しに副次的じゃなく直接叩くpythonプログラムを書いてみても動いた…

# 原因
“`subprocess.run([‘echo’ ‘$PATH’])“`
とすると
“`$PATH“`
とそのまま返ってきて何も参照していないのが原因?
調べてみるとこんな記述が…
>「PATHを参照したかったらshell=Trueにしろよ!」
>- [stackoverrunより](https://stac

元記事を表示

電力使用量予測 with Keras (TensorFlow)

# はじめに

これまで電力需要予測という言葉を使って何度も扱ってきたテーマですが、今年の5月のデータがとても特徴的だったので再度記事を書いてみます。

[過去の記事]
– [機械学習で電力需要予測をしてみる](https://qiita.com/mix_dvd/items/2938b162610a3b23d630)
– [機械学習で電力需要を予測してみる パート2](https://qiita.com/mix_dvd/items/1f96f5202614dbea93e0)
– [Chainerで電力使用量予測](https://qiita.com/mix_dvd/items/cf625bbb447797afa063)
– [TensorFlowで電力使用量予測 with Keras](https://qiita.com/mix_dvd/items/ecfa6f0038e39cdce57e)

# 動作環境

– [Colaboratory](https://colab.research.google.com/)
– Python 3.6.9
– Pandas 1.0.4
– Nump

元記事を表示

1行でじゃんけんゲームをつくる(python)

python3.8+ onlyです
# コード

“`python
print(“a|b|c”*-~-((a:=input(“a:パー\nb:チョキ\nc:グー\n”))in”abc”)or”Draw”*((b:=__import__(“random”).choice(“abc”))==a)or”You “+”lwoisne”[b+a in”abbcca”::2],f”\nyou:{a} pc:{b}”)
“`

185Byteです

# 解説

最初に言っとくと多分もっと短くできると思います…

まあわかりやすくすると

“`python
import random

a = input(“a:パー\nb:チョキ\nc:グー”)
b = random.choice(“abc”)
if -~-(a in “abc”):
print(“a|b|c”)
elif a == b:
print(“Draw”)
else:
print(“win” if b+a in “abbcca” else “lose”)
print(f”you:{a} pc:{b}”)
`

元記事を表示

3Dの座標値を出力する|Python

#Pythonで3D表現をしてみた
2Dでのグラフ表示をしてみたので、今度は3D表示を試みてみた。
使用したのは
・MacOS
・PyCharm(エディタ)
・*numpy*
・*matplotlib*
・*mpl_toolkits*
以上を使用します。
##空間二次関数のグラフ
以下のような画像ができました。
スクリーンショット 2020-06-16 0.41.42.jpg

X-Yビューでは1ずつ増やして
X座標 × Y座標 = Z座標 となるように表現してみました。

ではサンプルコードです。

“`Python:plotAxes3D.py
# Numpy, Matplotlib
# mpl_toolkits.mplot3d を使って3D座標をプロット
# — 2020.06.16 Pro

元記事を表示

自分用Pythonコードメモ

自分用のPythonコードメモです。Python歴は2年くらいです。
メモしてないと忘れて何回も調べる羽目になるというに最近気づいたので…
ついでに初めてのQiitaでの記事なので、体裁とか気にせず殴り書き。
余裕あれば過去のコード見て追記していきたい。(やったことある項目だけとりあえず書いとく)
オブジェクト指向が苦手。Django勉強中。LINEのチャットボットアプリを作る予定。

# 条件分岐
### between

“`python
a = 10
# print(2 <= a and a <= 15) print(2 <= a <= 15) ``` ⇒true # リスト ### 逆順ループ ```python for i in reversed(range(5): print(i) ``` ⇒4, 3, 2, 1, 0 ### リスト内にあるか ```python l = ["a", "b", "c"] print("a" in l, "d" in l) ``` ⇒true, false ### 検索してインデックスを返す ```python l = ["

元記事を表示

Doc2Vecの事前学習済みモデルから単語や文書のベクトルを獲得する

#事前学習済みモデルのダウンロード
https://github.com/jhlau/doc2vec

#モデルをloadし,単語ベクトルを確認してみる

“`confirm_WordVector.py
from gensim.models.doc2vec import Doc2Vec
model = Doc2Vec.load(‘model/enwiki_dbow/doc2vec.bin’)
vector = model.infer_vector([“word”])
print(len(vector))
print(vector)
“`

“`
300
[ 1.40280828e-01 1.83409289e-01 -2.64408961e-02 -1.11115627e-01
-1.84268013e-01 2.21883774e-01 -1.39962300e-03 -7.80699700e-02
-8.71175826e-02 2.56892532e-01 1.28477469e-01 -1.32150203e-01
9.16299447e-02 -1

元記事を表示

ゼロから始めるLeetCode Day57 「35. Search Insert Position」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

10分でわかるBeautifulSoupを使ったスクレイピング

##はじめに
こんにちは。
私はIT企業で経理として働いています。
せっかくIT企業に勤めているんだからバックオフィスの業務にもプログラミングを活かしてみたい、、、!
そんな気持ちでPythonを触ってみました。

##こんな人に向けて書きました
– スクレイピングについてざっと知りたい人
– ほんの少しプログラミングをかじって、できることを探している人
– 業務を自動化できないか検討中の管理部の人

##目次
– スクレイピングって何ができるの?
– スクレイピングの仕組みは?
– サンプル①
– サンプル②(応用例)

##スクレイピングって何ができるの?
**取得したHTMLから、任意の情報を抽出し、加工する**ことができます。
具体的には、スクレイピングを活用してこんなことができます。

– 毎日同じWEBサイトにアクセスして、情報をcsvファイルに転記する作業を自動化
– SNSで特定のキーワードでヒットした画像をすべてダウンロードする
– 特定のキーワードに当てはまる企業を抽出し営業リストを作成

##スクレイピングの仕組みは?
ざっくりというと、
**WEBサイト上の情報

元記事を表示

Djangoの汎用クラスビューを用いてシンプルなCRUDアプリを作ってみる

# はじめに
以前、Railsで簡単な投稿・編集・削除ができるアプリを作ったので、Djangoでも再現できるか試してみました。
「読んだ本の感想を投稿する」というテーマで、本のタイトルと短めの感想を投稿できるようになっています。
コードソースを以下に置いておきます。

Rails版:
https://github.com/Sn16799/Bookers.git
Django版:
https://github.com/Sn16799/DjangoBookers.git

# 環境
OS: centos7
Django: 3.0.6
Python: 3.8.3

# アプリの立ち上げ
“`
$ python manage.py start project mysite
$ cd mysite
$ python manage.py startapp bookers
“`

# ディレクトリ構成
templates以下, forms.pyを手動で付け足しました。

“`
mysite/
bookers/
templates/
books/
inde

元記事を表示

Nuxt&Django REST Frameworkを使って遊ぶ

# 概要

今までNuxt.jsとDjango REST Frameworkを使って色んなことをやってきたのですが、[ゼロから始めるLeetCode](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)という毎日更新の記事を書いているせいで自身の投稿履歴から見直す時にいちいち見辛い・・・

ということでハブ的なまとめページを作りました。

# リンク

– [djoserを使ったDjango REST Frameworkでの認証機能の実装](https://qiita.com/KueharX/items/eef29ae0c5c238cbf61c)

– [djoserを使ったDjango REST FrameworkでのJWT認証機能の実装](https://qiita.com/KueharX/items/3568b27213cdbd1cf261)

– [djoserを使ったDjango REST Frameworkでのカスタムユーザーモデル認証機能の実装](https://qiita.com/KueharX/items/009

元記事を表示

PythonとSiemensPLCでSocket通信しよう

今回やったのはS7-1500のPLCとPythonでSocket通信のプログラムを作ろうと思います。

#Siemens側
Siemens側使ってるのは以下の4つのFBでうございます。

– FB65 “TCON”
– 接続を確立させるの関数です。(Socket.connect()のような)
– FB66 “TDISCON” for ending the connection
– 接続を切るの関数です。(Socket.close()のような)
– FB63 “TSEND” for sending data
– データを送信する関数です。(Socket.send()のような)
– FB64 “TRECV” for receiving data
– データを受信する関数です。(Socket.recv()のような)

関数の名前がわかった時点、Socket通信するためにはIP、PORTなど設定する必要がありますが、Siemnes側にはTCON_Paramという構造体が用意しています。もちろんDefault値のままのところもあり、ちゃんと設定する必要場合もありま

元記事を表示

Pythonでアルゴリズム(素数判定)

#はじめに
Atcoder Biginner Contest170にて、エラトステネスの篩の考え方を応用させるというのを見て、エラトステネスの篩すらまともに理解できてないままではいかんと思い執筆を決意しました。
実用性というよりは原理の理解のための記事なのでコンテスト中などにたどり着いた方は[こちら](https://ikatakos.com/pot/programming_algorithm/number_theory/prime_judge)
がおすすめです。(いつも参考にさせていただいているいかたこのたこつぼさんのHPです)
#素数判定
##試し割り法
 まずは、試し割り法と呼ばれる手法を用います。2よりも大きい数で順に割っていき、割り切れたらその数を約数に持つということなので素数ではありません。
 しかし、$N$まで全ての数で割っていく必要はありません。$N$が約数$d$を持つとすると、$N/d$も$N$の約数であり、どちらか小さい方で割れば十分です。小さい方が最大となるのは、これら2つが等しくなるときなので、(小さい方が大きい方を抜かすとそれはもう調べ終わっている) $\sq

元記事を表示

Pythonで株価を機械学習

#目的

***1. githubにコードが上がっているので、どのモデルが一番いいのか教えて欲しい***
2. pythonを使用して、株価が次の日上がるか下がるか機械学習させて結果を表示
3. お金稼ぎたい(楽して♡)

– 開発環境:python3
– githubのコードURL:https://github.com/maeda-naoya-fk/Machine-Learning-for-stock

注意:python初心者なんでコードの誹謗中傷はよして下さい。どうかおねがいします。

#準備
– 本記事はわかりやすいようにjupyterベース(Example.ipynb)でコードを回していきます。jupyterない人も大丈夫! config.iniをいじってコマンドで“`python3 main.py“`と打てばok

– ***コードの中身を詳しく説明しても長ったらしくなるので、簡単に何をしたか説明します***

“`python:Example.ipynb
from datetime import datetime
from scraiping import Scra

元記事を表示

OTHERカテゴリの最新記事