Ich kannte die Antwort auf das Problem im Video nicht und habe versucht, es selbst zu lösen. Ich dachte, dass es für diejenigen hilfreich wäre, die mit dem Live-Video von Sparta Camp lernen.
Dies ist ein Anfängerproblem bei der objektorientierten Programmierung. Anstatt guten Code mit Objektorientierung zu schreiben, besteht das Ziel darin, in der richtigen Grammatik schreiben zu können.
Implementieren Sie die Circle-Klasse so, dass der folgende Code korrekt ist. Fläche bedeutet die Fläche und Umfang bedeutet die Umfangslänge (die Länge des Umfangs).
circle.py
#Kreis mit Radius 1
circle1 = Circle(radius=1)
print(circle1.area()) #3.14
print(circle1.perimeter()) #6.28
#Kreis mit Radius 3
circle3 = Circle(radius=3)
print(circle3.area()) #28.26 ← Wahrscheinlich 28 im Video.27 ist falsch
print(circle3.perimeter()) # 18.84 ← Wahrscheinlich 18 im Video.85 ist falsch
#Implementieren Sie die Rectangle-Klasse so, dass der folgende Code ordnungsgemäß funktioniert
#Diagonale bedeutet (Länge).
rectangle1 = Rectangle(height=5, width=6)
rectangle1.area() #30.00
rectangle1.diagonal() #7.81
rectangle2 = Rectangle(height=3, width=3)
rectangle2.area() #9.00
rectangle2.diagonal() #4.24
Es ist ein grober Code, aber ich werde die Antwort, die ich mir ausgedacht habe, als Referenz verwenden.
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return (self.radius ** 2) * 3.14
def perimeter(self):
return self.radius * 2 * 3.14
class Rectangle:
def __init__(self, height, width):
self.height = height
self.width = width
def area(self):
area = self.height * self.width
print(f'{area:.2f}')
def diagonal(self):
line = pow(self.height, 2) + pow(self.width, 2)
line = line ** (1/2)
print(f'{line:.2f}')
Richtige Antwort, wenn das Ausführungsergebnis wie folgt lautet!
3.14
6.28
28.26
18.84
30.00
7.81
9.00
4.24
Recommended Posts