2. range(num) 包含 0,不包含 num,所以需要设置起始值为 2,终止值为 num+1(起始值不设置为 1 的原因是任何数乘以 1 都等于本身)
3. range() 本身就是可迭代对象,所以完全没有必要再将它转化为列表(当然不去掉 list() 也可以,只是耗费了将 range 对象转化为列表的时间)
4. 变量名最好不要和 BIF 的名字冲突,你的代码中 sum 与 BIF sum() 冲突了,如果之后需要用到 BIF sum() 就会出 Bug,所以建议将 sum 改成其他的名字。
代码帮你改好了:
num = int(input('此程序是去求阶乘,请输入一个数->'))
sum_ = 1 # 这里将这个变量命名为 sum_
for i in range(2, num + 1): # range(2, num + 1) 包含 2 ~ num+1 间的所有整数
sum_ = sum_ * i
print(sum_) num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num, 0, -1)):
sum=sum*i
print(sum) 你的 sum 没有初始值
应该加一个 sum = 1 没定义sum初始值 要初始化sum
代码num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num)):
sum=sum*i
print(sum) 没有定义sum
页:
[1]