因此,在完成了一些基础知识并开始游戏后,我终于开始习惯Python,至少在基本意义上如此。感谢那些在这里帮助我的人。
然而,我对书中看到的练习感到厌倦,如下所示。
创建一个名为' Rectangle'的类。具有以下属性和方法(包括每个方法的示例运行):
1)每个实例都应该有x,y,width和height属性。
2)你应该能够在创建矩形时传递属性,如下所示(其中x = 5,y = 10,width = 50,height = 100依次):
r = Rectangle(5, 10, 50, 100)
3)创建一个将矩形作为字符串返回的方法(提示:实现 str )。对于属性值为x = 5,y = 10,width = 50,height = 100的矩形对象,它应返回字符串“Rectangle(5,10,50,100)”。
r2 = Rectangle(5, 10, 50, 100)
print(r2)
Rectangle(5, 10, 50, 100)
4)创建一个名为right
的方法,该方法获取矩形右边缘的值。它不应该争论:
r3 = Rectangle(3, 5, 10, 20)
r3.right()
13
r4 = Rectangle(12, 10, 72, 35)
r4.right()
84
5)创建一个名为bottom
的方法,该方法获取矩形底边的值。
r5 = Rectangle(5, 7, 10, 6)
r5.bottom()
13
r5.y += 12
r5.bottom()
25
6)创建一个名为size
的方法,它返回矩形的宽度和高度。
r6 = Rectangle(1, 2, 3, 4)
r6.size()
(3, 4)
7)创建一个名为position
的方法,它返回矩形的x和y坐标。
r6.position()
(1, 2)
8)创建一个名为area
的方法,返回矩形区域。
r6.area()
12
9)创建一个名为expand
的方法,该方法获取一个偏移值,并返回在所有方向上以偏移量展开的矩形的副本。
r = Rectangle(30, 40, 100, 110)
r
Rectangle(30, 40, 100, 110)
r1 = r.expand(offset=3)
r1
Rectangle(27, 37, 106, 116)
不应修改原始矩形。
r
Rectangle(30, 40, 100, 110)
负值应返回缩小的矩形。
r.expand(-5)
Rectangle(35, 45, 90, 100)
到目前为止,我在这里:
class Rectangle:
def __init__(self, X, Y, W, H):
self.x = X
self.y = Y
self.w = W
self.h = H
x=5
Y=10
W=50
H=100
def complete(self):
return self.x,self.y,self.w,self.h
def right(self):
return self.x + self.w
def __str__(self):
return('Rectangle(' + str(self.x) + ',' + str(self.y) + ','
+ str(self.w) + ',' + str(self.h)+')')
def bottom(self):
return self.y + self.h
def __str__(self):
return('Rectangle(' + str(self.y) + ',' + str(self.h) + ','
+ str(self.y) + ',' + str(self.h) + ')')
def size(self):
return self.w,self.h
def position(self):
return self.x,self.y
def area(self):
return self.w * self.h
def expand(self):
''
print(Rectangle(5,10,50,100).complete())
print(Rectangle(3, 5, 10, 20).right())
print(Rectangle(12, 10, 72, 35).right())
print(Rectangle(5,7,10,6).bottom())
print(Rectangle(1,2,3,4).size())
print(Rectangle(1,2,3,4).position())
print(Rectangle(1,2,3,4).area())
练习的第二部分我还没有尝试过,因为我还在第一部分工作。
创建一个名为contains_point
的方法,它将坐标x和y作为参数,如果矩形内部(或边缘)上的点则返回True,否则返回False。
r = Rectangle(30, 40, 100, 110)
r.contains_point(50, 50)
True
r.contains_point(30,40)
True
r.contains_point(130, 150)
True
r.contains_point(131, 50)
False
r.contains_point(0,0)
False
所以基本上我只是在这个问题的第一部分工作,并寻找一些关于我到目前为止的一些信息。我仍然对第1部分问题9感到困惑,而且我不确定我的代码在一般情况下做错了什么。暗示性阅读,批评或建设性的批评都受到赞赏