Spartacamp Python 2019 Day2 Challenge

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.

Aufgabe

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

Antworten

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

Spartacamp Python 2019 Day2 Challenge
Python Tag 1
[Python] Fordere 100 Schläge heraus! (015 ~ 019)
[Python] Fordere 100 Schläge heraus! (030-034)
Python-Lerntag 4
[Python] Fordere 100 Schläge heraus! (010-014)
[Python] Fordere 100 Schläge heraus! (025-029)
Python-Challenge-Tagebuch ①
[Python] Fordere 100 Schläge heraus! (020-024)
Erster Tag des Python-Studiums
[1day1lang AdventCalender] day4 Python
Python-Expeditionstag im Umemura-Stil 0
Python-Expeditionstag im Umemura-Stil 1
Fordern Sie Python3 und Selenium Webdriver heraus
[Einführung in Python3 Tag 1] Programmierung und Python
Fordern Sie LOTO 6 mit Python ohne Disziplin heraus
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)
[Einführung in Python3 Tag 15] Kapitel 7 Zeichenfolgen (7.1.2-7.1.2.2)
# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
[Einführung in Python3 Tag 21] Kapitel 10 System (10.1 bis 10.5)