Mencari Median - HackerRank Mock Test (Python)

Aku coba mock test di hacker rank untuk cari median. tapi saat di run, outputnya none. coba pake cara lain yg aku temuin di geekforgeeks juga tetep none. Kenapa ya?

#!/bin/python3

import math
import os
import random
import re
import sys



#
# Complete the 'findMedian' function below.
#
# The function is expected to return an INTEGER.
# The function accepts INTEGER_ARRAY arr as parameter.
#
import statistics
def findMedian(arr):
    arr.sort()
    med = statistics.median(arr)
    print(med)

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input().strip())

    arr = list(map(int, input().rstrip().split()))

    result = findMedian(arr)

    fptr.write(str(result) + '\n')

    fptr.close()

avatar veraa
@veraa

3 Kontribusi 0 Poin

Diperbarui 1 tahun yang lalu

2 Jawaban:

Mungkin karen akamu ngeprint

print(med)

harusnya return

avatar hilmanski
@hilmanski

2695 Kontribusi 2139 Poin

Dipost 1 tahun yang lalu

Penyebab output menjadi None karena fungsi findMedian tidak mengembalikan nilai apa-apa (return).

Untuk mengembalikan median, perlu ditambahkan statement return:

import statistics

def findMedian(arr):
  arr.sort()
  med = statistics.median(arr)
  return med

Selain itu, perlu diperhatikan beberapa hal:

  • Gunakan statistics.median untuk mencari median, bukan rata-rata
  • Setelah mencari median, kembalikan nilainya dengan return
  • Panggil fungsi print di luar fungsi, bukan didalamnya

Contoh penggunaan yang benar:

import statistics

def findMedian(arr):
  arr.sort()
  return statistics.median(arr)

arr = [1,3,5,7,9]  
result = findMedian(arr)
print(result)

Dengan mengembalikan nilai median dan mencetaknya di luar fungsi, maka akan mencetak hasil median secara benar.

avatar adamajalah27
@adamajalah27

120 Kontribusi 40 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban