xu007xu 发表于 2020-4-25 10:40:27

zltzlt 发表于 2020-4-25 10:40:28

1. sum 没有定义,需要先把 sum 定义为 0
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_)

XiaoPaiShen 发表于 2020-4-25 10:48:23

num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num, 0, -1)):
    sum=sum*i

print(sum)

liuzhengyuan 发表于 2020-4-25 11:43:53

你的 sum 没有初始值
应该加一个 sum = 1

jia159753 发表于 2020-4-25 13:30:52

没定义sum初始值

xiaosi4081 发表于 2020-4-25 13:48:48

要初始化sum
代码num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num)):
    sum=sum*i
print(sum)

BXQXX 发表于 2020-4-25 15:33:16

没有定义sum

xu007xu 发表于 2020-4-25 17:01:21

页: [1]
查看完整版本: python第22期作业·