分不清区别 请指教
def a (n=5):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没有区别啊 为啥结果不同
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
页:
[1]