老师为什么我用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,祝学习愉快~
相似问题