欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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