2016-01-01から1年間の記事一覧

multiset, multimapを使うにはset, mapをinclude

C++

しょうもないネタですが他にもハマる人がいるかもしれないので記事にします。C++11から導入されたstd::multiset, std::multimapを使おうと以下のコードを書きました。 #include <multiset> #include <multimap> しかしg++で以下のエラーが出ます。 致命的エラー: multimap: No su</multimap></multiset>…

cygwinで日本語を含むutf-8ファイルをクリップボードにコピーする方法

cygwinで日本語を含むutf-8ファイル(例えばaaa.txt)をクリップボードにコピーするには以下のコマンドを使います。 $ cat aaa.txt > /dev/clipboard 以下のコマンドだと文字化けしてしまうようです。 $ clip < aaa.txt 参考URL cygwin command to copy to w…

Python 3で絵文字を羅列する

Python3を使って、Unicodeに登録された絵文字を羅列して遊んでみました。この記事ではPython 3でのみ動作確認をしています。 コードポイントから文字への変換 Pythonの組み込み関数であるchr()を使うと、Unicodeのコードポイント(日本語では符号点)から文…

Pythonの例外処理に関するまとめ

適当に書いてしまいがちな例外処理について自分なりにまとめました。 Pythonにおける例外 Pythonでは「認可をとるより許しを請う方が容易 (easier to ask for forgiveness than permission)」、略してEAFPというコーディングスタイルが推奨されています。EAF…

Pythonのvars()とdir()の違い

よくどっちがどっちだったか混乱してしまうので自分用にまとめます。最初に、引数にオブジェクトを渡して呼び出したときの挙動を比較したのち、引数なしで呼び出したときの挙動を比較します。 vars(obj) 2. 組み込み関数 — Python 3.5.2 ドキュメントによる…

PyCharmでエディタの文字サイズをCtrl + マウスホイールで変更可能にする

表題のようにする方法が PyCharm 2016.1 Help :: Zooming in the Editor にあります。 File -> Settings...と辿ってウィンドウを開いた後、左側のペインでEditor -> Generalと辿り、"Change font size (Zoom) with Ctrl+MouseWheel"にチェックを付ければOKで…

pythonでwithによるネストを防ぐ

Pythonではファイルを開くときなどにwithを使うのが定石である(参考:ファイル - Dive Into Python 3 日本語版)。しかし、複数のファイルを開くときには以下のようにネストが発生してしまうのが気に入らなかった。 with open('a.txt', 'w') as f1: with op…

O'Reillyで買ったebooksをKindleで読む

現在O'ReillyでEbookがすべて半額セール中 (Ebooks - O'Reilly Media)なのを利用して、C in a Nutshell, 2nd Edition - O'Reilly Mediaを買ってみました。いつも購入したEbookをスマホで読めるようにする方法を忘れてしまうので、簡単にメモします。 管理画…

ピタゴラス数を無限に生成する

先日久しぶりに参加したCodeforces Round #368 (Div. 2) - Codeforcesの C. Pythagorean Triples が面白かったのでご紹介します。 問題 「正の整数aが与えられる。三平方の定理 a2 + b2 = c2 を満たす残りの 正の整数b, cの組を一組答えよ。そのようなb, cの…

PyInstallerでPythonスクリプトをexe化

PythonスクリプトをWindowsのexeにする方法 (調査中) - minus9d's diary にて、Python 3.5のスクリプトをWindowsのexe化するにはPyInstallerが良さそうだという記事を書きました。この記事ではPyInstallerを使ってexe化する方法について調査した結果を記しま…

PythonスクリプトをWindowsのexeにする方法 (調査中)

表題の方法について調べてみました。Python 3.5で動かすことが目標なのですが、ハマっていてまだ動いていません。以下、調査した内容のメモです。 py2exeを使う方法 py2exeは、Python 2系とPython 3系とで配布場所が異なります。 Python 2系の場合、py2exe d…

Python3では変数名に日本語が使える

Fluent Python - O'Reilly Mediaを読んでてびっくりしたのでメモ。Python 3では変数名にアスキー文字以外も使えます。例えば # -*- coding: utf-8 -*- def 階乗(整数): if 整数 <= 0: return 1 else: return 整数 * 階乗(整数-1) print(階乗(5)) は問題なく…

matplotlibで軸の値が小数になったりオフセット表現になったりするのを止める方法

問題 pythonのmatplotlibで、年ごとの値の変化を表す折れ線グラフを書こうとして以下のコードを書きました。 import numpy as np import matplotlib.pyplot as plt x = np.array([2006, 2007, 2008]) y = np.array([35.2, 27.4, 41.2]) plt.plot(x, y) plt.s…

matplotlibをオブジェクト指向スタイルで使う その2

前にmatplotlibをオブジェクト指向スタイルで使う - minus9d's diaryという記事を書きました。しかし、matplotlib によるデータ可視化の方法 (1) - Qiita および Why do many examples use "fig, ax = plt.subplots()" in Matplotlib/pyplot/python - Stack …

pythonでcsvを読む方法 - 標準ライブラリ, pandas, numpy

pythonでcsvを読み込む方法についてまとめました。ライブラリによって微妙に読み込み方が異なるので大変です。 この記事では、以下のdata.csvを読み込む場合を考えます。最初の行がヘッダ行で、それ以降の行がデータ行です。 a,b,c 2,5.6,1 1,7.0,0 3,6.2,1 …

Emacsに入ってる人工無脳ELIZAと対話する

AlphaGo | Google DeepMindと人類の戦いが最高潮なのにかこつけて、人工知能ネタを紹介します。 EmacsにELIZA(イライザ)と呼ばれる、簡素な対話プログラムが入っているのはご存知でしょうか? ELIZAはJoseph Weizenbaumによって1964から1966年に書かれたプ…

2016年センター試験英語(筆記)を解く

英語力の定点観測のために、今年のセンター試験英語(筆記)を解いてみました。結果からいうと183点で、期待よりも低い値でした。 以下、間違えた部分を中心としたメモです。ネタバレしてます。 第1問 B-3. charity, continent, demonstrate, opponentでアク…

Anacondaのcondaコマンドによる仮想環境の使い方のまとめ

Pythonパッケージ集として人気のあるAnacondaに付属するcondaコマンドを使って、クリーンなPython環境を作ったり破棄したりする方法についてまとめました。 環境を作る myenvという名前のpython環境を作ってみましょう。 $ conda create --name myenv python…

VirtualBOX + Ubuntuの環境構築メモ

Windows 10 + VirtualBOX + Ubuntuを動かすときのメモです。適宜更新します。 Ubuntuの仮想イメージを取得 Ubuntuの入手 | Ubuntu Japanese Teamから「日本語 Remix 仮想ハードディスクイメージのダウンロード 」をクリックして「Ubuntu 14.04 LTS」を入手し…

C言語でOpaqueポインタを使って構造体のメンバを隠蔽する

C

C言語で、自作の構造体のメンバをユーザに開示しないテクニックとして、Opaqueポインタというものが知られています。今回は、書籍「C++のためのAPIデザイン」の3.1.6節を参考に、Opaqueポインタを使う簡単なサンプルを紹介します。 Opaqueポインタを使わない…