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

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

Python3 を子供に教えるためにオセロを作ってみた(5)

# オセロクラスについて解説していきましょう その2

## 型について話しましょう
 血液型ってありますよね?A型、B型、O型、AB型・・・と本当かどうかはさておいて「几帳面なA型」「自分勝手なB型」みたいな感じで型にはその型なりの特徴があります。プログラミングでは型というのは血液型のように重要な区分けをするために使われます。

 今まで**変数**について色々説明してきましたが、敢えて型について触れてきませんでした。配列は list() というクラスだと説明しましたし、ディクショナリ変数も dict() というクラスです。プログラムで言うデータ型は血液型同様、そのデータの性質を表すものです。

|データ型の名前 |データ型|記述|
|:—:|:—:|:—|
|文字列|str| “文字” または ‘文字’|
|整数|int| +-数値|
|浮動小数|float|+-浮動小数|
|虚数|complex|+-実数部+-虚数部j|
|真偽|bool| True または False|
|日付時刻|datetime|日付と時刻|
|リスト(配列)|list|データ型を問わない配列|

元記事を表示

Pandas覚書 自分用

複数データフレームを1つのExcelファイルにまとめて出力。`index`で行名を、`header`で列名を無視する。

“`python
writer = pd.ExcelWriter(“data.xlsx”, engine=’xlsxwriter’)
df1.to_excel(writer, sheet_name = “sheet1”, index=False, header=False)
df2.to_excel(writer, sheet_name = “sheet2”, index=False, header=False)
writer.save()
“`

元記事を表示

Windows10でwxpython使ったらdatetime.datetime.strptimeで「ValueError: unknown locale: ja-JP」

wxpython使ってWindows向けGUIを作ってみていたのですが、
「application = wx.App()」とした後に
「datetime.datetime.strptime(’20/Aug/2020:17:28:00′, ‘%d/%b/%Y:%H:%M:%S’).strftime(‘%Y/%m/%d %H:%M:%S’)」としたら
「ValueError: unknown locale: ja-JP」となってしまいました。

デバッグで追っていったところwx.App()をするとイニシャル処理で「InitLocale()」が実行されて
「self._initial_locale = wx.Locale(wx.LANGUAGE_DEFAULT)」
と処理されて実行OSのlocaleが設定されるようなのですが・・・
https://docs.wxpython.org/wx.Language.enumeration.html
それが「ja\_JP」となるようです。

「ja_JP.UTF8」とかじゃなくて「ja_JP」です。

localeに「ja_JP」が設定されている状態で

元記事を表示

値を入れるだけで行列をTeXの形式で出力して計算もしてほしい!!

# TeXめんどい
大学に入ってから初めてTeXというものをつかった.便利で大変良い.まだB1なので行列計算とかもまだ簡単.でも手書きでレポート出すなら簡単で,ぱっとやって提出できるけど,TeXだとそうは行かない.紙に計算して,TeXの形式に打ち込んでとまあまあめんどくさい.慣れてないし,補助ツールがぐぐってもみつからない.TeXの形式で渡したら自動で計算してくれるところとかさがしたけどあんまりしっくりこない.

# つくった
ということで行列を入力したら計算してくれるやつを作った.

