关于for循环的疑问
我是跟着小甲鱼视频自学的 但学到去 求阶乘的那一课程 代码如下def factorial(n):#定义一个函数 n是传入的参数也叫形参
result = n #变量默认等于n
for i in range(1,n): # for语句循环 分别是1到N
#这里1到n不包含n例如 1~5 只到4
result *= i #这里变量是等于n的 就是n*1 循环到n*n-1
return result
老师说是求阶乘的 但是我尝试输入5 result *= i(这个是不是result=i*result)这里开始就是 result =1*5 然后赋值给result 再循环 2*5再循环3*10 是这样吗但是老师说的是求阶乘是1*2*3*4
我是自学遇到问题只能发帖求助求老师大神门解答 因为这没有弄清楚没办法往下自学 {:10_266:} 本帖最后由 jackz007 于 2020-10-29 17:35 编辑
def factorial(n):
result = n
for i in range(1 , n) :
result *= i
return result
让我们来考察一下这个函数的循环过程
当 n = 5 的时候,result 的初始值为 5,for i in range(1 , n) 将循环 4 次:
第一次:i = 1, result = 5-> result = result * i = 5 × 1
第二次:i = 2 ,result = 5 × 1-> result = reslt * i = 5 × 1 × 2
第三次:i = 3 ,result = 5 × 1 × 2-> result = reslt * i = 5 × 1 × 2 × 3
第四次:i = 4 ,result = 5 × 1 × 2 × 3 -> result = reslt * i = 5 × 1 × 2 × 3 × 4
所以,当循环完成的时候,result = 5 × 1 × 2 × 3 × 4,这不就是 5 的阶乘吗?
页:
[1]