BlankTar

about | blog | works | photo

pythonで与えられた数字がキリ番かどうかを判定するコード書きました。ほぼ正規表現です。
import re

def isKiri(x):
	if re.match('^([0-9])\\1+$', str(x)):  # ゾロ目
		return True

	if re.match('^[0-9]0+$', str(x)):  # 100とか200とか。(なんて言うんだ)
		return True

	if str(x) in '01234567890' or str(x) in '09876543210':  # 連番
		return True

	return False
こんな感じで。

連番だけちょっと綺麗じゃない感じになってしまった。
0123とかなら対応できるけど、7890123みたいのはダメ。まあ、そいつをキリ番に含めるのかどうかは知らないけれど。

def isKiri(x):
	if all(y == str(x)[0] for y in str(x)[1:]):  # ゾロ目
		return True

	if all(y == '0' for y in str(x)[1:]):  # 100とか200とか。(なんて言うんだ)
		return True

	if str(x) in '01234567890' or str(x) in '09876543210':  # 連番
		return True

	return False
正規表現使わないとこんな感じ。
大して長さは変わらないけれど、読みづらい。
< xlibでX11のマウスを制御してみた。 pythonでapache killerを書いてみる >