“`python

import numpy as np

# tex
def tex_text(A):
A_mat = “”
for l in A:
l_tex = “”
for r in l:
l_tex += str(r)
l_tex += “&”
l_tex = l_tex[:-1] + r”\\”
A_mat += l_tex
A_mat = r”””\le

元記事を表示

WindowsのVSCodeでPythonのIntelliSenseが表示されないときの対処法

最近のエディタでやっぱり優秀なのはIntelliSens(Autocomplete)だと思う。入力の手間が省けるだけじゃなくて、引数の形とかも出してくれるし、ちょっとしたドキュメントもついてるからめっちゃ有能。

でも、VSCodeを使ってPythonの開発をしていて、“`opencv-python“`, “`numpy“`, “`scipy“`, “`pandas“` などの巨大なライブラリではIntelliSenseが出てこなかったので、色々調べて直した方法をメモ。ただ、あんまり情報がなかったので、これで全員が解決するかはわからない()

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628276/23a18141-e571-309e-dfa0-d7dd697208f4.png)

## 環境
– OS : Windows 10 Home
– VSCode : 1.45.1
– Python : 3.8.3

**Anaconda経由ではなく、Pythonを直接イン

元記事を表示

ゼロから始めるLeetCode Day37「105. Construct Binary Tree from Preorder and Inorder Traversal」

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

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

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

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

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

前回
[ゼロから始めるLeetCode Day36「155. Min Stack」](https://qiita.com/KueharX/items/e0fe029974c5e26a0b4f)

今はTop 100 Liked QuestionsのMediumを解いています。
Easy

元記事を表示

Pythonでドラクエのポーカーを実装してみた

# はじめに

今回は[前の記事](https://qiita.com/p-t-a-p-1/items/ef34310e5a58fce8d217)にある山札を利用してドラクエのポーカーを実装してみたいと思います。

通常のポーカーは基本的にplayer同士で行われますが、

* player同士のリアルタイム対戦機能が大変
* ブラフ(はったり)が一切なくなる
* 強いカードと思わせ、相手を降ろして勝つ
* 弱いカードと思わせ、相手により多くのお金を賭けさせる

こういった理由からplayer同士のポーカーではなく、
ドラクエのポーカーのような一人用のゲームを実装していこうと思います。

## ゲームの流れ

ポーカーで役を作る → ダブルアップゲームでスコアを倍にしていく
というのが基本的な流れです。

## 機能要件

### 基本

* デッキはポーカー、ダブルアップゲーム共に毎回リセット
* プレイヤーの初期スコアは0
* ポーカー終了後、1ペア以上の役があればダブルアップゲームスタート
* ジョーカーはなし

### ポーカー

1. 5枚のカードが配られる

元記事を表示

anacondaなしでVSCodeとSpyderを使いたい!!!

anacondaを使わず、初心者の頃から慣れ親しんだSpyderを使いたい。その備忘録です
これでSpyder 5.0.0.dev0(Python 3.8.2)が使えます。
テスト環境(前提として入っているもの)
Windows 10(64bit)
version:1909
OS build:18363.836

VisualStudioCode
version:1.45.1

Python 3.8.2
*****
https://github.com/spyder-ide/spyder
zipを任意の場所に解凍するかcloneします

必要なモジュールをインストールしていきます。自環境での必要だったものを纏めました。

“`requirements.txt
PyQt5
qtpy
chardet
atomicwrites
psutil
zmq
pickleshare
qtawesome
pygments
qtconsole
docutils
jinja2
sphinx
qdarkstyle
diff_match_patch
intervaltree
cloudpickle
wa

元記事を表示

3D U-Net Convolution Neural Network with Keras で躓いたとこ

