|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
教材6.6.2章 写一个求阶乘的函数 正整数的阶乘函数,假设n=5,那么要求计算出1*2*3*4*5的结果。
我按 课本上的例题,敲了一段代码
def jiecheng(n):
for i in range(1,n):
i *= i+1
return n
n=int (input ('请输入数字:'))
j = jiecheng(n)
print (j)
这段代码计算的数值有误,于是改成
def jiecheng(n):
for i in range(1,n):
n *= i
return n
n=int (input ('请输入数字:'))
j = jiecheng(n)
print (j)
请教老师,这样的两种写法,区别在哪里。第二段代码可以正确计算出数值来。
第一个代码的错在 认为 for 循环不会把之前的 i 值给覆盖,实际上是会的,因为 range 是个产生一个整数类型的容器
而 for i in range 这样的循环就是把 range 这容器里面的值一个个拿出来,重新赋值给 i ,导致每次赋值都会把之前你 i 得到的值所覆盖了
所以最后返回的是 i 的值为 (n-1)n
第二个就是正确的写法 ~
|
|