鱼C论坛

 找回密码
 立即注册
查看: 2932|回复: 5

for循环

[复制链接]
发表于 2015-7-26 22:09:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def factorial(n):      
    result = n         
    for i in range(1,n):
        result *= i

    return result      

number = int(input('请输入一个正整数:'))
result = factorial(number)
print("%d 的阶乘是:%d" %(number,result))


请问这个代码result = n 的作用定义一个变量
假设我输入的是6 代码开始执行时result的值为6还是什么

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-7-26 22:15:38 | 显示全部楼层
第二次执行是  ruselt的值为多少   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-27 08:57:55 | 显示全部楼层
建议楼主自己在函数里用print看result的值是怎么变的,自己调试出来的比直接问人来的有收获。:lol:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-27 11:31:53 | 显示全部楼层
这样写也并不是不对,因为range(1,n)是从1取到n-1,现在你写一个result=n,相当于计算的是result=n*1*...*n-1,计算结果没错,但是也可以不用这样写,省掉result=n,直接写for i in range(1,n+1):就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-27 16:55:04 | 显示全部楼层
是6。还有,range(1, 6) 相当于 1 ~ 5, 不包括6

应该是range(1, n+1)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-31 20:50:01 | 显示全部楼层
开始执行时result就是6呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-16 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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