python函数练习题

1、写一个函数,接收一个参数,用来返回它的阶乘并输出其式子,如参数是5,则返回5的阶乘并输出1*2*3*4*5

思路:
第一步:定义一个接收一个参数的函数
第二步:在函数内创建两个变量,一个代表阶乘的值,一个代表阶乘的计算过程
第三步:构建一个循环,在1到输入的参数范围内,对每个数的乘积进行累积,最后累积到的值就是阶乘的值;计算过程的表示也差不多, 要注意的是最后一个数不需要’*’
第四步:输出阶乘的式子,并返回阶乘的值

def factorial(num1):
    num1_factorial = 1
    num1_factorial_str = ''
    for i in range(1, num1 + 1):
        num1_factorial = num1_factorial * i
        if i == num1:
            num1_factorial_str = num1_factorial_str + str(i)
        else:
            num1_factorial_str = num1_factorial_str + str(i) + '*'
    print(num1_factorial_str)
    return num1_factorial


ret = factorial(4)  # 1*2*3*4
print(ret)  # 24

2、写一个函数实现斐波那契数列(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377…)要求:接收一个参数,返回一个存着等量值的列表

思路:
第一步:定义一个接收一个参数的函数
第二步:定义一个存放斐波那契数列的列表
第三步:判断参数是否为大于等于3,如果是,则添加1,1,2到列表
第四步:如果参数大于3,则创建一个循环,将前两项和相加作为第三项,并添加到列表
第四步:返回列表

def Fibonacci(num1):
    lst_Fibonacci = []
    if num1 == 0:
        print("不能为0!")
    if num1 >= 1:
        lst_Fibonacci.append(1)
    if num1 >= 2:
        lst_Fibonacci.append(1)
    if num1 > 2:
        for i in range(1, num1):
            lst_Fibonacci.append(lst_Fibonacci[i] + lst_Fibonacci[i - 1])

    return lst_Fibonacci


ret = Fibonacci(10)
print(ret)

输出为:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

你可能感兴趣的:(python函数练习题)