期中考试将在10月17日星期二举行。考试将涵盖赢博体育内容,包括文件。考试将包括两道题。第一个问题将是循环写入中的一个短问题,而第二个问题将是一个涉及类和从文件读取数据的较长的问题。

期中考试将在课堂上进行。您可以携带一台笔记本电脑和常用的Python开发环境。如果你没有笔记本电脑,你可以用房间里的电脑代替。这些电脑上安装了Anaconda和PyCharm。

样题

1. 编写一个程序,提示用户输入两个正整数a和b,其中a < b,然后打印出a和b之间的赢博体育完全平方数的列表,包括a和b之间的数。

下面是程序应该产生的输出示例。

输入a: 12输入b: 89 16 25 36 49 64 81

解决方案

2. 编写一个程序,提示用户输入两个正整数a和b,然后计算并输出这两个整数的最小公倍数。最小公倍数是同时是a和b的倍数的最小整数。例如,如果a是120,b是100,你的程序应该输出600。

解决方案

3. 这是一个关于矩形的问题。每个矩形将由一个类来描述,类的成员变量为width和height。

给你的类一个方法

fitsInside(自我,其他)

如果矩形self可以装入矩形other则返回True,如果不能则返回False。要确定一个矩形是否适合另一个矩形,可能需要旋转其中一个矩形。例如,在将第一个矩形旋转90度后,宽度为20单位,高度为10单位的矩形将适合于宽度为15,高度为25的矩形。使用您编写的类来构建一个程序,该程序可以从文件中读取N个矩形的尺寸,并确定这些矩形是否形成一个嵌套序列,其中每个矩形都适合文件中紧随其后的矩形。您可以假设文件中的第一个数字告诉您N是什么。

例如,给定输入文件

5
10 10
14 20
24 20
24 40
50 30

你的程序应该说文件包含一个嵌套序列。

给定输入文件

4 10 10 20 15 18 18 30 30 30

您的程序应该指出该文件不包含嵌套序列。

解决方案

4. 构造一个可以表示时间的类。类将有成员变量hours和minutes。为类配备一个成员函数

__add__(自我,其他)

这可以加上两个时间值。使用这个add函数编写一个程序,从文件中读取时间值列表,计算并打印它们的和。例如,给定一个包含内容的文件

3 20
4 15
6 35
2 25

您的程序应该打印总时间值为16小时35分钟。

解决方案

5. 构建一个Python程序,该程序可以从文件中读取分数列表,并打印文件中找到的最小和最大分数。

例如,给定如下的输入文件:

12/5
94/37
25/3
90/57

您的程序应该打印

最小的分数是90/57。最大的分数是25/3。

首先构造一个可以表示分数的类,并为该类配置两个比较操作符 <和> 的操作符重载。要重载 <操作符,请添加一个名为__lt__的方法。要重载> ,添加一个名为__gt__的方法。

要将输入文件中的每行拆分为分子和分母,请使用以下代码

line.split('/')

解决方案