|  | 
 
| 
def a (n=5):
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  c=n
 for i in range(1,n):
 c *=i
 return c
 print (a())
 b=int(input('d'))
 d=a(b)
 print ('%d,%d'%(b,d))     等于5,120
 -----------------------------------
 x=5
 for i in range(1,5):
 x=5
 x *=i
 
 print (x)   等于20
 
 ‘x * =i 的计算过程是怎么样的’
 我看着两个for没有区别啊 为啥结果不同
 
[b]
 x *= i 等价于  x = x * i ,你第二个 for 循环的第一个语句为  x = 5 ,导致每次循环 x 都为 5
 
 而第一次循环,c = n 是在 for 循环外,而没在 for 循环内,所以导致循环报错.
 
 具体写出来循环计算结果你就能看出来什么地方不同了:
 
 第一个 for 循环:
 
 第一次循环 c = c * i = 5 * 1 = 5 ,第二次循环 c = c * i = 5 * 2 = 10 ,第三次 c = c * i = 10 * 3 = 30 第四次 c = c * i = 30 * 4 = 120
 
 第二个 for 循环(因为循环中给 x 赋值,所以每次都为 5):
 
 第一次循环 x = x * i = 5 * 1  = 5,第二次循环 x = x * i = 5 * 2 = 10,第三次 x = x * i = 5 * 3 = 15 第四次 x = x * i = 5 * 4 = 20
 
 [/b]
 | 
 |