python 公有字典
时间: 2023-09-15 11:23:32 浏览: 85
Python 是一种通用的高级编程语言,支持面向对象、函数式和过程式编程范式。它具有简洁、易读、易学的语法,并且拥有丰富的标准库和第三方库,使得开发人员可以快速而高效地开发各种应用程序,包括网站开发、数据分析、机器学习等。Python 是一种开放源代码的语言,因此可以公开发布和共享使用,这使得它在开发社区中非常受欢迎。
相关问题
pythonPoint类是表平面二维点类:有公有静态字段count (用来计数一共有几个点),私有属性普通字段x,y(表示每个点的坐标);方法有四个:构造函__init__用来初始化点 坐标x,y、计数count的值),获取私有普通字段x,y的方法Get X与Get Y(用来获取私有普通字段x,y的值)、专有方法___str__(用格式化输出函数)。 PointSet类是表示平面二维点集类:有普通字段Pointlist (用来存储二维点的坐标的列表),普通字段Pdict(用来统计各个点在第几象限,X 坐标,Y坐标的字典),方法有三个:构造函数__init__(用来初始化列表Pointlist、字典Pdict的值),读入数据方法InputData( 用来读入数据)、统计方法GetStatistics (用统计在第一象限、第二象限、第三象限、第四象限、X轴、Y轴,原点 上各有几个点,字典顺序根据输入数据不同而不同,返回值为字典Pdict)
好的,下面是一个简单的Python代码实现Point类和PointSet类:
``` python
class Point:
count = 0 # 公有静态字段,用来计数一共有几个点
def __init__(self, x=0, y=0):
self.__x = x
self.__y = y
Point.count += 1 # 每创建一个点,计数器加1
def get_x(self):
return self.__x
def get_y(self):
return self.__y
def __str__(self):
return "({0}, {1})".format(self.__x, self.__y)
class PointSet:
def __init__(self):
self.Pointlist = [] # 普通字段,用来存储二维点的坐标的列表
self.Pdict = {} # 普通字段,用来统计各个点在第几象限、X坐标、Y坐标的字典
def InputData(self):
n = int(input("请输入点的个数:"))
for i in range(n):
x, y = map(int, input("请输入第{0}个点的坐标(x,y):".format(i+1)).split())
self.Pointlist.append(Point(x, y))
def GetStatistics(self):
for p in self.Pointlist:
if p.get_x() > 0 and p.get_y() > 0:
self.Pdict["第一象限"] = self.Pdict.get("第一象限", 0) + 1
elif p.get_x() < 0 and p.get_y() > 0:
self.Pdict["第二象限"] = self.Pdict.get("第二象限", 0) + 1
elif p.get_x() < 0 and p.get_y() < 0:
self.Pdict["第三象限"] = self.Pdict.get("第三象限", 0) + 1
elif p.get_x() > 0 and p.get_y() < 0:
self.Pdict["第四象限"] = self.Pdict.get("第四象限", 0) + 1
elif p.get_x() == 0 and p.get_y() == 0:
self.Pdict["原点"] = self.Pdict.get("原点", 0) + 1
elif p.get_x() == 0:
self.Pdict["X轴"] = self.Pdict.get("X轴", 0) + 1
elif p.get_y() == 0:
self.Pdict["Y轴"] = self.Pdict.get("Y轴", 0) + 1
return self.Pdict
```
在上述代码中,我们定义了一个Point类表示平面上的二维坐标点,其中包含了两个私有属性__x和__y,以及三个方法。同时,我们也定义了一个PointSet类表示平面二维点集,其中包含了一个普通字段Pointlist和一个字典Pdict,以及三个方法。其中,InputData方法用于读入点集数据,GetStatistics方法用于统计各个点在第几象限、X坐标、Y坐标的个数,返回值为字典Pdict。
Point类是表平面二维点类:有公有静态字段count (用来计数一共有几个点),私有属性普通字段x,y(表示每个点的坐标);方法有四个:构造函__init__用来初始化点 坐标x,y、计数count的值),获取私有普通字段x,y的方法Get X与Get Y(用来获取私有普通字段x,y的值)、专有方法___str__(用格式化输出函数)。 PointSet类是表示平面二维点集类:有普通字段Pointlist (用来存储二维点的坐标的列表),普通字段Pdict(用来统计各个点在第几象限,X 坐标,Y坐标的字典),方法有三个:构造函数__init__(用来初始化列表Pointlist、字典Pdict的值),读入数据方法InputData( 用来读入数据)、统计方法GetStatistics (用统计在第一象限、第二象限、第三象限、第四象限、X轴、Y轴,原点 上各有几个点,字典顺序根据输入数据不同而不同,返回值为字典Pdict)。 函数接口定义: 考生在这里需要完整定义Point与PointSet两个类: class Point: class PointSet: 这里要完整定义类Point 与类PointSet。 裁判测试程序样例: 在这里给出函数被调用进行测试的例子。 ##### 请在这里填写答案###### if __name__ == "__main__": Example = PointSet() Example.InputData() print("共有{}个点".format(Point.count)) for i in range(0, len(Example.Pointlist)): print(Example.Pointlist[i],end=' ') print() print(Example.GetStatistics())
完整的Point类和PointSet类定义如下:
```python
class Point:
count = 0
def __init__(self, x, y):
self.x = x
self.y = y
Point.count += 1
def GetX(self):
return self.x
def GetY(self):
return self.y
def __str__(self):
return "({},{})".format(self.x, self.y)
class PointSet:
def __init__(self):
self.Pointlist = []
self.Pdict = {"第一象限": 0, "第二象限": 0, "第三象限": 0, "第四象限": 0, "X轴": 0, "Y轴": 0, "原点": 0}
def InputData(self):
while True:
try:
x, y = map(int, input().split())
self.Pointlist.append(Point(x, y))
except:
break
def GetStatistics(self):
for point in self.Pointlist:
if point.GetX() > 0 and point.GetY() > 0:
self.Pdict["第一象限"] += 1
elif point.GetX() < 0 and point.GetY() > 0:
self.Pdict["第二象限"] += 1
elif point.GetX() < 0 and point.GetY() < 0:
self.Pdict["第三象限"] += 1
elif point.GetX() > 0 and point.GetY() < 0:
self.Pdict["第四象限"] += 1
elif point.GetX() == 0 and point.GetY() != 0:
self.Pdict["X轴"] += 1
elif point.GetY() == 0 and point.GetX() != 0:
self.Pdict["Y轴"] += 1
elif point.GetX() == 0 and point.GetY() == 0:
self.Pdict["原点"] += 1
return self.Pdict
```
测试程序样例:
```python
if __name__ == "__main__":
Example = PointSet()
Example.InputData()
print("共有{}个点".format(Point.count))
for i in range(0, len(Example.Pointlist)):
print(Example.Pointlist[i], end=' ')
print()
print(Example.GetStatistics())
```
阅读全文