python编程问题

1个回答
展开全部
摘要 您好这段代码中的问题在于`t`变量在外层循环中并没有被重置为1,而是一直保持着上一次内层循环的结果。因此,当i从1变成2时,内层循环不会执行,t的值一直为1,不会改变;当i从2变成3时,内层循环执行的是`t=t*j`,t变成了3,而不是1乘以3;当i从3变成4时,内层循环重新执行,t的值又被重置为1,因此`t=t*j`仍然等于j,此时sum变为了3,而不是9。修改代码的方法是,在外层循环每次开始时将t重置为1:```sum=0for i in range(1,5+1): t = 1 # 将变量t初始化为1 if i%2==0: continue for j in range(1,i+1): t=t*j sum+=tprint(sum)```这样就能得到正确的结果9了。
咨询记录 · 回答于2023-03-16
python编程问题
t=1sum=0#n=input('请输入一个自然数n:')for i in range(1,5+1): if i%2==0: continue for j in range(1,i+1): if t!=1: t=1 t=t*j sum+=tprint(sum)代码是故意这么写的,为什么最终结果是3而不是9
您好这段代码中的问题在于`t`变量在外层循环中并没有被重置为1,而是一直保持着上一次内层循环的结果。因此,当i从1变成2时,内层循环不会执行,t的值一直为1,不会改变;当i从2变成3时,内层循环执行的是`t=t*j`,t变成了3,而不是1乘以3;当i从3变成4时,内层循环重新执行,t的值又被重置为1,因此`t=t*j`仍然等于j,此时sum变为了3,而不是9。修改代码的方法是,在外层循环每次开始时将t重置为1:```sum=0for i in range(1,5+1): t = 1 # 将变量t初始化为1 if i%2==0: continue for j in range(1,i+1): t=t*j sum+=tprint(sum)```这样就能得到正确的结果9了。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消