2016-10-29 5 views
-1

これはうまくいくはずですが、テストケースを実行するときにエラーが発生します。なんらかの理由で4番目のものが失敗します。 numbers [0]は '-1'を出力しますが、highest_numberまたはlowest_numberに代入すると ' - 'だけが出力されます。何がありますか?コードワード:カタ - 最高と最低を解決する

コード:

def high_and_low(numbers): 
    if numbers: 
     highest_number = numbers[0] 
     lowest_number = numbers[0] 
     numbers = numbers.split(" ") 
     print(highest_number) 
     print(lowest_number) 
     print(numbers[0]) 
     for num in numbers: 
      if int(num) > int(highest_number): 
       highest_number = num 
      if int(num) < int(lowest_number): 
       lowest_number = num 
     return highest_number + " " + lowest_number 

テストケース:

Test.assert_equals(high_and_low("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"), "542 -214"); 
Test.assert_equals(high_and_low("1 -1"), "1 -1"); 
Test.assert_equals(high_and_low("1 1"), "1 1"); 
Test.assert_equals(high_and_low("-1 -1"), "-1 -1"); 
Test.assert_equals(high_and_low("1 -1 0"), "1 -1"); 
Test.assert_equals(high_and_low("1 1 0"), "1 0"); 
Test.assert_equals(high_and_low("-1 -1 0"), "0 -1"); 
Test.assert_equals(high_and_low("42"), "42 42"); 

エラー:

ValueError: invalid literal for int() with base 10: '-' 

答えて

1

があなただけにnumbersの最初の文字を割り当てる他に、最初にあなたの番号を分割あなたの変数:

numbers = numbers.split(" ") 
    highest_number = numbers[0] 
    lowest_number = numbers[0] 
+0

うわー、私は愚かな感じ。ありがとうございました。 – terratunaz

0

ここで試してみてください!私はちょうどそれを持って、私は非常にばかげて、+記号と文字列を追加することができます感じる!

回答は次のとおりです。

def high_and_low(numbers): 
    # must split the numbers, convert them to integers and print the max and min of list 
    numbers = numbers.split() 
    numbers = [int(i) for i in numbers] 
    return str(max(numbers))+" "+str(min(numbers)) 
関連する問題