Python课后程序整理5-9章1

preview
需积分: 0 3 下载量 60 浏览量 更新于2022-08-03 收藏 301KB PDF 举报
在Python编程中,函数是一种可重复使用的代码块,可以提高代码的可读性和效率。本章节涉及了几个关键的函数实现,包括`isOdd()`、`isNum()`、`multi()`以及`isPrime()`,同时介绍了如何通过`switFunction()`来选择执行不同功能,并以汉诺塔问题为例展示了递归的应用。 `isOdd()`函数用于判断一个整数是否为奇数。它通过取模运算(`%`)来检查数字除以2的余数,如果余数为1,则返回True,表示该数是奇数;否则返回False,表示该数是偶数。 接着,`isNum()`函数检查一个字符串是否可以表示整数、浮点数或复数。它首先检查字符串是否全为数字(`isnumeric()`),如果是,返回True。然后,它判断字符串中的字符是否都是唯一的,这可以用来识别复数,因为复数通常由实部和虚部组成,不包含重复的数字。如果满足这一条件,也返回True,否则返回False。 `multi()`函数计算任意数量的参数的乘积。它通过遍历参数列表(`nums`),将每个元素与当前乘积(初始化为1)相乘,然后返回最终结果。 `isPrime()`函数用于判断一个整数是否为质数。对于1,它返回False,因为1不是质数。对于2和3,它直接返回True,因为它们是最小的两个质数。对于其他数,函数从3开始遍历到输入数字减1,如果发现能被任何数字整除,就返回False,表示不是质数。如果遍历结束都没有找到能整除的数,则返回True,表明是质数。 `switFunction()`函数根据用户输入的功能编号(1代表判断奇数,2代表判断质数)调用相应的判断函数,并输出结果。它通过`if-elif-else`语句进行条件分支判断,确保用户选择了有效的功能。 汉诺塔问题的解决方案采用了递归方法。`move()`函数接收三个参数,表示三个柱子(A、B、C),以及要移动的盘子数量。当盘子数量为1时,直接将A上的盘子移动到C上。如果盘子数量大于1,则先将A上的n-1个盘子借助C移动到B,再将A上剩下的一个盘子移动到C,最后将B上的n-1个盘子借助A移动到C。这种方法逐步解决了整个汉诺塔问题。 这些例子展示了Python函数的基本结构和使用,以及如何通过条件判断和递归来解决实际问题。在实际编程中,掌握这些概念和技巧对于编写高效、易于维护的代码至关重要。