老师为什么我用n == 0 or 1 执行结果会是1,用n == 0 and 1执行结果是120

来源:5-2 编程练习

靑旾8602698

2021-11-11 04:13:04

# coding:utf-8

def Recursion(n):
# 判断参数n是否为1或0,如果是返回1
    if n == 0 or 1  :
      return 1

# 否则计算并调用本身进行递归,return返回计算结果
    else:
      return n * Recursion(n-1)

# 打印返回值
print(Recursion(5))
# coding:utf-8

def Recursion(n):
# 判断参数n是否为1或0,如果是返回1
    if n == 0 and 1  :
      return 1

# 否则计算并调用本身进行递归,return返回计算结果
    else:
      return n * Recursion(n-1)

# 打印返回值
print(Recursion(5))


写回答

1回答

好帮手慕凡

2021-11-11

同学,你好!

1、在python的布尔类型中1为True,if n == 0 or 1  的意思为:如果n等于0或者为1(True)满足一个条件则进入条件语句,1为True满足条件直接进入条件语句返回1;

2、if n == 0 and 1  的意思为:在n==0和为1(相当于在n==0时),则进入条件语句,返回1到上一层调用的函数,返回到n * Recursion(n - 1)结束递归;

可改为:if n == 0 or n==1,祝学习愉快~


1

0 学习 · 4470 问题

查看课程