python期末复习题
程序员文章站
2022-03-15 14:55:13
1、熟悉类的字段与方法:举例:定义表平面二维点Point类:有静态字段count (用来计数一共有几个点),私有属性普通字段x,y(表示每个点的坐标);方法有个:构造函__init__用来初始化点 坐标x,y、计数count的值),获取私有普通字段x,y的方法Get X与Get Y(用来获取私有普通字段x,y的值)、专有方法___str__(用格式化输出函数),计算点间的距离Distance方法。class Point:count = 0def __init__(self, x, y): s...
1、熟悉类的字段与方法:
举例:定义表平面二维点Point类:有静态字段count (用来计数一共有几个点),私有属性普通字段x,y(表示每个点的坐标);方法有个:构造函__init__用来初始化点 坐标x,y、计数count的值),获取私有普通字段x,y的方法Get X与Get Y(用来获取私有普通字段x,y的值)、专有方法___str__(用格式化输出函数),计算点间的距离Distance方法。
class Point:
count = 0
def __init__(self, x, y):
self.__x = x
self.__y = y
Point.count = Point.count + 1
def GetX(self):
return self.__x
def GetY(self):
return self.__y
def __str__(self):
return '('+str(self.__x)+','+str(self.__y)+')'
def Distance(self,other):
return ( (self.GetX()-other.GetX())**2 + (self.GetY()-other.GetY())**2 )**0.5
2、熟悉类的应用:
例:设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。
import math
class Root:
def __init__(self,a,b,c):
self.a=a
self.b=b
self.c=c
def getDiscriminant(self):
return self.b **2 - 4*self.a*self.c
def getRoot1(self):
return (0-self.b+math.sqrt(self.getDiscriminant()))/(2*self.a)
def getRoot2(self):
return (0 - self.b - math.sqrt(self.getDiscriminant())) / (2 * self.a)
a=float(input()) #请输入二次项系数
b=float(input()) #请输入一次项系数
c=float(input()) #请输入常数项系数
root=Root(a,b,c)
if root.getDiscriminant()>0:
print("{:.2f}".format(root.getRoot1()))
print("{:.2f}".format(root.getRoot2()))
elif root.getDiscriminant()==0:
print("{:.2f}".format(root.getRoot1()))
else:
print("No Root!")
3、jmu-python-生日悖论 (15point(s))
生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。尝试编程验证。
验证方法提示:使用从1到365的整数代表生日。测试n次,每次生成23个随机数,随机数的范围从1到365(包括365)。
然后查看有无重复的生日。
最后算出重复的比率。
import random
x, n = map(int, input().split())
num = 0
random.seed(x)
for i in range(n):
a = []
for j in range(23):
a.append(random.randint(1, 365))
if len(a) != len(set(a)):
num += 1
print("rate={:.2f}".format(num/int(n)))
本文地址:https://blog.csdn.net/weixin_45151658/article/details/111933780