Refactoring untuk keterbacaan
Memecah fungsi yang panjang menjadi unit-unit yang lebih kecil dapat membantu keterbacaan dan modularitas. Pada latihan ini, Anda akan melakukan refactoring sebuah fungsi menjadi unit yang lebih kecil. Fungsi yang akan Anda refactor ditunjukkan di bawah ini. Perhatikan, dalam latihan ini, Anda tidak akan menggunakan docstring demi menghemat ruang; dalam aplikasi nyata, Anda sebaiknya tetap menyertakan dokumentasi!
def polygon_area(n_sides, side_len):
"""Find the area of a regular polygon
:param n_sides: number of sides
:param side_len: length of polygon sides
:return: area of polygon
>>> round(polygon_area(4, 5))
25
"""
perimeter = n_sides * side_len
apothem_denominator = 2 * math.tan(math.pi / n_sides)
apothem = side_len / apothem_denominator
return perimeter * apothem / 2
Latihan ini adalah bagian dari kursus
Prinsip Rekayasa Perangkat Lunak di Python
Petunjuk latihan
- Pindahkan logika perhitungan
perimeterke dalam fungsipolygon_perimeter. - Lengkapi definisi fungsi
polygon_apothemdengan memindahkan logika yang terlihat pada konteks. Modulmathsudah diimpor untuk Anda. - Gunakan fungsi-fungsi unit baru tersebut untuk melengkapi definisi
polygon_area. - Gunakan
polygon_areayang lebih terunitisasi untuk menghitung luas poligon beraturan dengan 6 sisi (heksagon) dan panjang sisi 10.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
def polygon_perimeter(n_sides, side_len):
return ____
def polygon_apothem(n_sides, side_len):
denominator = ____
return side_len / denominator
def polygon_area(n_sides, side_len):
perimeter = ____
apothem = ____
return perimeter * apothem / 2
# Print the area of a hexagon with legs of size 10
print(____(n_sides=6, side_len=10))