2016-11-17 4 views
-1

私が悩んでいるCodeWarsカタを解決する助けが必要です。何らかの理由で私はテストケースの1つでFalseを受け取りました、そして、私はそれの真の理由を見つけることができません。CodeWarsカタでの奇妙なテストケースの結果

string(ping)を検証することです。文字列の長さは4 または 6でなければならず、数字のみで構成する必要があります。

これは私のコードです:

def validate_pin(pin): 

    if (len(pin) != 4 or len(pin) != 6): 
     return False 
    print(pin.isdigit()) 
    if(pin.isdigit()): 
     return True 
    else: 
     return False 

それは9/10テストに合格します。これは失敗したテストのための入力/出力されます:

私はvalidate_pin( '1234')上の偽受け取る:

'1234' の間違った出力:Falseが

を真等しくなければなりません
+6

'if(len(pin)!= 4またはlen(pin)!= 6):' - その行の意味をより深く考える。 – user2357112

+0

omg ...それは、イケアの家具をあなたの頭に組み立てるものです...神様、私はばかです。馬鹿馬鹿しい質問を申し訳ありません – geostocker

答えて

0

数字の長さを見つけようとしています。通常、文字列またはシーケンスの長さが実行されます。 以下の例のようなシーケンスがありますが、理解を深めるのに役立ちます。

>>> 
>>> len(4) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: object of type 'int' has no len() 
>>> len('4') 
1 
>>> len('abc') 
3 
>>> len([1,2,'a']) 
3 
>>>