大一下Python上机操作期末
1、定义一个字典,其中存储了不同学生的分数。字典的键是学生姓名,值是该学生的分数(0-100的整数)。完成以下任务:
- 添加5个元素(包括姓名和分数),其中"张三"的分数为85。
- 修改学生"李四"的分数为90(假设"李四"已经在字典中)。
- 找出字典中分数最高的学生姓名和分数。
- 删除分数低于60的学生。
- 打印出修改后的字典。
student = {'张三': 85,'李四': 80,'王五': 40,'赵六': 59,'孙七': 20,
}
student['李四'] = 90
value_max = 0
name = ''
for key,value in student.items(): if value > value_max:value_max = value name = key
print(f'学生分数最高的是{name}, 分数为:{value_max}')
student_name = max(student, key=lambda k: student[k])
print(f'学生分数最高的是{student_name}, 分数为:{student[student_name]}')
keys_remove = []
for key,value in student.items():if value < 60: keys_remove.append(key)for i in keys_remove: student.pop(i)
keys_to_remove = [key for key,value in student.items() if value < 60]
for key in keys_to_remove:del student[key]
print(student)
2、实现冒泡排序算法。随机生成1-99之间的10个整数,存入列表中。采用冒泡排序算法对列表中的数据进行排序,输出中间过程。
import random
arr = [random.randint(1,100) for i in range(10)]for i in range(len(arr)):for j in range(i+1):if arr[i] > arr[j]:arr[i],arr[j] = arr[j],arr[i]print(arr)
3、编写一个猜数字游戏,程序随机生成一个1到100之间的整数,让用户来猜。如果用户猜的数字比实际数字小,则提示“太小了”;如果用户猜的数字比实际数字大,则提示“太大了”;如果用户猜对了,则输出“恭喜你猜对了!”并结束游戏。
import randomrand = random.randint(1,100)while True:try:num = int(input('请输入你猜的数值: '))if num > rand:print('猜大了')elif num < rand:print('猜小了')else:print('猜对了~~~~~')except:print('输入有问题,请重新输入!!!')
4、中国古代数学家张丘建在他的《算经》中提出了一个著名的“百元百鸡”问题,一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少想·只?编程解决以上问题。
'''
设: x为公鸡,y为母鸡,z为小鸡第一次循环中的21指的是 20(只)*5(元) = 100元
第二次循环中的34指的是 33(只) * 3(元) = 99元
'''
for x in range(21):for y in range(34):z = 100 - x - yif 5*x + 3*y + z/3 == 100:print(f'公鸡有{x}个,母鸡有{y}个,小鸡有{z}个.')
5、编写函数,使用递归方法计算斐波那契数列中的第n项。斐波那契数列是一个整数序列,从第3项,每个数字是前两个数字的和(F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2))。然后,程序应提示用户输入一个整数n,并输出斐波那契数列中的第n项:
def bei(n):if n == 1 or n == 2:return 1else:return bei(n-1) + bei(n-2)print(bei(20))
6、几何形状面积计算:定义一个基类Shape,包含一个方法calculate_area()。创建几个继承自Shape的子类,如Rectangle、Circle和Triangle,各自实现calculate_area()方法。创建一个函数来接受一个Shape对象并计算其面积。
import mathclass Shape: def calculate_area(self):pass
class Rectangle(Shape):def __init__(self,width,height):self.width = widthself.height = heightdef calculate_area(self):return self.width * self.height
class Circle(Shape):def __init__(self,r):self.r = rdef calculate_area(self):return self.r ** 2 * math.pi
class Triangle(Shape):def __init__(self, a, b, c):self.a = aself.b = bself.c = cdef calculate_area(self):s = (self.a + self.b + self.c) / 2area = math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))return areaif __name__ == '__main__':def calculate_area(Shape):return Shape.calculate_area()rec = Rectangle(20,30) print(calculate_area(rec))cir = Circle(5) print(calculate_area(cir))tria = Triangle(3,4,5) print(calculate_area(tria))
7、图形绘制:定义一个基类Drawable,包含一个方法draw()。创建几个继承自Drawable的子类,如Circle、Rectangle和Line,并为它们各自实现draw()方法来模拟在画布上的绘制过程。
from typing import Tupleclass Drawable:def draw(self):passclass Circle(Drawable): def __init__(self, center: Tuple, r: int):self.center = centerself.r = rdef draw(self):print(f'开始绘制圆形,圆心坐标{self.center}, 半径为{self.r}')class Rectangle(Drawable): def __init__(self,width: int,height: int):self.width = widthself.height = heightdef draw(self):print(f'开始绘制高为{self.height}, 宽为{self.width}的矩形')class Line(Drawable): def __init__(self, start:Tuple, end: Tuple): self.start = start self.end = end def draw(self):print(f'开始绘制线条,线条的位置为: 起始位置{self.start}, 结束位置{self.end}')if __name__ == '__main__':cir = Circle((1, 1), 3)cir.draw()rec = Rectangle(30, 40)rec.draw()line = Line((0, 0), (10, 20))line.draw()