Python 小练习 阶乘

很基础的一道题,不过做得很纠结.....

首先第一个是自己写的函数,不过没有按照课程要求来写,课程要求定义函数变量里面要带有x变量,不顾我自己写的没有,不过功能上测试是正常的

def factorial():
    sum=1
    x=int(input('please enter:'))
    if x<0:
        print ('wrong')
    elif x==0 or x==1:
        return 1
    else:
        for i in range(1,x+1):
            sum = sum*i
        print (sum)
   
factorial()


---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------------------

下面是看到网上别人用递归做的函数,也是题目本身要求的功能

def factorial(x):
    if x<0:
        print ('wrong enter')
    elif x==0 or x==1:
        return 1
    else:
        return x*factorial(x-1)



---------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------------------------------------------------

还有其他用循环实现的,写得也比我简介,不过没考虑到负数的情况

def f(n):
        c = 1
        for i in range(n+1):
           c  *= i
        return c







你可能感兴趣的:(Python,exercise)