Python期末考试试题:程序填空与阅读理解

版权申诉
0 下载量 92 浏览量 更新于2024-07-08 收藏 1.03MB DOCX 举报
"这是一份Python期末考试题,包含了程序填空和阅读理解部分,主要涉及基础编程概念、条件判断、循环以及简单的算术运算。题目涵盖了计算奇数之和、根据公式计算适宜运动心率、求等差数列和以及识别水仙花数。" 在本次Python期末考试中,学生需要完成以下几个编程任务: 1. 求1~100内奇数之和:使用`range`函数可以生成一个包含1到100的序列,然后通过列表推导式或循环结构筛选出奇数,并计算它们的和。可以使用以下代码实现: ```python sum_of_odds = sum(i for i in range(1, 101, 2)) ``` 这里`range(1, 101, 2)`生成一个从1到100的奇数序列,`sum`函数则计算这些奇数的和。 2. 计算最适宜的运动心率:根据题目描述,需要根据用户的年龄(`age`)、安静心率(`HRrest`)和性别(`gender`)计算适宜的运动心率。程序已经给出了大部分结构,但缺少条件判断和计算过程。完成后的代码如下: ```python if gender == 'male': n = 220 else: n = 210 low = (n - age - HRrest) * 0.6 + HRrest high = (n - age - HRrest) * 0.8 + HRrest print('最适宜的心率是:', low, '~', high) ``` 3. 求1+2+3+…+100的结果:这是一个等差数列求和的问题,可以使用高斯求和公式或者循环结构来解决。完整的代码如下: ```python total_sum = sum(range(1, 101)) print('1到100的和是:', total_sum) ``` 4. 阅读程序并回答问题:这段代码是用来找出所有三位数的水仙花数。`==`的符号在这里表示比较操作,检查`n`是否等于其各位数字立方和。代码中的水仙花数计算是正确的,但存在一个小错误,`forninrange(100,1000):`应该改为`for n in range(100, 1000):`,去掉第一个`3`。关于`==`的作用,它是Python中的等于运算符,用于比较两个值是否相等。 最后,还有一段未完成的循环和累加的代码: ```python s = 0 k = 1 while (k <= 101): # 此处应添加累加k的代码 s = s + k # 此处可能是一个错误,应该更改为'k = k + 1' k = k + 5 print(s) ``` 这个循环计算的是从1到101(包括101),步长为5的所有数字的和。因此,当`k`小于或等于101时,它会累加`k`的值并更新`k`。完成后的循环应该是: ```python s = 0 k = 1 while (k <= 101): s = s + k k = k + 5 print(s) ``` 输出结果是所有5的倍数从1到100的和。