python

Python2でCodeEvalのLost in Translation

CodeEval

Python2でCodeEvalのMinesweeper

CodeEval

ansibleでユーザー作成するときのパスワード作成

ドキュメントによると以下の通り、passwodはハッシュ化したものを指定しろとある ansible all -m user -a "name=foo password=<crypted password here>" ハッシュ化したパスワードの作り方はexamplesのuser_commads.ymlにコメントとして書いてある https://github.com/ansible/ansib</crypted>…

DjangoでFormのFieldの属性を動的に変更するとか

ModelChoiceFieldの選択肢を動的に変えたいとき、__init__でself.fieldsを参照して入れ替えることができる class SelectForm(forms.Form): item = forms.ModelChoiceField(queryset=Item.objects.none()) def __init__(self, category, *args, **kwargs): su…

djangoのmethod_decorator

今日はdjangoのmethod_decoratorを使う機会があったのでソースを読んでいた。 Django Utils | Django documentation | Django djangoのClass Based Viewにlogin_requiredやcsrf_protectなどの関数デコレータをかけるために用意しているようだ。 Introduction…

python2でCodeEvalのDATA RECOVERY

CodeEval

DjangoのFormとテンプレート描画

web開発案件では、アプリが出力する画面のイメージが顧客からhtmlで提供されることがある。一方、djangoのFormライブラリはform部品のhtmlを出力することができるが、顧客提供のhtmlと一致しないケースはよくあると思う。 こんなふうにかければ楽なんだけど…

Python2でCodeEvalのWorking Experience

CodeEval

Python2で1秒ごとのメソッド呼び出し回数を制限するデコレータ

Python2とGolangでHMAC方式のハッシュ値を生成する

HMACでハッシュ値を生成してbase64エンコードしてurlエスケープする。 amazon product apiでsignatureとして使われる値。python2 import hmac import urllib from hashlib import sha256 from base64 import b64encode key = "key" data = "data" digest = h…

UTCをフォーマット(YYYY-MM-DDThh:mm:ssZ)

python time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) golangのフォーマット指定はちょっと変わってるgolang package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() fmt.Println(now.Format("2006-01-02T15:04:05Z")) } time…

Python2で2つの日付間の月数を取得する

def diff_month(d1, d2): """ get months between two dates. >>> from datetime import date >>> diff_month(date(2012, 12, 1), date(2013, 3, 1)) 3 """ if d1 > d2: d1, d2 = d2, d1 return (d2.year - d1.year)*12 + d2.month - d1.month datetime - Be…

python2でリストをn個ずつのサブリストに分割する

codeevalのsudokuやったときに調べたのでメモ。 結局使わなかったけど。Python2でCodeEvalのSUDOKU - brainstorm # coding=utf-8 size = 4 digits = [1, 4, 2, 3, 2, 3, 1, 4, 4, 2, 3, 1, 3, 1, 4, 2] # リスト内包表記 print [digits[x:x + size] for x in…

Python2でCodeEvalのSUDOKU

CodeEvalサイズと数列が渡される。サイズは4か9である。 4の場合は4*4=16、9の場合は9*9=81の数字がサイズに続けて渡される。渡された数字の並びが数独の答えとして成立しているかどうかをTrue or Falseで出力するinput 4;1,4,2,3,2,3,1,4,4,2,3,1,3,1,4,2 4…

Python2でCodeEvalのSUM TO ZERO

CodeEval 各行にカンマ区切りで、いくつか数字が渡される。 4つずつの組み合わせを作成し、そのうち和が0になる組み合わせの数を出力する。input 2,3,1,0,-4,-1 0,-1,3,-2output 2 1

Python2でCodeEvalのCounting Primes

CodeEval2つの数字が与えられるので、間に素数がいくつあるかをカウントするinput 2,10 20,30output 4 2

Python2でCodeEvalのVALID PARENTHESES

CodeEval 行ごとにカッコの整合性がとれているかどうかを判定してTrue、Falseを出力する。 (){}[]以外の文字は渡されない。input () ([)]output True False

