python作业3(在生词本查单词的译文,出现最多次的整数,求多项式的和,递归求等差数列,类定义-矩形面积,类与对象-两点之间距离,Student类增加方法allPassed,调用Student类的)

  • Post author:
  • Post category:python

目录

1.在生词本查单词的译文

2. 出现最多次的整数

3. 求多项式的和

4.递归求等差数列

1.类定义-矩形面积

2.类与对象-两点之间距离

3.Student类增加方法allPassed

4.调用Student类的average方法


不要使用cv大法,有问题私戳我哦

1.在生词本查单词的译文

【问题描述】

先输入多个英文单词及其译文,接着输入英文单词,输出该单词的译文。
【输入形式】

第一行是整数n,表示n个英文单词及其译文。

接下来输入n行是英文单词和译文,中间用空格隔开。

接下来输入的一行是一个英文单词。
【输出形式】

输出最后输入的英文单词的译文。如果没有检索到该单词,输出”not found”。
【样例输入】

3

word zi

go qu

input shuru

go

【样例输出】

qu

【样例说明】

qu是go单词的译文。

n= int(input())
arr = {}
for i in range(n):
    s = input()
    slist = s.split(' ')
    arr[slist[0]] = slist[-1]
word = input()
if word.strip(' ') in arr :
    print(arr[word.strip(' ')])
else:
    print("not found")

 

2. 出现最多次的整数

【问题描述】

输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。

【输入形式】

先从标准输入读入整数的个数(大于等于1,小于等于100),然后在下一行输入这些整数,各整数之间以一个空格分隔。

【输出形式】

在标准输出上输出出现次数最多的整数及其出现次数,两者以一个空格分隔;若出现次数最多的整数有多个,则按照整数升序分行输出。

【样例输入】

10

0 -50 0 632 5813 -50 9 -50 0 632

【样例输出】

-50 3

0 3

【样例说明】

输入了10个整数,其中出现次数最多的是-50和0,都是出现3次。

n=input()
a=input().split()
a=[eval(i) for i in a]
arr={}
for i in a:
    arr[i] = arr.get(i,0)+1
num=list(arr.items())
num.sort(key=lambda x:(-x[1],x[0]))
for i in range(len(num)):
    if num[i][1]==num[0][1]:
        print(num[i][0],num[i][1])

 

3. 求多项式的和

【问题描述】

  编写一个函数mySum(a,n),求以下n项式的和:

      s=a+aa+aaa+……+aa…a,  其中a是1~9的数字,最后一项是n位都是a的数字

     程序部分代码如下:

   x,y=eval(input())

   print(mySum(x,y))

  【输入形式】

  输入a和n的值
【输出形式】

  输出s
【样例输入】

  1,5
【样例输出】

  12345

def mysum(a,n):
    m = 0
    sum = 0
    for i in range(n):
        m += a*(10**i)
        sum+=m 
    return sum
(x,y) = eval(input())
mysum(x,y)
print(mysum(x,y))

4.递归求等差数列

【问题描述】

  有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

  

   编写递归函数age(n)求第n个人的年龄。在程序中使用print(age(5))打印第五个人的年龄

【输入形式】

  无

【输出形式】

  第五个人的年龄
【样例输入】

  无
【样例输出】 

  18
【样例说明】
【评分标准】

def f(n):
    if n==1:
        age = 10
    else:
        age = f(n-1)+2
    return age
print(f(5))

1.类定义-矩形面积

【问题描述】
矩形类Rect的定义。它有长度和宽度,area方法的作用是求矩形的面积。

class Rect:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def area(self):
        self.l = self.x * self.y
        return self.l          


x  =  float(input())
y  =  float(input())
r1  =  Rect(x,  y)
print(r1.area())

2.类与对象-两点之间距离

【问题描述】

定义Point类实现三维坐标点。定义dist_from方法实现两点之间距离的计算。

【输入形式】输入两行,第一行是第一个点的坐标值,第二行是第二个点的坐标值。坐标值x, y, z之间用空格隔开。
【输出形式】距离
【样例输入】

0 0 0

1 1 1
【样例输出】

1.73205

import  math
class Point:
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z
    def getx(self):
        return self.x
    def gety(self):
        return self.y
    def getz(self):
        return self.z
    def dist_from(self,p2):
        self.x -= p2.x
        self.y -= p2.y
        self.z -= p2.z
        self.len = math.sqrt(self.x**2+self.y**2+self.z**2)
        return self.len
x1,  y1,  z1  =  input().split()
x1  =  float(x1)
y1  =  float(y1)
z1  =  float(z1)
p1  =  Point(x1,  y1,  z1)
x2,  y2,  z2  =  input().split()
x2  =  float(x2)
y2  =  float(y2)
z2  =  float(z2)
p2  =  Point(x2,  y2,  z2)
print("%.2f"%p1.dist_from(p2))

3.Student类增加方法allPassed

【问题描述】

在Student类中增加一个成员方法,功能是判别学生是否有科目不及格,有则返回false,否则返回true。

class  Student():
        def  __init__(self):
                self.sno  =  0
                self.name  =  ""
                self.mathScore  =  0.0
                self.engScore  =  0.0
                self.proScore  =  0.0

        def  average(self):
                return  (self.mathScore  +  self.engScore  +  self.proScore)  /  3

        def  allPassed(self):
            if self.mathScore < 60 or self.engScore < 60 or self.proScore <60:
                return False
            else:
                return True

s  =  Student()
m,  e,  p  =  input().split()
s.mathScore  =  float(m)
s.engScore  =  float(e)
s.proScore  =  float(p)
if  s.allPassed():
        print("All  passed.")
else:
        print("Not  all  passed.")

 

4.调用Student类的average方法

补充代码,定义另一个学生对象,输入其成绩,求平均成绩并输出

class  Student():
        def  __init__(self,  math,  eng,  pro):
                self.sno  =  0
                self.name  =  ""
                self.mathScore  =  math
                self.engScore  =  eng
                self.proScore  =  pro

        def  average(self):
                return  (self.mathScore  +  self.engScore  +  self.proScore)  /  3

m,  e,  p  =  input().split()
m  =  float(m)
e  =  float(e)
p  =  float(p)
s  =  Student(m,  e,  p)
print(s.average())

m1,  e1,  p1  =  input().split()
m1  =  float(m1)
e1  =  float(e1)
p1  =  float(p1)
s1  =  Student(m1,  e1,  p1)
print(s1.average())

 


版权声明:本文为m0_62779494原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。