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

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

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 exit

N, 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):
pass

class 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 pymssql

server = ‘<サーバー名>‘
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 = name

def 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 = name

def 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%E2

Salome-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 = name

def 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 models

class 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!

元記事を表示

OTHERカテゴリの最新記事