Kelasで3D U-Net ([3DUnetCNN](https://github.com/ellisdg/3DUnetCNN))を試してみようと思い、githubに示されているのデータセットと一緒にダウンロードした。
途中、`ANTs`の`N4BiasFieldCorrection`をダウンロードしてインストールしろとあるが、[Anacondaのconda](https://anaconda.org/Aramislab/ants)を使って入れた。

## ひとつめの躓き
指示の通りサブディレクトリの `brats` で `python`から
`from preprocess import convert_brats_data`

と打ったら
>AttributeError: module ‘keras.backend’ has no attribute ‘set_image_dim_ordering’

と言われてしまう。
ググると、どうやら最近の`keras.backend`には`set_image_dim_ordering`が無いらしく、代わりに`keras.backend.c

元記事を表示

ABC167C問題

#ABC167 C問題(bit全探索)
自分が書ける内容は他の人が既に書いているので自分の復習として投稿しています.
https://atcoder.jp/contests/abc167/tasks/abc167_c
##考えたこと
N,Mの制約が「1<=N,M<=12」と非常に厳しい. 選択肢が「買う」or「買わない」という二択なので調べながらbit全探索というものを試みた. ##実装 ```python n, m, x=map(int, input().split()) book=[list(map(int, input().split())) for i in range(n)]###参考書の情報を受け取る. costs=[] for i in range(2**n): t=[0]*m###m種類について「買う」or「買わない」の選択肢がある. cost=0 for j in range(n): if ((i>>j)&1)==1:###「1」→「買う」として買った参考書で各理解度が上昇!.
for k i

元記事を表示

pytorchのtorch.utils.data.DataLoaderは無限イテレータに対応していない

表題の通り、pytorchのtorch.utils.data.DataLoaderは無限イテレータに対応していない。以下でそれを確かめる。

“`python
import torch.utils.data

def data_generator():
while True:
yield torch.Tensor([1,2,3])

dataloader = torch.utils.data.DataLoader(my_data, batch_size=2)

for i, z in enumerate(dataloader):
print(z)
if i > 10:
break
“`

上のコードを実行すると次のようになる。

“`bash
TypeError: object of type ‘generator’ has no len()
“`

`len()`を持っていないとダメみたいです。動きませんね。

元記事を表示

sqlite3.OperationalErrorが出た

#エラー内容
sqlite3.OperationalError: no such table: (テーブル名)themes
スクリーンショット 2020-05-26 14.27.03.png

File “/Users/mio/shiritori-5-21/app.py”, line 92, in remind
Open an interactive python shell in this frame

“`
c.execute(“select theme from themes where id = ?”, (theme_id,))
“`

#誤字確認せよ!
最初にいうと、私のエラーは誤字が原因でした。

テーブル名`from themes`
だけでなく
データベース接続のdb名`conn = sqlit

元記事を表示

数値に対応するひらがなの言葉を辞書からリストアップするコード

与えられた数値に対応するひらがなの言葉を辞書からリストアップするコードを書いてみました。
日本語の辞書は、ひらがなで、\nで区切られた辞書ならばよいです。
関連:Qiita:かなを数値に換算して和を求めるコード
文字の合計の求め方は、shiracamusさんのコードを参考にしました。

“`kl.py
#!/usr/bin/python3
import sys
table = “ あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろわゐうゑをん@@@@がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽっゃゅょー”

v=int(sys.argv[1])
words = [ x for x in open(“jm.txt”) ]
for a in words:
total = sum(table.index(kana) for kana in a if kana in table)
if total

元記事を表示

Flask(v1.1.x)+SQLAlchemyでのdb.create_all()ができない

## 概要
Flask(v1.1.x)のチュートリアルを大体やった後、以下の記事を参考にFlask(v1.1.x)+SQLAlchemyでWebアプリを開発途中、

“`
python
>>> from app import db
>>> db.create_al()
“`

でdbがインストールできず、その次のdb.create_all()もできませんでした。。。(記事自体は非常に丁寧でとても参考になりました。)
調べたけどもFlaskのバージョン1.1.xに対応した記事は特になかったので同じような人がいた場合の参考にまとめます。

参考記事
> [FlaskとPostgreSQLでウェブアプリを作ってHerokuで無料で運用する – Qiita](https://qiita.com/croquette0212/items/9b4dc5377e7d6f292671)

## 環境
* OS : MaxOS Catalina version 10.15.1
* Python : 3.7.7
* Flask==1.1.2
* Flask-SQLAlchemy==2.4.1

#

元記事を表示

かなを数値に換算して和を求めるコード

ひらがなを引数にとり、数値に換算して和を求めるコードを示します。
かな数値対応は、以下の表を参考にしています。romaji-hyou

“`kanacnt.py
#!/usr/bin/python3
import sys

kana = “ あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろわゐうゑをん@@@@がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽっゃゅょー”

a = sys.argv[1]
cnt = 0
for i in range(len(a)):
if (a[i] in kana):
cnt += kana.index(a[i])
print(cnt)

“`

実行例

“`
$ ./kanacnt.py ありす
56
$ ./kanacnt.py ねこ
34
$ ./kanacnt.py ひらがな
145
“`

元記事を表示

DataLoaderからファイル名を見たい

## はじめに
PytorchのDataLoaderとても使いやすくていいですよね.個人的に分類問題をしたときに分類に失敗したファイル名を見れたら分析しやすいと思ったのでファイル名の取り出し方を備忘録として記載しておきます.

## Pathを取り出す
何ら難しいことはないですがDataloaderから直接取り出します.
PyTorchの[TRANSFER LEARNING FOR COMPUTER VISION TUTORIAL](https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html#load-data) [1]を参考にしてdataloadersを作ります.

“`python
IMAGE_SIZE=224
BATCH_SIZE=20
TRAIN = ‘train’
VAL = ‘val’
DATA_DIR = ‘H:\\dataset/predata/’ # select your dataset directory
DEVICE = torch.device(“cuda:0” if torc

元記事を表示

PythonでTAB補完したい

# Windowsの場合
mac・Linuxの方は読み飛ばしてください
TAB補完には`readline`モジュールが必要ですが、Windowsにはデフォルトでは`readline`モジュールがありません
pipで入れようとしてもだめなので、以下を実行しましょう。

“`:コマンドプロンプト
pip install pyreadline
“`

# TAB補完を有効化
Pythonのシェルを開いて、以下を貼り付けます

“`Python3
import rlcompleter
import readline
readline.parse_and_bind(‘tab: complete’)
“`
これで、TAB補完が有効になりました。

# 自動で有効化したい
Pythonは実行時に`usercustomize.py`ファイルが実行されるらしいです。
場所は以下の方法で調べられます。

“`python
import site
print(site.getusersitepackages())
“`
このディレクトリはデフォルトだと存在しないので、作成しましょう。
次に、ここ

元記事を表示

【EC2】python3の仮想環境構築と.pyファイル実行 & 対話モードに入る方法

#【EC2】python3の仮想環境構築と.pyファイル実行 & 対話モードに入る方法

###主な内容
・python3のインストール
・仮想環境用のフォルダ作成
・仮想環境の有効化
・python実行

##手順
EC2インスタンスにログインしている状態で、以下手順を実行。[(公式ページ)](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-python3-boto3/)

“`python:
#パッケージインデックスのアップデート
[ec2-user ~]$ yum check-update

#python3の有無確認
[ec2-user ~]$ yum list installed | grep -i python3

#pythonのインストール(インストールされていない場合のみ)
[ec2-user ~]$ sudo yum install python3 -y

#仮想環境の構築
[ec2-user ~]$ python3 -m venv my_app/env

#仮想環

元記事を表示

Python3 を子供に教えるためにオセロを作ってみた(4)

# オセロゲームのプログラムを解説していきましょう

## 関数について理解しよう
 プログラムでは関数はとても大切な要素です。関数というのは一連の動作を機能としてくるんだものを指します。

 例えば、「食べる」という機能には、以下のような動作が含まれています。
1. 口に入れる
2. 咀嚼する
3. 味わう
4. 飲み込む
5. (例外的に危険を感じたら吐き出すとか)

この5ステップのロジックを、何か食べるたびに書いているとコードが冗長になりますし、もしかすると「食べる」機能の中に「香りも確かめるべき」みたいな話しが出ると、全ての食べるロジックを修正して回らないとならないから大変です。ですので何回か出現するような同じコードは**関数**として定義し、食べる内容が変わる部分は**変数**として渡してあげるようにします。

 Python で関数を定義するには、以下のように記述します。パラメータとして渡す物が可変になっていれば、どんなものでも食べることができる「食べる」関数ができあがります。

“`python
def EatFood(food):
“`
 カレーを食べさせたけれ

元記事を表示

Excelでこんなことやってたよなー、をPythonに置き換える その3

今日はデータサイエンスチックな標準化。とはいうもののこれまでは単に比較しやすかったので処理してた。
エクセルではSTANDARDIZE関数でやるけど、pythonだとどうなるのか調べてみた。

## 標準化とは?
単位とか平均値の違うデータ同士を比べやすくするための処理。
値から平均を引いて標準偏差で割ると算出できます。例えば

“`
A : 60000
 平均   = 48000
 標準偏差 = 8000

B : 80000
平均   = 67000
標準偏差 = 9500
“`

みたいなとき、パッとどっちが相対的に順位高いのかわからないとき

“`
Aの標準化 = (60000 ー 48000) / 8000 = 1.5
Bの標準化 = (80000 ー 67000) / 9000 = 1.4
“`
とすると比較しやすいよねってやつです。
有名なのは、偏差値ですね。
偏差値は、元の点数を標準化して、点数(=Z値)を10倍して50足したものです。

## 標準化

“`Python
from sklearn.preprocessing import Standard

元記事を表示

OTHERカテゴリの最新記事