江湖散人 发表于 2021-6-9 15:03:37

阶乘的问题

def f(x):
    if x == 0:
      return 1
    elif x < 0:
      print('负数没有阶乘')
    else:
      return f(x-1)*x


n = int(input('请输入一个数字: '))
y = f(n)
print(y, end=' ')


我输入一个-5,返回结果:
        请输入一个数字: -5
        负数没有阶乘
        None
为什么会有一个None?
怎样才能去掉呢?

hrp 发表于 2021-6-9 15:06:18

print('负数没有阶乘')改成return '负数没有阶乘'

灰晨 发表于 2021-6-9 15:08:36

def f(x):
    if x == 0:
      return 1
    elif x < 0:
      return '负数没有阶乘'
    else:
      return f(x-1)*x


n = int(input('请输入一个数字: '))
y = f(n)
print(y, end=' ')

不用print,用return

江湖散人 发表于 2021-6-9 15:19:50

灰晨 发表于 2021-6-9 15:08
不用print,用return

谢谢

江湖散人 发表于 2021-6-9 15:20:43

hrp 发表于 2021-6-9 15:06
print('负数没有阶乘')改成return '负数没有阶乘'

谢谢
页: [1]
查看完整版本: 阶乘的问题