Python | 递归函数和匿名函数 | 案例

34 阅读1分钟

功能:n!

边界条件:n=1.结果为1

公式:n*(n-1)

def func(num):
    if num == 1:
        return 1
    else :
        return num * func(num-1)
num =int (input("输入整数:"))
result = func(num)
print(f"{num}!=%d" % result)

斐波那契数列

边界条件:fib(0) = 0,fib()=1

公式:fib(n)=fib(n-1)+fib(n-2)

def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1)+fib(n-2)

n = int (input("输入整数:"))
result = fib(n)
print(f"fib({n})=%d" % result)

匿名函数实现简单功能。

lambda <形式参数列表>:<表达式>

temp = lambda x: pow(x,2) #定义
print(temp(10))           #调用

学生管理系统

# ===============================学生管理系统================================
students = []
# 1、显示学生管理系统菜单
def show_menu():
    """显示学生管理系统菜单"""
    print("--------------------------------------")
    print("|1. 添加学生信息")
    print("|2. 查询学生信息")
    print("|3. 查询学生总数")
    print("|4. 删除学生信息")
    print("|5. 修改学生信息")
    print("|6. 退出系统")
    print("--------------------------------------")

def add_student(name, age, grade, student_id =None):
    """添加"""
    if student_id is None:
        student_id = len(students) + 1001
    student = {
        "name":name,
        "age":age,
        "grade":grade,
        "id":student_id
    }
    students.append(student)
    print(f"成功添加学生:{name}(id:{student_id})")

def find_student(student_id):
    """查询"""
    for student in students:
        if student["id"] == student_id:
            return student
    return None

def count_student():
    """返回学生总数"""
    return len(students)

def add_demo_students():
    demo_stuents = [
        {"小明",18,25}
    ]
    for name,age,score in demo_stuents:
        add_student(name,age,score)

show_menu()
choice = input("请输入您的选择:")
show_menu()

def getSelect():
    choice = input("请输入您的选择:")
    return choice

while True:
    show_menu()
    num = getSelect()
    if num == 1:
        #添加学生信息
        name = input("输入学生姓名:")
        add_student(name)
    elif num == 2:
        #查询学生信息
        pass
    elif num == 6:
        #退出系统
        print("谢谢使用本系统")
        break
    else:
        print("输入有误,重新输入1-6的数字")