2017-03-29 23 views
0

だから私がやっているpyschoolsトピック6質問23: Pyschools番号シーケンス

は関数getNumbers(番号)を書き込み、引数として数に取り、下記のサンプルのように番号のリストを返します。

>>> getNumbers(10) 
[100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100] 
>>> getNumbers(9) 
[81, 49, 25, 9, 1, 1, 9, 25, 49, 81] 
>>> getNumbers(8) 
[64, 36, 16, 4, 0, 4, 16, 36, 64] 
>>> getNumbers(0) 
[0] 

これは私のコードです:しかし、私はプライベートテストケースを渡していないよ作品

def getNumbers(num): 
    x = [] 
    y = [] 
    if num % 2 == 0: 
     x = [i**2 for i in range(0, num+2, 2)] 
     y = [i**2 for i in range(0, num+2, 2)] 
     z = sorted(x, reverse=True) + y 
     if z.count(0) > 1: 
      z.remove(0) 
      return z 
    elif num % 3 == 0: 
     x = [i**2 for i in range(1, num+2, 2)] 
     y = [i**2 for i in range(1, num+2, 2)] 
     return sorted(x, reverse=True) + y 
    elif num == 1: 
     x.append(num) 
     y.append(num) 
     return sorted(x, reverse=True) + y 

。すべての理想はなぜですか? プライベートテストケースは、あなたがハードコードしているかどうかを確認するために作られたものです。

Test Cases  Expected Result       Returned Result 
getNumbers(10) [100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100] [100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100] 
getNumbers(9) [81, 49, 25, 9, 1, 1, 9, 25, 49, 81]  [81, 49, 25, 9, 1, 1, 9, 25, 49, 81]  
Private Test Cases Passed         Failed 
getNumbers(0) [0]           [0] 
getNumbers(1) [1, 1]          [1, 1] 
+0

? –

+0

私はどこかの赤色から、プログラマーがハードコーディングしているかどうかを知ることができるかもしれませんが、ハードコーディングされているかどうかはわかりません。 –

+0

そのテストケースを理解しようとすると、誰かがそれに基づいてここであなたを助けることができます! –

答えて

0

これが一番簡単な方法だった:プライベートテストケースは何

def getNumbers(num): 
    x = -num 
    y = list(range(x, num+1, 2)) 
    return [i**2 for i in y] 

getNumbers(10) 
[100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100] 
関連する問題