Python3 超入門(5):ファイルの処理

前回の投稿「Python3 超入門(4):条件分岐(if文),標準入力」の最後に次のようなことを書きました.

さて,私はといいますと,今後は「超入門」ではなく「入門」というシリーズ(?)で,pythonの基本的の使い方のメモを書いていきたいと思います.内容は言語処理100本ノック 2015の2章からの内容をやろうかなと思っています.

ということで,言語処理100本ノック 2015の2章を空き時間でぼちぼち進めてたのですが,前回までの投稿ではまだ基礎的な内容を伝えきれていないと考えたので,もう少しだけ「超入門シリーズ」を続けさせていただきます.




続きを読む

Kivy 超入門(5):ボタン,ラベルの設定,動的配置

前回の投稿までラベルとボタンを扱えるようになり,それらの書式(?)の設定方法などを学びました.今回はそれらの配置についてほんの少しだけ深く学びます.前回のボタンの配置の指定方法は座標をピクセル単位で指定していましたが,これはあまり賢明な設定方法ではないです.画面の大きさが一定の場合は問題なのですが,デバイスが変わり画面の大きさが変わってしまうとレイアウトが崩れる可能性があります.そのような問題に対処する「動的配置」というもの初歩をこの投稿で学びます.




続きを読む

Python で10進数とn進数の変換

int型の変数をn進数表示する必要があったので,その時いろいろ調べたメモです.関数の形で使えるようになっています.




続きを読む

Adsense(主に審査当たり) 批判

推敲ゼロの殴り書きなのに投稿する,この図太さ.殴り書きなだけに,ほかの投稿とは違って口調が雑(丁寧語ですらない).

前書き(注意):読み飛ばしOK

タイトル詐欺

「Adsense 批判」と書いたが,そんな大げさなことできない.「ブログを書いていて,Google アナリティクスを見てみたり,アドセンスの審査のことを調べて思ったことを,巷(ネット)で言われていることと比べて自分の意見を書き殴る」だけの記事です.勘のいい方は,その内容って Adsense を批判するっていうこととは少しずれてるじゃんと気づいたでしょう.うん,そうだよ.でも,こうタイトルつけるとなんかためになる内容あるんじゃないかと考えてくれるかと思って.タイトル詐欺と言われてもしょうがない.いいじゃん,書きたいこと書いて.




続きを読む

Numpy で行列を対角化する際の精度

要点だけまとめると,

  1. ユーザーが numpy.linalg.eig の精度を調整するのは難しそう
  2. 自分の問題の場合は「行列サイズが大きいくても,扱っている行列がエルミート行列なら,eig でなく eigh を使えば精度良く求まるよ」ということで解決できた

となります.

np.linalg.eig を使った際の精度の問題点

行列の対角化を使っていろんなことをやっている最中に遭遇した問題だが,行列の大きさが16X16ぐらいになったときに numpy.linalg.eig で対角化した際に,固有値と固有ベクトルの精度が悪くなるのが確認された.

解決策の模索

何とか解決しようと,numpy.lialg.eig がどのような仕組みで対角化していて誤差が生じたのか原因を特定しようと思った.




続きを読む

Python の Tips(1)

偉そうに”Tips”とか書いていますが,ただ自分がつまづいたところのメモ.ブログってそんなもんじゃないの…




続きを読む

Kivy 超入門(4):ボタンを作成する,ウィジェットの作成

忙しくて少し時間があいてしまいましたが,前回に引き続き Kivy のチュートリアルを載せていきたいと思います.これまで習った内容は次に書いてある投稿達になります.

Kivy 超入門(1):インストールからHello, World! まで
Kivy 超入門(2):ウィンドウのレイアウト,入力フォーム
Kivy 超入門(3):レイアウトを簡単に調整する(kvファイル)

これまでは主に Label という機能を使い文字を表示することをメインとしてきました.これはただ文字を表示するだけの機能でしたね.しかし,これまでの知識だけを用いて作れるアプリは,ただ与えられた文字を表示するだけのものになります.これでは GUI アプリを作成したいというのに,ただの連絡帳しか作れません...ということで今回は,タイトルにあるとおり,クリックできるボタンを作ってみましょう.ちなみに,今までは Label, TextInputの2つのウィジェットを使えるようになったので,これで3つ目ですね.

注意していただきたいのは,「ボタンを作成する」ことがこの投稿での目標でして,「ボタンを押すと,コレコレこういうことをできるようにする」ではないです.ボタンを押したときの操作(反応)の設定はもっとのちほどになるので,悪しからず...「その機能が知りたいんだが」という方は,こちらのYoutubeへのリンクに進んでいただくと「ボタンを押すと画面を切り替える」という機能を作ることをしていますので,見ていただくとよろしいかと思います.あくまでも自分はこのシリーズでチュートリアル的に順番にやっているので,このような内容を先取りすることはせずに進めていこうと思います.




続きを読む

Kivy 超入門(3):レイアウトを簡単に調整する(kvファイル)

前回までの投稿でお分かりかと思いますが,純粋なpythonの指示だけでkivyのクラスを使いこなすことになると,アプリを作成した際に大きいシステムになるととてもpythonプログラムになってしまいます.これの問題を解消してくれるのが kv ファイルです.どんな仕組みかを大雑把に説明すると,pythonのプログラムファイルのほかにkvファイルというものを(シンプルに)書き,そのkvファイルをpythonから読みむという形になります.

もちろんPythonのプログラムの中でkivyのクラスを使いこなしてプログラムしてもよいのですが,どういうやり方でやるかは状況,環境,個人の哲学などにに強く依存するので,kivyを学ぶ際に知っておいて損はないと思います.実際に書いてみると,同じプログラムでもわかりやすく書けます.

ということで,今回は kvファイルを用いて,Hello, World! を表示させるプログラムを作ってみます.Hellow World! が不安な方は筆者の書いた「Kivy 超入門(1):インストールからHello, World! まで」をまずは見てください(ステマといいたいが,「ステマと言いたいが」と書いたことでもはやステマではない.めでたしめでたし).




続きを読む

Kivy 超入門(2):ウィンドウのレイアウト,入力フォーム

前回に引き続き,Harrison Kinsley さんのkivyの解説を日本語の文章にして,補足を加えながら説明していきたいと思います.今回はウィジェットとラベル,という内容でして,最終的にはログイン画面をつくることが目標です.ログインシステムでなくログイン画面です.その際にレイアウトと入力フォームというGUIアプリの必須知識を身に着けれます.

前もって気づいておけばよかったこととして,kivy をスムーズに理解するためには「クラスの継承」という知識を理解しているととてもスムーズになるのかと思います.筆者はクラスの継承をそこまで活用したことがなかったのですが,今回の投稿を書きながら勉強させていただきました.なので,クラスの継承の部分の説明が”弱い”かと思われますが,ご了承いただきたいです...




続きを読む