Python实验:函数与递归

需积分: 26 3 下载量 75 浏览量 更新于2024-08-04 收藏 197KB DOC 举报
"Python实验四、函数" 在Python编程中,函数是代码组织的基本单元,它们允许我们将一段可重用的代码封装起来,方便在不同的地方调用。本实验主要目的是帮助学生深入理解和掌握Python中的函数及其相关概念,包括函数的作用、定义与调用、lambda函数、集合操作以及递归函数的定义。 1. **函数的作用**:函数的主要作用是提高代码的可读性和可复用性。通过将具有特定功能的代码块封装到函数中,可以降低程序的复杂度,使代码结构更加清晰。 2. **函数的定义与调用**:在Python中,定义函数使用关键字`def`,后跟函数名和圆括号,括号内是参数列表。函数体内的代码执行完毕后,会返回一个值(如果没有指定返回值,默认返回`None`)。调用函数时,直接写函数名后面加括号,传入相应的参数。 3. **lambda函数**:lambda函数是一种简化的、快速定义单行、小型匿名函数的方式。它通常用于创建简单的、只执行一次的函数,形式如`lambda arguments: expression`。lambda函数不能包含复杂的逻辑,适合简单的计算或比较操作。 4. **集合的创建方法**:在Python中,可以使用花括号{}或者`set()`函数来创建集合。集合是一个无序且不包含重复元素的数据结构,支持数学运算如并集、交集和差集。 5. **递归函数**:递归函数是函数内部调用自身的函数,通常用于解决需要多次重复相同操作的问题。在定义递归函数时,必须包含一个或多个基本情况(base case),即可以直接解决的问题,以及一个或多个递归情况,即将问题规模缩小并递归调用自身来求解。 实验题目中,要求实现一个名为`isdiff`的函数,判断输入的正整数n的各位数字是否互不相同。这里有两种实现方法: **方法一**:将n转换为字符串,遍历字符串的每个字符,利用`count()`函数统计当前字符出现的次数。如果某个字符出现的次数大于1,说明有重复数字,函数立即返回0;否则,遍历完成后返回1。 ```python def isdiff(n): str0 = str(n) for num in str0: time = str0.count(num) if time > 1: print(f"{str0}中有重复数字") return 0 print(f"{str0}的各位数字互不相同") return 1 ``` **方法二**:利用集合的去重特性。将n转换为列表,然后转换为集合。如果集合的长度小于原列表长度,说明有重复数字;否则,各位数字互不相同。 ```python def isdiff2(n): num_list = set(str(n)) if len(num_list) < len(str(n)): print(f"{n}中有重复数字") else: print(f"{n}的各位数字互不相同") ``` 通过这两种方法,可以有效地检查输入的正整数是否有重复的数字,并在主程序中调用这两个函数进行测试。这个实验旨在让学生熟悉Python中函数的运用,以及在实际问题中如何选择合适的数据结构和方法。