鱼C论坛

 找回密码
 立即注册
查看: 2396|回复: 7

[已解决]python第22期作业·

[复制链接]
头像被屏蔽
发表于 2020-4-25 10:40:27 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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_)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 10:48:23 | 显示全部楼层
num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num, 0, -1)):
    sum=sum*i

print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 11:43:53 | 显示全部楼层
你的 sum 没有初始值
应该加一个 sum = 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 13:30:52 | 显示全部楼层
没定义sum初始值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 13:48:48 | 显示全部楼层
要初始化sum
代码
num=int(input('此程序是去求阶乘,请输入一个数->'))
sum = 1
for i in list(range(num)):
    sum=sum*i
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 15:33:16 | 显示全部楼层
没有定义sum
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-4-25 17:01:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 22:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表