南邮Python双语教学:随机数与二分查找实践

需积分: 10 2 下载量 7 浏览量 更新于2024-08-04 收藏 252KB PDF 举报
"南邮 Python 每周练习作业3" 这篇资源是南京邮电大学Python双语教学课程的一部分,包含一系列每周练习作业,旨在帮助学生巩固和提高Python编程技能。这些作业都是原创的,并且允许自由移植,意味着学生可以自由地使用和分享这些练习来学习。 1. 随机数生成: 在这个练习中,学生被要求使用`random`模块生成在0到100之间(不包括0和100)的随机数。通过`random.random()`函数,可以得到0到1之间的浮点数,然后乘以100再减去5,就得到了0到95之间的随机数。 2. 又一个随机数生成: 这个问题与上一题类似,但没有减去5。直接使用`100 * random.random()`即可生成0到100之间的随机数。 3. 二分查找: 提供的`bina_sear`函数实现了一个简单的二分查找算法。它接收一个已排序的列表`Li`和目标值`ele`,在列表中搜索目标值并返回其索引。如果目标值不在列表中,函数会抛出`EOFError`异常。这个函数可以帮助学生理解二分查找的工作原理。 4. 重复的二分查找: 这个题目与上一个相同,只是代码被复制了一遍。可能是为了让学生多次实践或检查自己的理解。 5. 字符串表达式求值: `eval()`函数在这道题中被用来将用户输入的字符串转换为Python表达式并执行。这展示了如何使用`eval()`来解析和执行动态的Python代码,但需要注意安全风险,因为它可能会执行任意的Python代码。 6. 使用`assert`进行断言: 这个练习用到了`assert`语句,用于测试一个条件是否为真。如果条件为假,`assert`会抛出一个`AssertionError`。在这个例子中,它检查给定的列表中所有的数是否都是偶数,因为列表中没有奇数,所以没有输出。 7. 整除5和7的数字: 学生需要编写代码,输入一个整数`n`,然后找出0到`n`之间能同时被5和7整除的所有数字。通过遍历范围并使用模运算符 `%`,将符合条件的数字添加到列表中,最后以逗号分隔的形式打印出来。 8. 继续整除5和7的数字: 这个题目与第7题相似,但要求用户输入一个数字`n`作为上限,找出所有能被5和7整除的数字。这里可能是为了让学生再次练习这个概念或者检查他们的代码是否具有通用性。 这些练习涵盖了Python的基础知识,包括随机数生成、列表操作、函数定义、表达式求值以及条件判断等,对学习Python编程的学生来说是非常有价值的练习。