文字列が数字のみで成り立っているか調べる

問題

[10/30/2012] Challenge #109 [Easy] Digits Check : dailyprogrammer

概要

与えられた文字列が数字のみで成り立っていればTrue、そうでなければFalseを返す関数を書く。
たとえば小数点(.)を含むものはFalseを返す。

入力

入力:数字のみを含むか含まない文字列。空でない。
出力:TrueまたはFalse

"123"はTrue, "123.123"はFalse, "abc"はFalse

ノート

簡単すぎるので余裕のある人は文字列検索を高速化しましょう。以下の方法などいかがでしょ。
Knuth–Morris–Pratt algorithm - Wikipedia, the free encyclopedia
クヌース-モリス-プラット法 - Wikipedia

解答

入力は空文字列チェックしなくていい。

def digits_check(s):
    return all(map(lambda x: x.isdigit(), s))

print digits_check("123")     # => True
print digits_check("123.123") # => False
print digits_check("abc")     # => False

KMP法は…やるとしたら別記事で。