Python-作业3

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

【问题描述】

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

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

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

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

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

3

word zi

go qu

input shuru

go

【样例输出】

qu

【样例说明】

qu是go单词的译文。

n = int(input())
fanyi = {}
for i in range(n):
    s = input()
    slist = s.split(' ')
    fanyi[slist[0]] = slist[-1]
word = input()
if word.strip(' ') in fanyi:
    print(fanyi[word.strip(' ')])
else:
    print("not found")
  1. 2. 出现最多次的整数

【问题描述】

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

【输入形式】

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

【输出形式】

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

【样例输入】

10

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

【样例输出】

-50 3

0 3

【样例说明】

输入了10个整数,其中出

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

现次数最多的是-50和0,都是出现3次。

  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):
    sum = 0
    s = 0
    for i in range(n):
        s = s+a*10**i
        sum = sum + s
    return sum
x,y = eval(input())
print(mysum(x,y))
  1. 4. 递归求等差数列

【问题描述】

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

  

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

【输入形式】

  无

【输出形式】

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

  无
【样例输出】 

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

def age(n):
    if n == 1:
        return 10
    else:
        return age(n-1) + 2
print(age(5))
  1. 1. 类定义-矩形面积

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

class Rect:
    def __init__(self,length,width):
        self.length = length
        self.width = width
    def area(self):
        s = self.length *self.width
        return s
x  =  float(input())
y  =  float(input())
r1  =  Rect(x,  y)
print(r1.area())

  1. 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):
        return math.sqrt((self.x-p2.x)**2+(self.y-p2.y)**2+(self.z-p2.z)**2)
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))

  1. 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.0 and self.engScore>=60.0 and self.proScore>=60.0:
            return 1
        else:
            return 0
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.")
  1. 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())

x,y,z = input().split()
x  =  float(x)
y  =  float(y)
z  =  float(z)
q  =  Student(x,  y,  z)
print(q.average()) //这个数据可以随便字母代替

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值