-4
def my_isdigit(str):
    if digit in str >0 and str is int:
        print "True"
    else:
        print "False"

isdigitつまり、文字列内のすべての文字が数字であり、少なくとも1文字ある場合はtrueを返し、それ以外の場合はfalseを返す関数を作成しようとしています。これを使用しようとするたびに、「数字」が定義されていないことがわかります。何を変更するように求められているのか混乱しています...助けていただければ幸いです!

4

3 に答える 3

4

Trueこの関数は各文字を調べ、すべて数字の場合にのみ返します。

digits = '0123456789'

def isdigit(inputstring):
    if not inputstring: return False
    for char in inputstring:
        if char not in digits:
            return False
    return True

または、文字列比較を利用します。

def isdigit(inputstring):
    if not inputstring: return False
    for char in inputstring:
        if not '0' <= char <= '9':
            return False
    return True

残念ながら、あなたの機能はかなり外れています。を定義digitしたり、 の文字をループしたりしませんstrintタイプです。文字列 (個々の文字であっても) は整数ではありません。のような文字列-42は整数に変換できますが、「-」は数字ではないため'-42'.isdigit()返されます。False

于 2013-10-13T23:05:58.663 に答える
2

正規表現を使用できます

def my_isdigit(str):
    return re.search("[^\d]", str) is None

ここにいくつかの質問があるので、いくつかの簡単なテストがあります:

print my_isdigit("02211")
> True
print my_isdigit("022x01")
> False
print my_isdigit("a02201")
> False
于 2013-10-13T23:11:55.893 に答える