|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def iterate(N):
result = 1
while N > 1:
result *= N
N -= 1
if N == 1 | N == 0:
return result
迭代 = input("请输入一个非负整数:")
N = int(迭代)
print(f"{N}! =", iterate(N))
请输入一个非负整数:5
5! = None
请问大佬,为什么没有返回result的值?
您的代码中,如果输入的是 0 或 1,那么 N 不会进入 while 循环,因此不会执行 result *= N 的语句。在这种情况下,函数没有返回值,因为没有 return 语句覆盖这种情况。您可以添加一个 return 语句,以便在输入为 0 或 1 时返回正确的结果。此外,您的逻辑运算符应该使用两个竖线(||),而不是单个竖线(|),因为单个竖线是按位或运算符,而不是逻辑或运算符。
下面是已经修正的代码:
- def iterate(N):
- result = 1
- while N > 1:
- result *= N
- N -= 1
- if N == 1 or N == 0:
- return result
- else:
- return None
- 迭代 = input("请输入一个非负整数:")
- N = int(迭代)
- print(f"{N}! =", iterate(N))
复制代码
现在,如果您输入 0 或 1,代码将正确返回 1,否则将返回 N 的阶乘。
|
|