Muszę sprawdzić, czy kształt jest sześcianem (lubmożliwe). Mam całkowitą objętość i długość jednej strony. Zaczynam od sprawdzenia, czy objętość i bok są większe niż 0, a następnie, czy sześcian pierwiastka objętości jest równy stronie.
Mam problem z tym, że sześcian z korzenia 125zwraca jako 4.999999999 przy użyciu następującego kodu. Zaokrąglenie liczby spowodowałoby, że byłaby niedokładna w innych przypadkach (4.6 stałoby się również 5). Jestem nowy w Pythonie, o ile mogę powiedzieć, że nie ma wbudowanego roota kostki jak Javascripts Math.cbrt ().
def is_cube(volume, side):
if volume <= 0 or side <= 0:
return False
elif volume ** (1/3) != side:
return False
else:
return True
Czuję, że brakuje mi czegoś bardzo oczywistego. Wiem, że podział w Pythonie 3 zawsze da mi liczbę zmienną, ale 125 to idealny sześcian.
Odpowiedzi:
3 dla odpowiedzi № 1def is_cube(volume):
return int(round(volume ** (1/3.))) ** 3 == volume
0 dla odpowiedzi nr 2
def cube_volume(volume,side):
if side>= 0 and volume>= 0:
if side**3 == volume:
return True
else:
return False
Spróbuj tego!