- 1. AtCoder に Cython がやってくる!!
- 2. クラスの継承
- 3. PythonでAzure SQL Databaseに接続する備忘
- 4. Python3 の Rest で Cloud Firestore のデータを削除 (Delete)
- 5. 【Windows10】の開発環境をPython3で構築
- 6. Python3 の Rest で Cloud Firestore のデータを読む (Read)
- 7. Python3 の Rest で Cloud Firestore のデータを作成 (Create)
- 8. デストラクタ
- 9. Salome-Meca 2018 をPythonから実行する方法(Ubuntu18.04)
- 10. pythonのglobで再帰的にファイルを取得
- 11. クラス
- 12. ASCIIコード(ABC146B)
- 13. Django 3.0.2 models.pyをモデルクラス毎にファイル分割する
- 14. Coral USB TPU Accelerator(EdgeTPU)をWindows端末で使う
- 15. AWS Cloud9上でFlaskの設定から公開まで
- 16. 二次元配列からキーごとの最大値を取り出す
- 17. GeoPandasのインストールに失敗した場合の対処法(Fiona/GDALのエラー ※Rtreeのインストール方法も追記)
- 18. HomebrewでPythonを2系から3系に切り替える
- 19. [Python3 入門 19日目]8章 データの行き先(8.4〜8.5)
- 20. Atcoder AGC019 A – Ice Tea Store 別解集
AtCoder に Cython がやってくる!!
# AtCoder に Cython がやってくる!!
[言語アップデート](https://twitter.com/atcoder/status/1223141026707017728)クルーってことで、新ジャッジテスト環境で Cython が試せたので触ってみました. ちなみに Cython に触るのは初めてで何もわかっていません(笑)
ちなみに言語アップデート後の Python 3 は 3.8.0 で、Cython は 0.29.14 です.
## Python のコードはそのまま動く
ABC085C – Otoshidama で試してみました. Python 3 で 678 ms で AC したソースコードをそのまま Cython で提出したら 614ms で AC しました.
“`python
from sys import exitN, Y = map(int, input().split())
for i in range(N + 1):
for j in range(N + 1 – i):
k = N – i – j
クラスの継承
“`py:
class Car(object):
def run(self):
print(‘run’)class ToyotaCar(Car):
passclass TeslaCar(Car):
def autorun(self):
print(‘autorun’)car = Car()
car.run()print(‘#############’)
toyota_car = ToyotaCar()
toyota_car.run()print(‘#############’)
tesla_car = TeslaCar()
tesla_car.run()
tesla_car.autorun()
“`“`:実行結果
run
#############
run
#############
run
autorun
“`まず、Carというクラスを定義した。
そしてそのCarを継承したToyotoCarクラスを作成した。
ToyotoCarクラスのもつメソッドは、
Carクラスと全く同じrunメソッ
PythonでAzure SQL Databaseに接続する備忘
##PythonでAzure SQL Databaseに接続する
※mymssqlはpip install済みとする。
多分、SQLServerでもいけるはず。“`
import pymssqlserver = ‘<サーバー名>‘
database = ‘‘
user = ‘<ユーザー名>@<サーバー名>‘
password = ‘<パスワード>‘connection = pymssql.connect(server=server, user=user, password=password, database=database)
“`userにはユーザ名+サーバー名が必要なので要注意
Python3 の Rest で Cloud Firestore のデータを削除 (Delete)
“`py:firestore_delete_rest.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# firestore_delete_rest.py
#
# Jan/29/2020
#
# ——————————————————————
import sys
import json
import requests
#
from get_token import get_token_proc
# ——————————————————————
sys.stderr.write(“*** 開始 ***\n”)
#
key_in = sys.argv[1]
print(“%s” % key_in)
#
token = get_token_proc()
#
project = ‘project-jan25-2020’
#
url=”https://fire
【Windows10】の開発環境をPython3で構築
## 概要
Windows10でPython3をインストールし、開発環境の構築までの流れを自分用にメモ。## システム構成
・Windows(Windows10 64bit)
・Python 3.8.1
・pip 20.0.2
・Virtualenv#1. Python3をインストール
![python3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576171/cb5cfcf3-9453-1152-72bc-10ca35ddee21.png)上記の[公式サイト](https://www.python.org/downloads/)にアクセスし、Downloadの部分にカーソルを合わせてWindowsを選択してください
今回は、Python 3.8.1をインストールして説明していきます。
![Python3パッケージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576171
Python3 の Rest で Cloud Firestore のデータを読む (Read)
“`py:firestore_read_rest.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# firestore_read_rest.py
#
# Jan/31/2020
#
# ——————————————————————
import sys
import json
import requests
#
from get_token import get_token_proc
# ——————————————————————
def row_proc(unit_aa):
# print(unit_aa[‘name’])
# print()
tt = unit_aa[‘name’].split(‘/’)
llx = len(tt)
key = tt[llx – 1]
#
fields = unit_aa[‘fields’]
# pri
Python3 の Rest で Cloud Firestore のデータを作成 (Create)
こちらと同じことを Rest で行います。
[Python3 で Cloud Firestore のデータを作成 (Create)](https://qiita.com/ekzemplaro/items/4288176394947283c84a)“`py:firestore_create_rest.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# firestore_create_rest.py
#
# Jan/31/2020
#
# ——————————————————————
import sys
import json
import requests
#
from get_token import get_token_proc
# ——————————————————————
def add_data_proc(url_base,tok
デストラクタ
“`py:1
class Person(object):
def __init__(self, name):
self.name = namedef say_something(self):
print(‘I am {}. Hello’.format(self.name))
self.run(3)def run(self, num):
print(‘run ‘*num)def __del__(self):
print(‘Good-Bye’)person = Person(‘Tom’)
person.say_something()
“`“`:1の実行結果
I am Tom. Hello.
run run run
Good-Bye
“`“`py:2
class Person(object):
def __init__(self, name):
self.name = namedef s
Salome-Meca 2018 をPythonから実行する方法(Ubuntu18.04)
##はじめに
Salome-Mecaとはプリポストとソルバーがセットになった、オープンソースの構造解析ソフトです。
使用方法などは、以下のサイトを参考にしてください。> OpenCAE Users Wiki
> [SALOME-Mecaの使用法解説][link-1]
[link-1]:http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?SALOME-Meca%A4%CE%BB%C8%CD%D1%CB%A1%B2%F2%C0%E2Salome-Mecaは基本的にはGUIで操作をしますが、パラメータスタディなどで何度も繰り返し計算をさせる場合にはCUIでの操作が便利です。
## 準備
PythonスクリプトからCUIで計算させる場合、以下の3つのファイルが必要になります。
注意点としては、GUIの操作で解析の設定を全て完了しないと、これらのファイルが作成されませんので、一度GUIを使って解析のステップまで進めておく必要があります。
(一旦作成できれば、テキストを編集する事で解析の設定変更などが可能になります)AsterStudyモ
pythonのglobで再帰的にファイルを取得
備忘録。
python3.6で、特定のディレクトリ配下の全てのjpg画像を再帰的に読み込んで、名前順でソートする方法。“`python
import glob
file_list = sorted(glob.glob(‘directory_name/**/*.jpg’, recursive=True))
“`
クラス
“`py
class Person(object):
def __init__(self, name):
self.name = namedef say_something(self):
print(‘I am {}. Hello’.format(self.name))
self.run(3)def run(self, num):
print(‘run ‘*num)person = Person(‘Tom’)
person.say_something()
“`“`:実行結果
I am Tom. Hello
run run run
“`
ASCIIコード(ABC146B)
# ASCIIコードのPythonでの扱い方
今回はPyhtonでASCIIコードを扱う方法を、ABC146Bを使って説明していきます。UTFには触れていませんので、機会があれば別記事を書きたいと思います。
[問題はこちら](https://atcoder.jp/contests/abc146/tasks/abc146_b)## 問題を解く前に
Pyhtonで
– 文字→ASCIIコード
– ASCIIコード→文字
への変換方法を紹介します。“`python
#文字→ASCIIコード
AsciiCode = ord(‘A’)
print(AsciiCode)
#出力は65
“`“`python
#ASCIIコード→文字
character = chr(65)
print(character)
#出力はA
“`組み込み関数である**ord()**と**chr()**だけ知っていれば事前知識は十分です。あと、$A$のASCIIコードは$65$、$Z$のASCIIコードは$90$であること、またASCIIコード$91$は$a$であることを知っておくとよいと思います
Django 3.0.2 models.pyをモデルクラス毎にファイル分割する
startappコマンドで初期に作成されるmodels.pyをモデルのクラス毎にファイル分割する。
前回やったときと\_\_init\_\_.pyが違ったような感じがしたのでメモ (気のせいかもしれない)#バージョン
Python 3.7.6
Django 3.0.2#手順
1.startappコマンドで作成したディレクトリ内にmodelsディレクトリを作成する。
2.作成したmodelsディレクトリ内に\_\_init\_\_.pyを作成する。“`models/__init__.py
# from topic で読み込めていたはず、.topicに変更して.を明示しないとダメ
from .topic import Topic
# from アプリ名.models.topic import Topic (こっちも可)
“`3.作成したmodelsディレクトリ内にモデル名.pyを作成する。
“`models/topic.py
# こっちは普段通りなので適当
from django.db import modelsclass Topic(models.Model)
Coral USB TPU Accelerator(EdgeTPU)をWindows端末で使う
## 【内容】
過去に[Windowsで擬似的にEdgeTPUを使う記事](https://qiita.com/rhene/items/e7574715844784b86a15)を投稿しましたが、Coralの公式のEdgeTPUの導入手順にWindows版が追加されていたので試してみました。
下記の公式手順を踏襲していますが、一部そのままでは実行できないので手を入れています。[【Get started with the USB Accelerator On Windows – Coral】](https://coral.ai/docs/accelerator/get-started#on-windows)
## 【Requirements】
– Windows10 64bit
– python3.7 + pip
– git コマンド## 【必要モジュールのダウンロード & インストール】
公式手順に従い以下のURLよりダウンロードします。
[【 download edgetpu_runtime_20200128.zip – Coral】](https://dl.googl
AWS Cloud9上でFlaskの設定から公開まで
# 1.はじめに
AWS Cloud9上でFlaskを走らせるための備忘録です。# 2.Cloud9の起動
Cloud9を起動し、「Create enviroment」
![c91.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260594/239956ff-0296-6191-3306-6f71237a8968.png)Configure settings で環境設定を行います。
![c92.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260594/db466f8e-540b-5140-a1bd-a9129d6ce60a.png)Cost-saving settingは標準のままだと30分で強制的に終了しますので、「Never」に設定します。
後から設定変更可能です。(AWS Cloud9→Preferences→EC2 Instance)
(当初これを知らずに、勝手にflaskが停止する理由がわからなっ
二次元配列からキーごとの最大値を取り出す
よくある話だとは思うのですが二次元配列
“`python
A = [
[‘001’, ‘1’],
[‘001’, ‘2’],
[‘002’, ‘1’],
[‘002’, ‘3’],
[‘001’, ‘3’],
[‘002’, ‘2’],
[‘002’, ‘4’]
]
“`こういうものから各要素の`[0]`をキーとして、キーごとの`[1]`の最大値を求めたい場合のロジックを考えます。
上記の場合だと、`[[‘001’, ‘3’], [‘002’, ‘4’]]`が導き出したい答えです。“`python
# 二次元配列[[key, value], [key, value], …]
input_list = [
[‘001’, ‘1’],
[‘001’, ‘2’],
[‘002’, ‘1’],
[‘002’, ‘3’],
[‘001’, ‘3’],
[‘002’, ‘2’],
[‘002’, ‘4’]
]# 各要素のkeyを取得して重複削除
keys = l
GeoPandasのインストールに失敗した場合の対処法(Fiona/GDALのエラー ※Rtreeのインストール方法も追記)
Pythonの環境によっては、pipを用いたGeoPandasのインストールに失敗するみたいです。
私は失敗しました。
というわけで、解決策を記録しておきます。
(この記事では、GeoPandasのインストール中に”Fiona”関連のエラーが生じた場合の対処法について述べています。)## Python環境
今回の手順では、Python 3.7.5を使用しています。基本的に3.7系なら動きますので、Pythonのインストールがまだの場合は、こちらからインストールしてください。
https://www.python.org/downloads/release/python-375/※別の系のPythonでも、多分、インストールに用いるファイル名の「37」という部分をバージョンに合わせて変更すればOKだと思います。
また、同時にpipのインストールもお願いします。
https://qiita.com/suzuki_y/items/3261ffa9b67410803443## GeoPandasのインストールに必要なもの
このページを見ているということは、一度GeoPandasの
HomebrewでPythonを2系から3系に切り替える
Python2のサポートが終了したので、3系をメインに切り替えしようと思った。
後、3系のこのプログラムが使いたくなったので
[zTrix/webpage2html](https://github.com/zTrix/webpage2html)
2系が必要になったら後で切り替えられるようにしたい(pyenvとか使えばいいのかな)
## 設定方法
`brew install python3 `でpython3をインストール
“`
~ brew install python3 2065ms Fri Jan 31 07:51:57 2020
Updating Homebrew…
==> Downloading https://homebrew.bintray.com/bottles/python-3.7.6_1.mojave.bottle.tar.gz
Already downloaded: /U
[Python3 入門 19日目]8章 データの行き先(8.4〜8.5)
#8.4 NoSQLデータストア
– 非常に大きなデータセットの処理、柔軟なデータ定義、カスタムデータ処理のサポートなどを目的として作られている。
##8.4.1 dbmファミリ
– dbm形式はキーバリューストア(複数のキーと値の組)
– dbmデータストアの性質
– キーに値を代入でき、代入された値は自動でディスク上のDBに保存される。
– キーから値を取得できる。“`py
#”c”モードは読み書き両用
>>> db=dbm.open(“definitions”,”c”)
#辞書と同じようにキーに値を代入。
>>> db[“mustard”]=”yellow”
>>> db[“ketchup”]=”red”
>>> db[“pesto”]=”green”
>>> db.close
>>> db.close()
#書き直したものが実際に保存されているかどうか確認。
>>> db=dbm.open(“definitions”,”r”)
#キーと値はbyt
Atcoder AGC019 A – Ice Tea Store 別解集
twitterでみた解法で解いたりしてみます
#貪欲法
“`python:greedy.py# coding: utf-8
# Your code here!
Q,H,S,D=map(int,input().split())
N=int(input())n=N//2*2#偶数部分はここで処理
ans=min(Q*4*n,H*2*n,S*n,D*n//2)#コスパいいやつで殴るif N%2==1:
ans+=min(Q*4,H*2,S)print(ans)
“`
#全探索
“`python:all_search.py
# coding: utf-8
# Your code here!
Q,H,S,D=map(int,input().split())
N=int(input())cost=[Q,H,S,D]
#難しくなっちゃった
#4*3=12通り
ans=10**18
for index,item in enumerate(cost):#メインアタッカーを選ぶ
temp=item*(N*2**(2-index) if index!