Python

PyQt5をcx_Freezeでexe化@Windows

生成したexeファイルを実行すると、qwindows.dllのロードに失敗した的なメッセージが出る。 buildディレクトリ直下にlibEGL.dllをコピーするととりあえず動作する。http://qt-project.org/forums/viewthread/21269要するにplatformsをコピーするためのPyQt5…

さくら

# passwd #ルートのパスワード変更 # useradd [ユーザ名] # passwd [ユーザ名] # usermod -G wheel [ユーザ名] #ユーザ名をwheelグループに追加 # visudo #作業ユーザがsudoを実行できるようにする %wheel ALL=(ALL) ALL #コメントアウトを外す # vi /etc/p…

怪奇wxGrid

wx.Gridでハマった。 以下のソースは、ぱっと見だと問題ないように見える。testWxGrid.py # -*- coding: utf-8 -*- import wx from wx import xrc class testWxGrid(wx.Dialog): def __init__(self, parent): self.res= xrc.XmlResource( "testWxGrid.xrc" )…

enumerate

>>> def _treatment(pos,element): return '%d:%s' % (pos, element) >>> [_treatment(i, el) for i, el in enumerate([chr(x) for x in xrange(65,91)])] ['0:A', '1:B', '2:C', '3:D', '4:E', '5:F', '6:G', '7:H', '8:I', '9:J', '10:K', '11:L', '12:M',…

1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か?

http://projecteuler.net/index.php?section=problems&id=26 問題。 1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か? 結構悩んだ。下参照。 http://ja.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E5%B0%8F%E6%95%B0 素数の倍数同士は…

桁数1000になる最小のフィボナッチ数は何番目

http://projecteuler.net/index.php?section=problems&id=25 問題。 桁数1000になる最小のフィボナッチ数は何番目。 普通に再帰だと遅かったので、辞書を使う。 # -*- coding:utf-8 -*- fib = {1:1,2:1} def Fibonacci(n): if n in fib.keys(): return fib[n…

20世紀に、月始めである日曜日は何日あるか?

http://projecteuler.net/index.php?section=problems&id=19 問題。 20世紀に、月始めである日曜日は何日あるか? # -*- coding:utf-8 -*- import datetime sum = 0 for y in xrange(1901,2001): for m in xrange(1,13): if datetime.date(y, m ,1).weekday(…

iniファイルをpythonで読む。

ConfigParserというモジュールを使う。 http://www.python.jp/doc/2.5/lib/module-ConfigParser.html test.ini [GENERAL] dataType = A1 [METHOD] lstData=PutDatatest.py # -*- coding:utf-8 -*- import ConfigParser config = ConfigParser.RawConfigParse…

経路上の数字の和の最大値

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2018 本家がエラーってたので日本語訳のwikiから。 問題。 数字を山形に並べて山頂から麓まで降りるとき、経路上の数字の和は最大いくつか? 麓から辿っていくのが簡単に思えた。 下…

碁盤目状路の経路数探索

http://projecteuler.net/index.php?section=problems&id=15 誰もが一度は見たであろう問題。さすがに20*20を手計算で解いた経験はありません。 問題が簡単な分、コードに凝ってみる。再帰+キャッシュ # -*- coding:utf-8 -*- cache = {1:1} def chain(n): i…

ついでに

http://projecteuler.net/index.php?section=problems&id=13 問題。 50桁*100個の整数の総和の頭10桁を求めよ。 # -*- coding:utf-8 -*- s = """37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74…

三角数の約数の総数

http://projecteuler.net/index.php?section=problems&id=12 問題。 約数の総数が500を超える三角数で最小のものを求めよ。結構手こずった。力技のコードだと計算が終わらなかったので。 約数の総数の導出をいじったら大分現実的な速さになったので、これで…

最大公約数

def Gcd(a,b): return b and Gcd(b, a % b) or a

素数判別

def ChkPn(n): i = 2 while i*i <= n: if n%i == 0: return False i += 1 return True

清一色テンパイを調べるプログラム

作ってみた。シンプルに行こう行こうとしたら、結構キモイ。3時間ギリギリだったし。 # -*- coding:utf-8 -*- import sys mentul =['111', '222', '333', '444', '555', '666', '777', '888', '999', '123', '234', '345', '456', '567', '678', '789'] ans …

排他処理デコレータ

ついでに排他処理やってくれるデコレータも作った。 てか検索すると同じようなデコレータの例がたくさん。 Synchronized.py # -*- coding:utf-8 -*- from threading import Lock lock = Lock() def Synchronized(): def decorator(srcfunc): def dstfunc(*ar…

スライスあれこれ

クックブックの最初の章にのってた文字列スライス まず基本 >>> string = "1234567890" >>> string[:] '1234567890' >>> string[:1] '1' >>> string[:5] '12345' >>> string[:-1] '123456789' >>> string[2:5] '345' >>> string[2:-3] '23456'次 >>> string[…

setdefault, get

>>> d = {1:"a",2:"b"} >>> print d.get(1) a >>> print d.get(3) None >>> print d.setdefault(2,"c") b >>> print d.setdefault(4,"d") d便利っぽい。

メール送信

#! usr/bin/env python # -*- coding:utf-8 -*- import smtplib from email.MIMEText import MIMEText from email.Header import Header def editMail(): addrTo = raw_input("To:") subject = raw_input("Subject:") body = raw_input("Body:") return addr…

文字列置換に辞書を使う

>>> kenpo = {'1' : '天皇は、日本国の象徴であり日本国民統合の象徴であつて、この地位は、主権の存する日本国民の総意に基く。', '2':'皇位は、世襲のものであつて、国会の議決した皇室典範の定めるところにより、これを 継承する。'} >>> print kenpo["1"…

Google Python スタイルガイドを読む

http://works.surgo.jp/translation/pyguide.html まだ途中までだけど。 以下知らなかったことその一。辞書・配列 >>> dict ={'a':1,'b':2,'c':3} >>> list = [1,2,3,4,5] >>> for key in dict: print key a c b >>> for value in dict: print value a c b >…

Python クラスあれこれ

>>> class TestClass: def Func1(self): print "TestClass.Func1" >>> ClassCopy = TestClass >>> ClassCopy().Func1() TestClass.Func1 >>> Instance = TestClass() >>> Instance.Func1() TestClass.Func1 >>> Instance2 = TestClass().Func1() TestClass.F…

pythonクラス名取得

>>> class TestClass: pass >>> a = TestClass() >>> a.__class__.__name__ 'TestClass' >>> a = TestClass >>> a.__name__ 'TestClass'