目录
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())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)