文字の出現箇所をすべて返すcode snippet

str.findとかstr.indexだと文字が最初に出現するindexしか返さないので、すべての出現箇所のindexを取得したい場合の書き方を調べてた。 def find(s, ch): return (i for i, ltr in enumerate(s) if ltr == ch) 参考 : python - find char in string - can I…

Python2でCodeEvalのRacing Chars

easyにChallengeが1つ増えてた。CodeEval '_'がgateで、'C'がcheckpoint。'#'は通れない checkpointがあればそちらの道を、なければgateを通る。 通った道を'|'か'/'か'\'に置き換えていくこんな感じ input #########_## ########C_## #######_#### ######_#…

Django 1.7aのForm.add_errorを使ってみる

Djangoのformで複数フィールドにまたがるバリデーションをかけたい場合は、cleanメソッドに処理を書く。 例 # coding=utf-8 from django import forms from django.core.exceptions import ValidationError class PasswordConfirmForm(forms.Form): password…

Python2でCodeEvalのEmail Validation

input.txt foo@bar.com this is not an email id admin#codeeval.com good123@bad.comoutput true false false true

Python2でutf8のbomを削除する

utf8のテキストファイルには読み込んでBOM(Byte Order Mark)が付いている場合がある。バイトオーダーマーク - WikipediaemacsでBOM付きのutf8のファイルを作成するには、M-x set-buffer-file-encoding-systemで「utf-8-with-signature」を選択する。出来上が…

Python2でCodeEvalのChain Inspection

CodeEvalセミコロン区切りの各要素がちゃんとBEGINからENDまでのチェーンになっているかどうかを調べる。input.txt 4-2;BEGIN-3;3-4;2-END 4-2;BEGIN-3;3-4;2-3output GOOD BAD

Python2でCodeEvalのString Rotation

CodeEval各行のカンマ区切りの2カラム目が、1カラム目の文字列をrotateさせたものであるかどうかをTrue、Falseで出力する。 input Hello,lloHe Basefont,tBasefon output True True

Python2でCodeEvalのDecode Numbers

CodeEval以下のようなアルファベットと数字の対応があるとして A : 1 B : 2 C : 3 ... Z : 26 与えられた数字をアルファベットにデコードできるパターンがいくつあるか答える問題input.txt 12 123output 2 312であれば「AB」もしくは「L」にデコードできるの…

Go言語でバイナリファイルを作成する

ちょっとしたバイナリファイルをgoで作成する方法。サンプルはsjisで「あいうえお」の文字コードと改行コードCRを出力している。 package main import ( "bytes" "encoding/binary" "os" ) func main() { buf := new(bytes.Buffer) var data = []byte{ byte(…

Python2で辞書のキーと値を入れ替える

これか dict((v, k) for k, v in d.iteritems()) これだろうか dict(zip(d.values(), d.keys())) # coding=utf-8 from benchmarker import Benchmarker _dict = dict(((str(i), i) for i in range(0, 50000))) def exchange_keys_with_values_use_generator(…

Python2でCodeEvalのMinimum Coins

CodeEval額面が1、3、5のコインがあるとする。 各行の数字になるコインの組み合わせのうち、コイン数がもっとも少なくて済む場合の枚数を出力するinput.txt 11 20output 3 4

Python2でCodeEvalのOverlapping Rectangles

CodeEval 各行に8の数値が与えられる。 最初の2つが一つ目のrectangleの左上の座標。 次の2つが1つ目のrectangleの右下の座標。 残りの4つは同様に2つ目のrectangleの左上と右下の座標。2つのrectangleが座標上で重複しているかどうかをTrue or Falseで返す …

Python2でCodeEvalのThe Major Element

カンマ区切りの文字列で、半数以上を占めている要素を出力する。 該当する要素がない場合がNoneを出力する。input 92,19,19,76,19,21,19,85,19,19,19,94,19,19,22,67,83,19,19,54,59,1,19,19 92,11,30,92,1,11,92,38,92,92,43,92,92,51,92,36,97,92,92,92,43…