0
ヘルプ!私はこのプログラムを明日の予定だとしています。その要件は、XとYのデカルト座標をtopLeftコーナーに、X、Yのデカルト座標をbottomRightコーナーのraw_inputとして持つ必要があります。次に、周囲、領域、およびこれらの2つの位置を印刷します。 しかし、私はraw_inputを動作させることができません。私はint、分割、および複数の割り当てに変換しようとしました。デカルト座標のraw_inputを持つクラス矩形?
topLeft = int(raw_input ('Please enter a coordinate==>')).split()
bottomRight= int(raw_input ('Please enter a coordinate==>')).split()
class Rectangle:
def __init__(self, topLeft, bottomRight):
self.tL = topLeft
self.bR = bottomRight
def perim(self):
return (2 * (self.tL)) + (2 * (self.bR))
def area(self):
return (self.tL) * (self.bR)
def position(self):
return (self.tL, self.bR)
def __str__(self):
return "Rectangle(%s, %s)" % (self.tL, self.bR)
r1 = (Rectangle (topLeft,bottomRight))
print r1
print "Perimeter: %s" % r1.perim()
print "Area: %s" % r1.area()
print "Position: (%s, %s,)" % r1.position()
これは私の最も近い試みですが、私はまだエラーを取得:
Traceback (most recent call last):
File "C:\Users\Mary\Desktop\Python Programs\Rectangle.py", line 1, in <module>
topLeft = int(raw_input ('Please enter a coordinate==>')).split()
ValueError: invalid literal for int() with base 10: '(5,10)'
私は初心者です。ありがとうございました!私は中に入ってクラスメソッドを調整しました。私は他の人のためにそれらを持っていましたが、あなたのことはもっと意味がありました。クラスそのものの整数をチェックする必要があることはわかりませんでした。今は完璧に動作します。 –
座標を扱うより良いアプローチは、大雑把に小さなクラス*ファクトリである 'collections.namedtuple'を使って自然に感じさせることです。 'P'がポイントクラスのタプルクラスであれば、' top = P(x = xt、y = yt) 'と' top.x top.y'を実行できます。それは非常に自然に見えます。 –